数字下变频的FPGA实现
时间:05-12
来源:互联网
点击:
数字化中频(DIF)频谱分析仪在高中频实现数字化处理,具有分析带宽大、RBW小、测量时长短,可对复杂信号实施时—频分析的功能,因而得到越来越广泛的应用。但由于现有的数字信号处理器(DSP)处理速度有限,往往难以对高速率A/D采样得到的数字信号直接进行实时处理。为了解决这一矛盾,需要采用数字下变频(DDC)技术,将采样得到的高速率信号变成低速率基带信号,以便进一步的分析处理。用现场可编程阵列(FPGA)来设计数字下变频器有许多好处:FPGA在硬件上具有很强的稳定性和极高的运算速度,在软件上具有可编程的特点,可以根据不同的系统要求,采用不同的结构来完成相应的功能,具有很强的灵活性,便于进行系统功能扩展和性能升级。
数字下变频
数字下变频的主要目的是经过数字混频将A/D转换输出的中频信号搬移至基带,然后通过抽取,滤波完成信道提取的任务。因此,数字下变频器由本地振荡器(NCO)、混频器、抽取滤波器和低通滤波器组成,如图1所示。
A/D变换后的信号分成两个信号,一个信号乘以正弦序列(同相分量),下变频至零中心频率上,通过抽取滤波器、整形低通FIR滤波形成与原信号相位相同的信号;另一路信号乘以经过90度相移的正弦序列(正交分量),同样是下变频至零中心频率上,再通过相同的抽取滤波器、整形低通FIR滤波器,形成与原信号正交的信号。这样,DDC输出的低速率、零中频的正交的两路信号送往DSP等数字信号处理器进行后续的数字处理。
DDC的FPGA
以某中频数字化接收机为例来说明如何实现基于FPGA的数字下变频器。输入信号为中频26MHz,带宽500KHz的调频信号,该信号经过A/D变换之后送到DDC(A/D采样精度为8位,采样率20MHz),要求DDC将其变换为数字正交基带信号,并实现10倍抽取,即输出给基带处理器的数据速率为2MSPS,最后再经过16阶FIR滤波器进行信号整形。
NCO的实现
NCO采用直接数字合成(DDS)的方法实现,目前常见的技术有查表法和CORDIC计算法,本设计采用查表法来实现NCO,其原理图如图2所示。
32位累加器由一个32位的加法器和一个32位寄存器组成,在时钟的作用下,加法器通过寄存器将输出数据送入到加法器的一个输入端,与32位的频率控制字进行相加运算,得到一个有规律的相位累加结果。由于正弦值在一个周期内取有限个采样值,大于2pi部分的正弦值只是这有限数值的重复出现,因此,当累加结果大于FFFFFFFFH是,不需产生进位,而是重新从00000000H开始累加。为了减小ROM的容量,根据相位截断技术,取累加器输出的高10位作为查表地址,但是这种实现方式,在降低成本的同时,也引入了杂散分量,影响了NCO的纯度。正弦值ROM中存储的是预先计算好的正弦波幅值,利用正弦波的对称特性,只需存储四分之一周期的幅值,再通过相应的转换即可恢复出整个周期的幅值。同时,由于余弦波和正弦波相位差为pi/2,可以很容易的实现余弦信号。其关键部分的VHDL代码如下:
process
begin
wait until clk=’1’;
if add(8)=’0’ then
address<=add(7 downto 0);
else
address<=”11111111”-add(7 downto 0);
end if;
if add(9)=’0’ then
qou(7)<=’0’;
qou(6 downto 0)<=q;
else
qou(7)<=’1’;
qou(6 downto 0)<= ”1111111”-q;
end if;
end process;
抽取滤波器的实现
CIC积分梳状滤波器是实现高速抽取非常有效的单元。CIC滤波器的系统函数为:
式中D即为CIC滤波器梳状部分的延迟,滤波器系数都为1。从上式可以看出CIC滤波器的实现非常简单,只有加减运算,没有乘法运算,FPGA实现时可达到很高的处理速率。但是,单级CIC滤波器的旁瓣电平只比主瓣低13.46dB,这就意味着阻带衰减很差,一般是难以满足实用要求的。为了降低旁瓣电平,可以采取多级CIC滤波器级联的办法解决。在CIC滤波器的实现过程中,需要给内部寄存器提供足够的位宽,其计算公式为:
其中N为级数,M为延迟,R为抽取倍数。
本设计中,CIC滤波器需要完成10倍的抽取,采用4级级联来实现,由于输入、输出数据均为8bit,故内部寄存器所需的最大位宽为,旁瓣容限可达到4×13.46=43.44dB。
CIC滤波器实现的关键是抽取器的分频设计,其VHDL代码如下:
signal count : integer range 0 to 9;
signal clk2 : std_logic;
if (count=9) then --抽取器分频实现
clk2<=’1’;
else
clk2<=’0’;
end if;
comb : process --抽取器代码
begin
wait until clk2=’1’;
i3d1<=c0;
…………
c4<=c3/2-c3d1;
end process comb;
低通滤波器的实现:
数字下变频器的最后一个模块是低通FIR滤波器,主要用来对信号进行整形滤波,消除信号中存在的噪声。本设计采用并行结构的FIR滤波器,由2个8阶滤波器级联实现16阶的滤波器,由预相加模块、查找表模块和移位相加模块组成,结构图如图3、4所示。
数字下变频
数字下变频的主要目的是经过数字混频将A/D转换输出的中频信号搬移至基带,然后通过抽取,滤波完成信道提取的任务。因此,数字下变频器由本地振荡器(NCO)、混频器、抽取滤波器和低通滤波器组成,如图1所示。
图1 数字下变频原理图
A/D变换后的信号分成两个信号,一个信号乘以正弦序列(同相分量),下变频至零中心频率上,通过抽取滤波器、整形低通FIR滤波形成与原信号相位相同的信号;另一路信号乘以经过90度相移的正弦序列(正交分量),同样是下变频至零中心频率上,再通过相同的抽取滤波器、整形低通FIR滤波器,形成与原信号正交的信号。这样,DDC输出的低速率、零中频的正交的两路信号送往DSP等数字信号处理器进行后续的数字处理。
DDC的FPGA
以某中频数字化接收机为例来说明如何实现基于FPGA的数字下变频器。输入信号为中频26MHz,带宽500KHz的调频信号,该信号经过A/D变换之后送到DDC(A/D采样精度为8位,采样率20MHz),要求DDC将其变换为数字正交基带信号,并实现10倍抽取,即输出给基带处理器的数据速率为2MSPS,最后再经过16阶FIR滤波器进行信号整形。
NCO的实现
NCO采用直接数字合成(DDS)的方法实现,目前常见的技术有查表法和CORDIC计算法,本设计采用查表法来实现NCO,其原理图如图2所示。
图2 NCO原理图
32位累加器由一个32位的加法器和一个32位寄存器组成,在时钟的作用下,加法器通过寄存器将输出数据送入到加法器的一个输入端,与32位的频率控制字进行相加运算,得到一个有规律的相位累加结果。由于正弦值在一个周期内取有限个采样值,大于2pi部分的正弦值只是这有限数值的重复出现,因此,当累加结果大于FFFFFFFFH是,不需产生进位,而是重新从00000000H开始累加。为了减小ROM的容量,根据相位截断技术,取累加器输出的高10位作为查表地址,但是这种实现方式,在降低成本的同时,也引入了杂散分量,影响了NCO的纯度。正弦值ROM中存储的是预先计算好的正弦波幅值,利用正弦波的对称特性,只需存储四分之一周期的幅值,再通过相应的转换即可恢复出整个周期的幅值。同时,由于余弦波和正弦波相位差为pi/2,可以很容易的实现余弦信号。其关键部分的VHDL代码如下:
process
begin
wait until clk=’1’;
if add(8)=’0’ then
address<=add(7 downto 0);
else
address<=”11111111”-add(7 downto 0);
end if;
if add(9)=’0’ then
qou(7)<=’0’;
qou(6 downto 0)<=q;
else
qou(7)<=’1’;
qou(6 downto 0)<= ”1111111”-q;
end if;
end process;
抽取滤波器的实现
CIC积分梳状滤波器是实现高速抽取非常有效的单元。CIC滤波器的系统函数为:
式中D即为CIC滤波器梳状部分的延迟,滤波器系数都为1。从上式可以看出CIC滤波器的实现非常简单,只有加减运算,没有乘法运算,FPGA实现时可达到很高的处理速率。但是,单级CIC滤波器的旁瓣电平只比主瓣低13.46dB,这就意味着阻带衰减很差,一般是难以满足实用要求的。为了降低旁瓣电平,可以采取多级CIC滤波器级联的办法解决。在CIC滤波器的实现过程中,需要给内部寄存器提供足够的位宽,其计算公式为:
其中N为级数,M为延迟,R为抽取倍数。
本设计中,CIC滤波器需要完成10倍的抽取,采用4级级联来实现,由于输入、输出数据均为8bit,故内部寄存器所需的最大位宽为,旁瓣容限可达到4×13.46=43.44dB。
CIC滤波器实现的关键是抽取器的分频设计,其VHDL代码如下:
signal count : integer range 0 to 9;
signal clk2 : std_logic;
if (count=9) then --抽取器分频实现
clk2<=’1’;
else
clk2<=’0’;
end if;
comb : process --抽取器代码
begin
wait until clk2=’1’;
i3d1<=c0;
…………
c4<=c3/2-c3d1;
end process comb;
低通滤波器的实现:
数字下变频器的最后一个模块是低通FIR滤波器,主要用来对信号进行整形滤波,消除信号中存在的噪声。本设计采用并行结构的FIR滤波器,由2个8阶滤波器级联实现16阶的滤波器,由预相加模块、查找表模块和移位相加模块组成,结构图如图3、4所示。
频谱分析仪 DSP FPGA 振荡器 滤波器 低通滤波器 VHDL Quartus 示波器 仿真 电路 相关文章:
- 基于AVR和FPGA高精度数字式移相发生器的设计(11-07)
- 基于FPGA的简易频谱分析仪的设计方案(11-08)
- 全面掌控频域(07-01)
- 基于FPGA的简易频谱分析仪(11-12)
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)