欢迎来到天天文库
浏览记录
ID:21925043
大小:60.00 KB
页数:8页
时间:2018-10-25
《基于fpga的数字下变频的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
基于FPGA的数字下变频的设计与实现:为解决专用数字下变频芯片价格昂贵、灵活性不强的问题,研究了如何基于FPGA实现数字下变频的功能,本设计结合硬件资源从数字下变频的系统各模块的主要功能以及彼此间的性能制约上考虑,先通过MATLAB仿真选择合适的参数,然后在Xilinx公司ISES.2开发环境下,使用Verifog语言编程实现。最后对基于FPGA实现的数字下变频系统调用Modelsim进行仿真测试,验证了设计的正确性。关键词:软件无线电;数字下变频;Xilinx;数字滤波器Abstract:ForsolvingtheproblemofspecificDDCisexpensiveandflexibilityisnotstrong,ajorfunctionsofDDCsystemandperformancerestrictioninbetetersbyMATLABsimulation.thenundertheISE8.2developmentenvironmentofXilinx,theDDCsystemisdesignandimplementbyveriloghardinFPGA.Finally,ProvetheexactnessofDigitalDobyModelsimsimulationtesting.KeyericallyControlled OscillatorNCO)和抽取滤波三部分组成,图1所示是一个数字下变频器的结构原理框图[2]。图中,NCO可将产生的正交本振信号输入到数字混频器,以与A/D采样得到的数字信号进行混频,经混频后的信号再输出到抽取滤波器以滤除倍频分量和带外信号,并进行抽取处理。抽取滤波器可采取积分梳状滤波器(CIC)、半带(HB)滤波器和FIR滤波器级联的方式来实现。图1数字下变频系统结构框图3数字下变频基于FPGA的设计与实现本设计选用Xilinx公司的SpartanXC3S400的FPGA开发系统,结合MATLAB预先对滤波器的指标进行仿真,然后在Xilinx公司的集成开发环境ISE8.2中进行Verilog语言编程,并结合Mentor的子公司ModelTech出品的Modelsim进行仿真和验证。3.1数控本振的设计目前主要的下变频方法有以下四种[3]:(1)查表法产生正余弦波样本值,然后混频。(2)IIR振荡器产生数字化正余弦函数,然后混频。(3)采用流水线技术的坐标旋转数字式计算机(CORDIC)算法。(4)重采样。实际中用得最多的还是(1),(3)两种方法。 在采样率很高的情况下,产生正弦波采样最简单有效的方法是查表法,即把各个相位的正弦值事先计算好存储在ROM中,然后按相位做地址查表得到正弦波采样。NCO由相位累加器、相位加法器和正弦表只读存储器三部分组成。NCO的工作原理:每一个时钟脉冲,利用相位累加器使相位在原来的基础上加一个相位增加量即频率控制字,再利用相位加法器加上初始相位即相位偏移,最后用相位值作为正弦表的地址,查出正弦值。每当累加器溢出时就产生一个新的循环,累加器完成一个循环的时间就是正弦波形的周期[4]。图2NCO功能方框图3.2CIC滤波器的FPGA设计由以上NCO的设计可知,混频部分非常容易实现,关键部分在于滤波器的实现。CIC滤波器的系统结构主要由积分器与微分器两部分级联而成。积分器的实现,从结构图可以看出,由一个加法器跟延迟器组成,延迟器的实现在FPGA中由一级寄存器实现,加法器在FPGA中由一些组合逻辑实现(在综合时可以进行优化,占用资源并不太大);微分器由一个减法器跟延迟器组成,其FPGA实现跟积分器一样。在使用级联CIC滤波器时,系统N级级联后增益,因此在FPGA实现时,每一级必须包含足够的精度,也就是位扩展,即每一级所使用的运算有效位数都将比前一级要多[4]。 CIC抽取滤波器每一级输出所需要的精度:(3.1)由式(3.1)得出每一级输出的数据精度,设计中都采用合理的精度即可以保证最后输出无失真。由于积分器部分是不稳定系统的缘故,所以会有增益,并且随着级数的增多和抽取因子的加大,增益也越大,所以在设计时必须注意中间寄存器位宽的选择[5],由式(3.1)经计算,中间寄存器的位宽应取为23位,设计中寄存器实际扩展为25位。设计采用CIC滤波器5级级联,滤波器截止频率为0.025fs,旁瓣抑制67.3dB。抽取倍数D=8,采样频率为开发板上晶振提供的50MHz。由于CIC放在第一级,势必要求处理速度非常高,但CIC滤波器5级级联就会增加关键路径的长度,有可能造成在输出时采样保持时间不足,造成亚稳态[5]。因此,为了避免这种现象,在FPGA实现时,每级都打一流水线(即加一级寄存器)。在每一级间增加一个延迟单元,梳状滤波器的传递函数变为:(3.2)(3.3) 可见在梳状级间增加一个延迟单元对滤波器的频率响应没有影响,而且关键路径也不会特别长,但处理速度可提高4倍。在ISE调用Verilog编程,调用Mode1Sim综合仿真如图3:图3CIC滤波器的功能测试设计输入信号为781KHz正弦+2.34MHz正弦波,采样频率fs=50MHz,CIC抽取因子D=8,滤波器截止频率1.25MHz。如图3,clk_8为系统时钟的8分频,实测经过CIC滤波器后的信号dout频率为78lKHz,证明设计的CIC有效地提取了所需要的信号。3.3HB滤波器模块设计与实现由于CIC滤波器会引起信号通带增益下降,为了解决这个问题,CIC滤波器后面要再级联抽取低通滤波器。半带滤波器的频率响应在信号采样率降低一半以后,在过渡带中是有混叠的,但是在通带内没有混叠,比普通的二倍抽取的抗混叠滤波器可以降低一半的运算量。因此,为了降低滤波器的复杂性,设计选择使用二倍抽取的半带滤波器以使总运算量大幅度降低。由于HB滤波器的阶数越低,相对带宽越小。因此,在小抽取率的情况下,应尽可能用高阶的HB滤波器,以获得尽可能大的信号带宽。 使用MATLAB的FDA工具箱,可以直观形象的发现,通过blackman窗函数加权,能够最优良的得到满足要求的半带滤波器,也可以使用下面的公式计算半带滤波器的系数[6,7]:(3.4)(3.5)通过MATLAB仿真对半带滤波器的系数进行设计,通过设计不同阶数与不的量化位数等,设计最后选定为15阶,量化位数8,归一化截止频率0.145fs。经过CIC滤波器8倍抽取后的输出采样率为50/8=6.25MHz,则HB滤波器的通带截止频率为906.25KHz。HB滤波器的系数选用15阶对称系数,其中6个系数为0,2倍抽取,虽然抽取因子小,但是却获得了较高的处理速率。更进一步的抽取可以交给后级的FIR完成,这样做的好处是既提高了数据的处理带宽和处理速率又节约了FPGA的资源。在ISE调用Verilog编程,调用Mode1Sim综合仿真如下图4图4HB滤波器功能测试 输入信号x_in为195KHz与20MHz两个正弦波的叠加,采样频率为fs=50MHz,HB抽取因子D=2。如图4,clk2是clk的2分频,每clk2上升沿采样一次,采样频率变为25MHz,实测经过HB滤波器后的信号dout频率为195KHZ,证明设计的HB有效的滤除了带外信号,并对输入的有用信号进行了2倍的抽取。3.4FIR滤波器的FPGA设计通过CIC和HB滤波抽取后,基带信号会由最初的高采样率降到较低的速率,以适应后级FIR处理。FIR滤波器的主要用途是对整个信道进行整形滤波,需要的时候还可以作为匹配滤波器使用。本文采用窗函数设计FIR滤波器,FIR滤波器部分的Verilog代码如下:[email protected](posedgeclock)if(reset==1)beginfor(k=1;k<=order;k=k+1)Samples[k]<=0;endelsebeginSamples[1]<=Data_in; for(k=2;k<=order;k=k+1)Samples[k]<=Samples[k-1];End4结 语本文主要研究了数字下变频器的原理及基于FPGA的实现方法。由于FPGA在设计和修改上的灵活性,使其比ASIC更加适合实现数字下变频器。FPGA可以满足各种不同应用场合的要求,因此用FPGA来代替专用数字下变频芯片能够满足大部分扩频通信系统中接收机对数字下变频器的处理速度、处理带宽以及滤波器性能的要求,具有一定的实用价值。
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处