数字Costas环在FPGA中的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字Costas环在FPGA中的实现
摘要:Costas环是一种闭环自动调整系统,常用于抑制载波的相位调制系统中提取参考载波信号。

文中介绍了Costas环的基本原理, 提出了一种用CIC滤波器代替环路滤波器的方法,并根据该原理用matlab的simulink工具箱对costas环进行了建模和仿真,最后在Quartus Ⅱ+ ModelSim环境中用Verilog语言实现了该算法,并下载到软件无线电硬件电路中验证了该算法的正确性.仿真和实验结果表明,该Costas环路具有十分优良的性能。

关键词:Costas环;VCO压控振荡器;CIC滤波器
中图分类号:文献标识码:文章编号:
Implementation of Digital Costas Loop on FPGA Platform
FENG Xiao-yu,YAN Wen-fei,LIU Bi-gang
Abstract:Costas loop is a closed self-adjusting system, usually used to extract reference carrier in suppressed carrier phasemodulated systems.In this paper, The basic principle is introduced,Presents a CIC filter to replace the loop filter ,and base on this principle,the Costas loop is modeled and simulated by the simulink toolbox of matlab,Finally, in Quartus Ⅱ+ ModelSim environment, using Verilog language to implement the algorithm, and downloaded to the software radio hardware circuits to validate the correctness of the algorithm.Simulation and experimental results show that high performance can be achieved using this kind of all-digita Costas loop.
Key words:Costas loop;VCO;CIC filter
引言
在利用相干解调的数字通信系统中,载波同步是正确解调的前提,也是实际通信中的一项关键技术[1-2],没有载波同步就不可能正确的恢复出数字信号。

常用的载波同步方法有平方环和Costas环等,由于Costas 环有跟踪低信噪比的抑制载波信号的特性而在实际系统中得到广泛的应用,目前国内外对costas环尤其是改进后的costas环进行了一系列的研究,尚耀波等建立了costas环的Z域模型,通过软件编程实现,称之为软件costas环[3];李波等根据costas环的结构,在FPGA芯片中完成了硬件实现[4]。

然而,这些研究大部分都是基于传统的costas环结构,同时也没有考虑到程序在实际应用中的资源占用情况。

本文在仔细分析Costas 环的构成原理后,根据实际硬件的片上资源调整了滤波器的结构,提出一种用CIC滤波器来取代传统的环路滤波器。

最后,本文结合项目的应用,首先在simulink平台上实现了该算法,然后移植到Verilog上,用实际的FPGA芯片对此算法进行了验证。

1 Costas环原理
1.1传统Costas环的结构
科斯塔斯环又称同相正交环Costas环,Costas环由Costas1956年提出,其环路工作频率为载波频率,远远低于平方环的工作频率,实现成本较低。

其原理框图如图1(a):
(a) Costas环原理框图(b) 改进后Costas环原理框图
图1 改进前后Costas 环原理框图
在Costas 环环路中,误差信号V 7是通过两路低通滤波输出相乘得到。

压控振荡器(VCO)输出信号直接供给一路相乘器,供给另一路的则是压控振荡器输出经90o 移相后的信号。

两路相乘后经过低通滤波和环路可以得到仅与载波相位偏差信号有关的信号V7.用此信号来控制VCO 就可以调整VCO 输出和载波信号保持一致的相位。

现在从理论上对Costas 环的工作过程加以说明。

设输入调制信号为()cos c m t t ω,则
)]2cos()[cos (21)cos(cos )(v 3θωθθωω++=+=t t m t t t m c c c (1-1) )]2sin()[sin (2
1)sin(cos )(v 4θωθθωω++=+=t t m t t t m c c c (1-2) 经低通滤波器后的输出分别为: θcos )(2
1v 5t m = θsin )(2
1v 6t m = 将v 5和v 6在相乘器中相乘,得, θ2sin )(8
1v v v 2657t m == (1-3) (1-3)中θ是压控振荡器输出信号与输入信号载波之间的相位误差,当θ较小时, θ)(41v 27t m ≈ (1-4)
(1-4)中的v 7大小与相位误差θ成正比,它就相当于一个鉴相器的输出。

用v 7去调整压控振荡器输出信号的相位,最后使稳定相位误差减小到很小的数值。

这样压控振荡器的输出就是所需提取的载波。

1.2本设计Costas 环的结构
考虑到FPGA 资源的消耗的问题,本设计在实际过程中采用了CIC 加低通滤波器的结构,并且用CIC 滤波器代替了环路滤波器,改进后的结构图如图1(b )所示,仿真结果表明,在提取载波效果相同的基础上,改进后的Coatas 环大大节省了资源。

2 Costas 环的Simulink 实现
本Simulink 仿真在Matlab 6.5环境下通过。

仿真模型如图2所示。

调制模块采用Bernoulli Binary Generator 模块产生的32k 的nrz 码与Sine Wave 模块产生的128k 的载波相乘,然后与压控振荡器VCO 恢
复的本地载波进行相乘,VCO 输出信号90度移相是通过希尔伯特变换[5]来完成的。

图2 Costas 环载波恢复和解调模型
调制后的信号与VCO 恢复的相互正交的两路本地载波进行相乘后,分为IQ 两路,经过低通滤波器成为基带信号的解调输出,考虑到采样频率过高会造成FPGA 芯片资源消耗严重,所以此处低通滤波器用CIC 滤波器加低通滤波器的结构代替。

C ostas 环设计的重点是环路滤波和VCO 参数的调整。

(1)环路滤波
本设计环路滤波部分用CIC 滤波取代。

CIC 滤波器可以对数据流进行降速处理,本设计IQ 两路采用抽取后滤波,降低4倍的采样速率(见图3中的Downsample 模块)。

图2中的CIC 内部结构图如图3所示,后面的FPGA 仿真也验证了此方法的优点和正确性。

图3 CIC 滤波器结构图
(2)VCO
本Costas 环调频信号用Voltage-Controlled Oscillator 产生,中心频率和输出信号幅度和载波信号保持一致,压控灵敏度λ根据实际情况计算调节。

2n mclk λ= (2-1) _f phase i λ=⨯ (2-2)
本设计中f 为信号的中心频率,_phase i 为调整步进,mclk 取4.096M ,n 取22位,则
6
22
4.096100.97656252λ⨯== (2-3) 压控灵敏度λ取0.9765625。

(3)仿真结果
图4为运行simulink 模型后的波形。

图4(a )是图2中示波器scope 的波形,为低通滤波后的IQ 两路信号与VCO 输入电压。

图4(b )是图2中示波器scope1的波形,为调制载波与恢复载波。

(a) 低通滤波后的IQ 两路信号与VCO 输入电压 (b) 调制载波与恢复载波
图4 Costas 环simulink 仿真结果 由图4(a )仿真波形可以看出, VCO 输入电压在过一段时间后波形稳定,低通滤波后的IQ 两路信号恒包络并且一路趋于为零,表示环路得到锁定。

图4(b )仿真波形可以看出,环路恢复出的载波与调制载波频率相同,表示环路已经成功的恢复出了载波信号。

3 Costas 环的FPGA 实现
本系统由Verilog 语言进行设计,硬件选择Cyclone Ⅱ系列的EP2C5Q208C8芯片,布局布线。

综合工具选择Quartus Ⅱ 8.1,波形仿真工具ModelSim SE 6.1f ,系统由正交分量相乘模块,CIC 滤波模块,低通
滤波模块,误差相乘模块和DDS 模块组成[6]。

FPGA 实现后的顶层RTL 结构图如图5所示。

图5 FPGA实现后的顶层RTL结构图
(1)DDS模块
DDS模块调用Quartus自带的IP core NCO(数控振荡器)。

nco在波形仿真中要注意拷贝core中的dds_cos_c.hex,dds_cos_f.hex,dds_sin_c.hex,dds_sin_f.hex这4个文件到simulation\modelsim文件夹下,此4个文件用来产生正弦波,如果仿真过程中vco没波形,要注意检查此问题,并且在改变nco的设置时,同样要检查这4个文件是否同时更新。

(2)环路锁定的判定
图6(a)为环路锁定后的波形,图6(b)为环路锁定后的波形放大图。

图中costas_out为环路恢复出的正弦波,dds_in为压控振荡器的输入电压,I_lpf为I路信号经过低通滤波器后信号,Q_lpf为Q路信号经过低通滤波器后信号。

(a) 环路锁定后的波形(b) 环路锁定后的波形放大图
图6 Costas环modelsim仿真结果
由图6可以看出,此环路已经很好的锁定。

4 结论
a、BPSK信号是由32K的NRZ码调制到128K载波产生,costas程序能够在频差+200Hz内(频偏为
0.15%)恢复载波。

b、用CIC滤波器来取代传统的环路滤波器,很大程度上节省了系统的资源。

c、本环路设计已在软件无线电实验箱中得到应用,在一片FPGA(EP2C5Q208C8)上编程实现,摆脱了传统的硬件电路设计,其算法可移植性强,符合未来通信设计的发展方向。

参考文献
[1] 樊昌兴,张甫翊,徐炳祥,吴成柯.通信原理[M].国防工业出版社,2001.
[2] 曹志刚,钱亚生.现代通信原理.清华大学出版社[M],1992.
[3] 尚耀波,郭英.一种软件科斯塔斯环的模型建立与实现.空间电子技术,2009,4:35-38.
[4] 李波,李玉柏等.在FPGA中用costas环实现载波同步和数字下变频.信息通信,2006,2:22-25.
[5] 邵玉斌.Matlab/Simulink通信系统建模与仿真实例分析[M].清华大学出版社,2008.
[6] 田耘,徐文波,张延伟等.无线通信FPGA设计[M].电子工业出版社,2008.。

相关文档
最新文档