数字下变频中抽取滤波器的设计及FPGA实现

FPGA/ASIC技术

190人已加入

描述

摘 要: 针对软件无线电接收机数字下变频中高速数字信号的降采样需求,利用半带滤波器及级联积分梳状滤波器,设计了一种半带滤波器前置的多级抽取滤波器架构。通过Simulink搭建系统模型验证之后,利用Xilinx ISE 12.3在Xilinx xc5vsx95t-2ff1136 FPGA上实现了一种下采样率为64的抽取滤波器。Modelsim仿真结果表明,该抽取滤波器设计是有效的,达到了设计指标。

0 引言

数字下变频是软件无线电接收机的关键模块,高速数字信号进行变频、降采样、滤波,将高速中频信号变为低速基带信号[1-2],便于后级处理。其中,降采样和滤波是下变频的关键模块,由抽取滤波器来完成[3]。由于多级结构可以大大降低滤波器的阶数[4],允许每一级归一化过渡带宽比较宽[5],抽取滤波器一般采用多级结构实现,常用结构如图1所示,wdz4-t1.gif级联积分梳状(Cascaded integrator-com,CIC)滤波器通常作为第一级抽取滤波器[1-6]。

为缩短关键路径,从而提高采样速度,滤波器常采用并行处理及流水线技术[6]。CIC滤波器中有反馈回路,加入流水线寄存器则会导致反馈回路不同步,从而无法采用流水线技术;FIR滤波器则可以采用并行处理及流水线技术。对于半带滤波器(Half-band Filter, HBF)而言,采用分布式算法则可以很好地兼容并行处理与流水线技术,且无需速率受限的乘法器资源。本设计对流水线式全并行分布式算法进行改进用以实现HBF,而并行处理提高采样率是采用复制硬件的方法[7],wdz4-t2.gif全并行结构的HBF则是复制使用LUT,在满足处理速度的要求下,本文将HBF置于数据位宽最小的输入级(如图2)。

1 抽取滤波器整体设计及Simulink建模仿真

本文将64倍抽取的总抽取率分为3级实现:2倍抽取的前置HBF、16倍抽取的CIC抽取滤波器以及2倍抽取的FIR补偿滤波器,如图2所示。各级指标如表1所示。

FPGA

 

Simulink是MATLAB中的一种可视化仿真工具,可以对动态系统进行建模仿真及分析,支持多速率系统,广泛应用于数字信号处理领域的建模仿真。本文的系统模型如图3所示。

FPGA

 

顶层系统使用3路信号选择器作为输入接口,输入信号经由矩形框内所示子系统即抽取滤波器进行降采样及滤波。其中FIR补偿滤波器的系数由本文2.3节得到。设置输入控制信号为“1”,选择采样率为200 MHz的频率分别为1 MHz、4 MHz、10 MHz的混合正弦信号作为抽取滤波器的输入信号,各级输出信号的频谱如图4所示。

FPGA

 

2 抽取滤波器的FPGA实现

2.1 前置半带滤波器

HBF是近一半的系数为0的FIR滤波器,在多速率系统中采用HBF可以大大缩小硬件规模。本文结合表分割技术与并行处理的优势进行改进,以达到第一级高速处理的目的。考虑内积公式:

FPGA

 

考虑N=LP,L、P均为正整数,则n=l·P+p,l=0,1,…,L-1,p=0,1,…,P-1,式(2)改写为:

FPGA

 

本文35阶高速HBF系数对称,且有近一半系数为零,选择P=4,将整个LUT表分解为2个4输入和1个2输入的子表。改进后的算法结构如图5所示,相比于文献[8],查表后的流水线式加法树比移位累加器的实时性更高;并行及流水线处理处理可以有效提高滤波器的处理速度,且表分割技术使得该并行结构不必以过多的资源消耗为代价。

FPGA

 

2.2 CIC抽取滤波器

CIC滤波器结构简单,是高速抽取或插值系统中非常有效的单元[9]。单级CIC滤波器第一旁瓣抑制为13.46 dB,阻带衰减极不理想[10]。为达阻带衰减的指标,本文采用多级CIC滤波器级联的结构实现。N级CIC滤波器归一化传递函数如下[11]:

其中R是抽取因子,M是梳状部分中延迟量,该设计取M为1。由式(4)知N级R倍抽取的CIC的幅频响应:

可计算出,R=5时即可满足阻带衰减的需求。本文首先实现所有的积分器,然后是16倍抽取,最后实现梳状部分。对于多级CIC滤波器而言,可以剪除一些较低有效位而不影响系统的完整性[7]。本文采用逐级剪除的方法,以减少位宽截断引起的量化噪声,并节省资源占用。该设计中CIC滤波器输入位宽19 bit,输出为20 bit,内部最大位宽为40 bit。逐级剪除后,CIC滤波器各级位宽如表2所示。CIC滤波器频率响应如图6。可见,通带衰减是CIC滤波器的主要弊端之一,故而需要补偿滤波器进行通带补偿。

FPGA

 

FPGA

 

2.3 CIC补偿滤波器

补偿滤波器通常处于较低速率的位置,以减小硬件复杂度。为避免频谱混叠,本文的补偿滤波器的通带边界频率fc应满足:fc≤fs_cic/4R,fs_cic是CIC滤波器的输入采样频率。

本文补偿滤波器选取fc=1.56 MHz。因其频率响应是CIC滤波器频响的倒数[12],即:

基于式(6),利用MATLAB中firceqrip函数计算出其浮点型系数,再进行量化。经反复试验,补偿滤波器长度为33即可。此时,补偿后的滤波器通带波纹小于0.01 dB,补偿滤波器及补偿后的滤波器频响如图6。可见,补偿滤波器设计较为合理。由于CIC滤波器输出位宽20 bit,位宽较大,该滤波器不再使用图3所示结构,选用IP核导入滤波器系数,选择脉动阵列乘累加结构实现。

3 系统验证及分析

利用MATLAB生成采样率为200 MHz,频率分别为1 MHz、18 MHz的混合正弦信号数据写入TXT文档,之后将数据读入到FPGA寄存器,在时钟激励下,模拟ADC的输出,作为系统的输入。Modelsim仿真结果如图7所示。

FPGA

 

由图7(a)可知,每隔63个输入数据有一个输出,达到了64倍抽取的目的;且图7(b)显示波形较为平滑,位宽截断引起的误差基本可以忽略,表明本文中的逐级剪除的位宽阶段方式是有效的。

4 结论

本文针对数字下变频中降采样率的要求,设计了一种的HBF前置的抽取滤波器结构。利用Simulink对系统进行了建模仿真,并详细说明了FPGA实现各级滤波器的设计方法,对整个系统进行了Modelsim仿真验证。结果表明,本文设计的抽取滤波器工作性能良好,完全达到了实际需求指标。且本文的设计方案具有较强的工程应用价值,目前已用到中频200 MHz的数字下变频系统中。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分