首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

数字下变频的FPGA实现之二

数字下变频的FPGA实现之二

  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所示。


图3 16阶FIR滤波器的级联结构图



图4 FIR滤波器子模块结构图


图5 16阶FIR滤波器响应曲线图

                                                                                       图6 DDC实现的结构图

  这种结构的滤波器结构简单、易于实现,很容易扩展成高阶滤波器。首先通过MATLAB中的Fir DesignTool工具得到滤波器的系数图表(表1)。利用线性FIR滤波器抽头系数的对称性,通过加法器将对称的系数进行预相加,从而降低硬件规模。根据分布式算法原理,通过将抽头系数的所有可能组合固化在ROM中,利用查找表来代替乘法器。利用预相加模块产生的地址来查找ROM表,并将相应的数值进行移位相加,从而得出正确的结果。

表1 16阶FIR滤波器系数



DDC系统的实现


  利用上述的各个模块,可得到DDC系统的实现结构图如图6所示。

  整个系统在Cyclone系列芯片EP1C6Q240C8上实现,其FPGA综合结果图7所示。

                                                               图7 DDC系统的Quartus综合结果

                                                                         图8 系统时序测试结果

  时序测试图(图8)中,黄色为系统时钟波形,绿色为NCO产生的正弦波时序波形,蓝色为抽取滤波器输出的时序波形,粉红色为FIR滤波器输出时序波形。从示波器显示的时序图可以看出抽取滤波器输出波形的延时最大,大约为14ns左右,这和软件仿真的结果比较吻合,仿真中抽取滤波器输出的延时为16.47ns。故抽取滤波器是制约系统时钟速率提高的关键因素。

结语


  本文介绍了一种应用于数字化中频频谱分析仪的数字下变频电路,整个电路基于FPGA实现,结构简单,易于编程实现。


参考文献:


[1] Uwe Meyer-Baese著. 刘凌,胡永生译. 数字信号处理的FPGA实现[M]. 北京: 清华大学出版社. 2002年
[2] 杨小牛,喽才义,徐建良.软件无线电原理与应用[M].北京:电子工业出版社.2001年
[3] 刘朋全.基于FPGA的FIR数字滤波器的设计和实现[硕士学位论文].西安:西北工业大学. 2006年3月
[4] Kevin Skahill著,朱明程,孙普译,可编程逻辑系统的VHDL设计技术。东南大学出版社,1998年
[5] Wen Bi-yang. DDC Design by Using FPGA in HF OSMAR. 3rd International Conference on Computational Electromagnetics and Its Applications Proceedings. 2004
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表