4 HB滤波器设计
半带滤波器是一种特殊的FIR滤波器,在多速率信号处理中有着至关重要的作用。在常见的下抽滤波器设计中第二级一般采用HB滤波器要用到第二级的原因是综合考虑到带内平坦度和阻带衰减度等因素使得第一级CIC抽取滤波器的级数和抽取因子不宜过大,HB滤波器的带内平坦度好,计算效率高,在高速率信号处理中发挥着重要的作用,在抽取因子为2的幂次方的场合更是如鱼得水。 HB滤波器的通带和阻带具有对称的关系,因此其通带波纹和阻带波纹相等。但是使其成为数字信号处理中非常常用的一种滤波器的主要原因却是因为其系数有一半均为0。如此,在低速率数字信号处理中或许还不是很重要,但是在那些对实时性要求非常高的系统中,这种将计算量减半的性能就使得其得到了广泛的应用。
综合考虑前方中提出的设计的要求,文中设计的HB滤波器的幅频响应如图6所示。
将文中设计的CIC,PFIR,HB级联之后得到的总的滤波器的幅频响应如图7所示,可以发现较之于CIC滤波器的通带性能,此时级联滤波器的通带性能已经有了较大的提高。其通带细节图如图8所示。
5 system generator仿真
system generator for dsp是业内领先的高级系统级FPGA开发工具。本次设计是在基于Xilinx(赛林思)的system generator的基础上完成的。赛林思是全球领先的可编程逻辑完整解决方案的供应商,它研发、制造并销售范围广泛的高级集成电路、软件设计工具以及作为预定义系统级功能的IP(InteIlectual Property)核,客户使用Xilinx及其合作伙伴的自动化软件工具和IP核对器件进行编程。System generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到MATLAB的Simulink库中,可以在Simulink中进行定点的仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且它还可以生成HDL文件,或者网表直接供ISE调用。较之于直接用MATLAB进行算法的仿真其主要优势作于它是基于定点的,同时,它是由各个供应厂商直接提供的库,因此它能够充分认识FPGA内部的资源等,其仿真也更精确可靠。 虽然,system generator能直接生成供底层FPGA调用的代码以及网表,但是,通常并不这样做。相对于人工编写的代码,system genera tor生成的代码相对冗余度高,资源利用也不及人工编写的代码合理。但是,在某些需要快速进行算法开发的项目中,这种方式无疑为用FPGA从事快速的算法开发提供了一个捷径。 将MATLAB与system generator集成后,由图1所示的原理框图,搭建了用于仿真的system generator模块,如图9所示。
在输入端输入幅频响如下图所示的信号,其有用信号范围173~25.5 MHz。另外为了方便仿真结果的观察,又加入了2个大的噪声信号分别位于32.4MHz,12.4 MHz。
将上图所示的信号送入DDC网络后,信号变成I/Q两路信号,将这两路信号组合成复数信号后得到的复数信号的频谱图如图11(a)所示。 图11(a)为原输入信号的有用信号附近的细节图,而图11(b)为经过DDC网络后得到的复数信号的幅频响应图。由于simulink的频谱绘制工具显示刷新的问题它们看起来有了一点点的误筹,但是,也可以发现经下变频后的信号有效的恢复了原信号的频谱信息。它将原输入信号的负边频线性搬移到了以0频为中心的带宽为4.1MHz的频谱上来。 6 结束语
实际项目中接触到的信号处理任务大多为带通信号,如果直接采用传统的奈奎斯特采样定理对模拟信号进行采样,然后进行数字信号处理任务,这样对后端的DSP器件的实时性要求太高。因此,通常我们都要先用一个FPGA来完成数字信号的下变频操作,之后再由后端的DSP器件来完成信号处理任务。因此,如何合理的设计DDC下变频就显得特别重要。本文针对如何设计DDC滤波器以及基于FPGA的System Generator的仿真都作了简单的介绍。 |