微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于FPGA的高速数字下变频系统设计

基于FPGA的高速数字下变频系统设计

时间:10-16 来源:互联网 点击:

摘要:基于FPGA设计了一高速数字下变频系统,在设计中利用并行NCO和多相滤波相结合的方法有效的降低了数据的速率,以适合数字信号处理器件的工作频率。为了进一步提高系统的整体运行速度,在设计中大量的使用了FPGA中的硬核资源DSP48。Xilinx ISE14.4分析报告显示,电路工作速度可达360MHz。最后给出了在Matlab和ModelSim中仿真的结果,验证了各个模块以及整个系统的正确性。

数字下变频(Digital Down Conversion,DDC)是软件无线电系统的关键模块之一,其可将高频数据流信号变成易于后端数字信号处理器(Digital Signal Processor,DSP)设备实时处理的低频数据流信号。在数字下变频实现中,随着信号采样率的不断提高,数据率也会相应的提高,但是实际应用中随着数据速率的不断提高,数据处理器件(如FPGA)的处理速度会无法满足要求而不能正常工作,从而带来了数字信号处理的瓶颈问题。本设计就是以多路并行NCO技术为基础,研究了如何在FPGA中用多路并行采样数据的方式来解决数据处理器件无法提供高速率的匹配信号的问题,并给出了高速DDC实现的架构和仿真结果。

1 数字下变频基本原理

数字下变频主要由频谱搬移和抽取两部分组成,如图1所示,其中频谱搬移包含数控振荡器(Numerically Controlled Oscillators,NCO)、乘法器和低通滤波器(LPF,Low Pass Filter);抽取包含抽取滤波器(LPF2)和D倍的抽取,LPF2是为了限制信号的频谱,以免抽取后发生混叠。

模拟信号经过A/D转换后分成两路信号,一路信号和NCO输出的正弦信号相乘(同相分量),一路和NCO输出的余弦信号相乘(正交分量),之后经过低通滤波器(LPF1)将高频分量滤除,然后信号经过抽取滤波以降低速率,最终输出的两路信号就可以送往后续的数字信号处理器中做进一步的处理。

2 高速DDC系统设计

文中设计了一种基于并行NCO的高速DDC,可大大降低对FPGA处理速度的要求,其实现如图2所示,该系统主要由换向器、并行NCO、乘法器模块和两个多相FIR滤波器组成。换向器右侧的所有电路都是工作在Fs/4的时钟频率上,换向器将速率为Fs,16 bit的数据变成4路Fs/4,16 bit的数据。对于输入速率要求较高的场合(例如,速率超过500M),对于输入接口需要用到Xilinx的硬件原语IDDR。

换向器将一路高速率数据分成四路低速率数据输出,并行NCO的输出频率和起始相位受FL控制,分别输出8路正余弦数据,乘法器模块实现NCO输出数据和四路低速率数据的相乘,输出四路正交分量和四路同相分量,之后将这8路数据送入低通滤波器中进行滤波处理,最后将同相分量和正交分量分别输出。

2.1 并行NCO设计

NCO是用来产生载波cosωct和sinωct的部件。

假设NCO的多相分解路数为D,我们可以将x(n)写为如下形式:

由式(1)和式(2)可以看出,经过多相分解之后,数据由原来一路x(n)变为了D个支路,假设x(n)的采样率为fs,那么多相分解后,每个支路的采样率为fs/D,即每一条支路上数据速率变为fs/D,相比原来一路x(n)的情况,数据到来的速率慢了D倍。

图1中,一路x(n)的采样率为,fs,那么NCO的输出载波相位的速率也必须是fs。假设NCO输出给上面支路的余弦信号为xLC(n),NCO输出给下面支路的正弦信号为xLS(n),假设xLC(n)和xLS(n)的初始相位都为0,其频率都为fL,我们以xLC(n)为例来说明。未采样之前的模拟信号为

xLC(t)=cos(2πfLt)

经过ADC采样,变成数字信号后,用nTs代替上式中的t,得到

由式(4)可以看出,多相分解之后,虽然每个支路的采样率,即数据到来的速率变慢了D倍,但是每个支路NCO输出的频率仍然是fL。我们还需要进一步降低NCO的输出本振信号频率,因为通常情况下,利用NCO产生本振信号需要使用一个主时钟fclk,这个主时钟fclk必须是FPGA可以稳定运行的时钟,其频率不可能太高,而且,实际应用中,NCO输出的本振信号的频率不能超过主时钟fclk。因此无法直接产生所需要的输出频率,但是,我们可以利用三角函数的转换关系,间接的产生。本文所设计的NCO采用如图3所示的结构。

2.2 多相FIR滤波器的设计

低通滤波器主要是用来对信号进行整形滤波并除去信号中的噪声。本设计利用DSP48系列IP核来构成低通滤波器。Xilinx公司提供了两种利用DSP48构建FIR滤波器的方法,分别为Addr Tree和Addr Cascade,考虑到速度问题,本设计使用Addr Tree的设计方法,使用该方法,在Kintex7系列FPGA上其速率超过650 MHz。

假设H(z)对应的冲击响应h(n)的长度为N,且N能被D=4整除(以D=4为例),则四路滤波器输出分别为:

3 仿真及验证

根据系统设计的要求,我们利用Ma

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top