一种低功耗64 倍降采样多级数字抽取滤波器设计
通带范围内变得更加平坦。
图5 补偿前后的通带幅频特性
补偿滤波器系统传递函数可采用如图6所示的多相结构实现方式。若采用传统的直接型结构实现,所有的运算单元将工作在2倍抽取频率之前,功耗较大。
而多相结构中,由于补偿滤波器中所有的加法与乘法单元都工作在输出频率而非输入频率处,这样在面积没有增加的情况下,功耗将比直接型结构节省近50%。
半带滤波器完成最后的2 倍降采样抽取,并使数字滤波器的总体性能达到指标要求。在Matlab 下调用相应的函数设计半带滤波器,其通带和阻带幅频特性如图7 和图8 所示。
同样采用多相结构实现半带滤波器,得到的电路结构如图9 所示。如果采用直接型结构,则需要的寄存器数为102,而多相结构的应用可使寄存器数降低到76 个,面积有一定程度的下降,并且由于所有运算单元直接工作在输出频率,功耗也比直接型结构降低了50%。
图6 补偿滤波器的多相实现结构
图7 半带滤波器的通带幅频响应
图8 半带滤波器的阻带幅频响应
图9 半带滤波器的多相结构
5 仿真与验证
在matlab 下对64 倍降采样及连抽取滤波器的幅频响应进行仿真,结果如图10 所示,其中补偿滤波器和半带滤波器的系数经过了截位处理。
图10 系统总幅频特性曲线
对数字滤波器的通带纹波与阻带衰减特性进行仿真,相应的幅频响应曲线如图11和图12所示。系统总通带纹波为± 0.006dB,阻带衰减在80dB以下,总体性能满足设计要求。
图11 系统通带特性
图12 系统阻带特性
在Mat l ab 下建立整个抽取滤波器的模型,用Matlab工具包生成 ∑-Δ调制器的输出信号进行系统测试,输出结果如图13 和图14 所示。
由于量化噪声被基本滤除,滤波器的输出得到所需的正弦信号。对整个抽取滤波器完成VerilogHDL 描述,其中运用了Horner 法则以提高精度,采用CSD 码对乘系数进行编码,乘法器直接采用移位和加法实现。最后,选用EP2C8Q208C8 并基于Quartus 工具综合了整个抽取滤波器,系统共占用FPGA 的LE资源达5 435 个,约占总数的66%。综合后可得到的最高时钟频率为5 5 . 9 5MHz ,并且对Modelsim 下后仿输出的数据进行了FFT 分析,并计算其相应的信噪比,图15 为5kHz 信号的FFT输出结果。
图13 调制器输出信号
图14 滤波器输出信号
图15 5kHz 信号FFT 分析结果图
在0~20kHz 范围内选择足够的频率点进行测试,测试结果如表3 所示,输出数据的有效位数均满足大于15bit 的设计要求。
表3 选取频率点输出数据的信噪比
6 结论
本文提出了一种面积小功耗低的数字抽取滤波器的设计。设计结构在过采样率很高时更能体现出它的优势。通过适当牺牲CIC 滤波器的阻带衰减特性以换取精度与硬件资源之间的平衡折衷,面积略有下降而功耗则比经典结构降低了35%;采用多相结构实现补偿滤波器和半带滤波器,均可使其功耗降低近50%,同时半带滤波器的硬件消耗也有明显下降。通过FPGA 验证,改进后的64 倍降采样抽取数字滤波器可满足15bi t 精度处理的要求。
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 电源设计小贴士 2:驾驭噪声电源(01-01)
- 电源设计小贴士 3:阻尼输入滤波器(第一部分)(01-16)
- 高效地驱动LED(04-23)
- 电源设计小贴士 4:阻尼输入滤波器(第二部分)(02-10)
- 低功耗嵌入式实现的方方面面(04-30)