1引言

∑-△调制器与数字抽取滤波器是∑-△ADC实现16bit以上精度的关键电路模块。∑-△调制器依靠过采样与高阶闭环负反馈控制实现的噪声整形技术,将基带内的量化噪声搬移到高频段,而数字抽取滤波器则将带外高频段的噪声加以滤除,同时将输出频率降低到输入信号的奈奎斯特采样频率,最终实现对输入信号高精度的模数转换。

由于采用过采样技术,∑-△ADC对输入信号带宽有一定限制,比较适合低频信号的模数转换。

以音频信号44kHz的奈奎斯特采样频率为例,在64倍的过采样率下,即输入采样频率为2.816MHz,4阶∑-△调制器可实现16bit的转换精度;输出PDM信号经*倍降采样数字抽取滤波器的处理后恢复初始信号的奈奎斯特采样频率。为保持S-Δ调制器的精度性能,数字抽取滤波器的通带截止频率应为20kHz、阻带起始频率为24kHz、阻带衰减最小为80dB、通带纹波为±0.01dB、ADC有效位数大于15bit。

∑-△ADC的精度和转换速度由∑-△调制器决定,其中∑-△调制器的阶数、过采样率等参数直接决定了ADC的分辨率,一般只需小规模的数模混合电路即可实现,面积小且功耗低。用于滤除量化噪声的数字滤波器,为维持调制器的高分辨率就必须具有一定量的阻带衰减与很小的纹波,导致数字滤波器的阶数过大,并直接导致硬件消耗与功耗的显着增加。

本文针对高精度数字抽取滤波器IP电路,进行低成本与低功耗设计技术研究。在给定指标约束下,通过对CIC抽取滤波器结构的改进,同时将多相结构应用到补偿滤波器和半带滤波器中,获得比经典结构在硬件消耗与功耗上明显的降低。

2经典CIC滤波器结构

为确保数字滤波器信号的出路精度,采用单级抽取滤波器的阶数将与输入信号的采样频率成正比,而与过渡带宽成反比。对于输入频率2.816MHz、过渡带宽4kHz的设计指标,采用单级抽取结构的滤波器,由于频率高、过渡带窄而导致单级滤波器阶数过大,可实现性差,因此采用多级抽取结构成为必然。在多级结构中,第一级抽取结构的输入频率为系统最高的输入频率,但它的过渡带宽很大;最后一级虽然过渡带宽很窄,但输入频率降低;中间级的输入频率与过渡带宽均较为适中,这样的频率与过渡带分布配置,使得最终各级滤波器的总阶数远小于单级抽取的阶数,因此多级结构更具有实用价值。

CIC是由Hogenauer提出的一种无需使用乘法器的滤波器结构,结构简单,采样变换率高,可作为多级数字抽取滤波器中的输入级。阻带衰减为衡量CIC性能的一个重要指标,在Matlab下对抽取因子为64、32、…、2的最小阻带衰减进行仿真,确定当抽取因子最大为16时,阻带衰减仍满足设计要求,继续增大抽取率导致性能下降,则最大抽取倍率为16。

CIC滤波器的最大缺陷在于通带内的过多衰减,后面必须加一级补偿滤波器以确保补偿后的通带纹波仍满足指标要求,补偿滤波器同时还具备降采样抽取功率,可选择4倍抽取,也可先进行2倍抽取,然后用一级半带滤波器再完成2倍抽取。基于多级抽取有利于降低硬件资源与功耗的原则,64倍降采样数字抽取滤波器可采用如图1所示的三级结构。

图1系统结构框图

CIC降采样滤波器对系统性能的影响至关重要,其级联级数D与S-Δ调制器的阶数L之间存在D=L+1的关联,对于4阶∑-△调制器,D=5,在16倍降采样率下,CIC滤波器的系统函数为:

采用Hogenauer经典结构实现以上系统传输特性时,可将级联梳状滤波器分解为积分器HC(z)与梳状微分器HI(z)两部分,然后采用层叠结构实现。

由于HI(z)中的延迟因子需要16个寄存器,采用置换原则,完成16倍抽取后再进行微分部分的计算,这样就只需要一个延迟因子,由此得到如图2所示的经典CIC电路结构框图。

图2经典CIC滤波器电路结构

CIC中由于没有乘法运算,同时置换原则的应用大大减少了寄存器的数量,面积和功耗得到有效控制。但是,经典CIC结构的很大缺陷在于其中的积分器HC(s)为IIR滤波器,即存在的输出到输入反馈使系统稳定性无法保证,并导致数据溢出。设CIC滤波器的级联级数为N,抽取倍数为M,输入与输出位数分别为Bin和Bout,则两者间必须满足以下关系:

根据设计指标要求,Bin=1bit、M=24、N=5时,Bout=21bit,即整个电路中所有寄存器和加法器位数为21位时,系统才不会产生溢出,而输出位数的大小决定了寄存器的位数以及涉及的计算量,并由此影响功耗与面积。

最终决定数字滤波器面积的是寄存器单元数量,通过估算其中1位寄存器的数量可比较芯片面积的相对大小;由于没有乘法器,则加法运算决定了CIC滤波器中的功耗,以1个1位加法器在一个输出周期内完成的加法次数作为估算功耗的基本单位。

图2中,一共有10个延迟因子,若每个字长均取21位,一共需要210个1位寄存器。总共有10个21位加法器,5个工作在输入频率,5个工作在输出频率,等效功率因子为:

计算得到等效功率相对因子为6825,较大的功耗表明针对功耗面积优化的CIC尚有继续改进的空间。

3.CIC滤波器的改进设计

经典CIC中IIR传递函数的递归结构严重制约了CIC滤波器的性能,消除IIR成为改进CIC设计的基本出发点。将H(z)中的分子多项式因式分解并通过约分得到:

上式中没有IIR结构,从而消除了输出到输入的递归运算,确保系统稳定,结合置换原则,由此得到改进的CIC电路结构如图3所示。

图3非递归结构CIC滤波器的实现框图

这种非递归结构所需要的1位寄存器总数为R=1+2+3+?+20=210,而等效功耗因子P=(2+3+4+5+6)×16+(7+8+9+10+11)×8+(12+13+14+15+16)×4+(17+18+19+20+21)×2=1130。与经典结构相比,寄存器总数相等,但功耗减小到原来的1/6,采用这种非递归结构不但改善了系统稳定性,还大大提高了系统性能。由于电路实现时需采用层叠结构,5级结构即需5级层叠,如果其中有一级为4或者更小,那就可以减小层叠数,从而进一步减小硬件和功耗。

阻带衰减为衡量CIC滤波器性能的一个重要指标。通过牺牲部分阻带衰减性能可减小层叠数。对于4级结构,应分别考虑各级在需要的衰减频段处能达到的衰减值。在Matlab下分别仿真(1+z-8)、(1+z-4)、(1+z-2)、(1+z1)的幅频特性,并依次设为第一级到第四级。设CIC滤波器的零点为FZ,根据设计指标,中心频率fC=22kHz,只要在所有FZ±fC频率范围内阻带衰减值能达到80dB,CIC滤波器即可满足设计指标要求。由于最小衰减值出现在FZ-fC与FZ+fC关键频率点处,在Matlab下仅测试单级时关键频率点处的阻带衰减,结果如表1所示。

表1各级为单级时在关键频率点处的阻带衰减值

通过计算,当第一级到第四级的级联级数分别减小为最低的5、4、3、3时,则最小阻带衰减量计算为:

虽然以上降低层叠数的改进结构其最小阻带衰减满足设计要求,但后级补偿滤波器无法使纹波达到设计要求,应加大其中一级或两级的级联级数来降低补偿后的通带纹波,将级数增大后纹波的变化如表2所示。

表2级数增大后补偿结果的变化

只有当级联级数为3、4、5、5时补偿后的结果接近设计指标要求。将补偿后的整体幅频特性沿着Y轴方向向下移动约0.008dB左右,这样最大纹波为0.0162-0.008=0.0082dB,最小纹波为-0.00037-0.008=-0.00837dB,这样纹波就在指标范围内,所以采用这种级联方式可以满足设计指标要求。最终确定的CIC滤波器系统函数为:

图4为改进前后CIC滤波器的幅频响应,实线与虚线分别对应为改进前后的幅频响应,改进后的曲线比改进前有明星的上升,部分点处上升的幅度还较大。但由于改进后在关键点处能够达到衰减的性能要求,牺牲其他非关键点处的衰减特性以降低硬件资源和功耗的设计策略还是非常可取的。

图4改进前后的幅频响应比较

此时,寄存器总数降低到R=1+2+3+?17=153,等效功耗因子P降低为P=(2+3+4)×16+(5+6+7+8)×8+(9+10+11+12+13)×4+(14+15+16+17+18)×2=732,比未改进前少用了57个寄存器,功耗则降低了35%,在保持纹波性能的前提下,硬件资源消耗和功耗明显降低。

4补偿滤波器与半带滤波器设计

改进后的CIC滤波器幅频特性整体向上偏移,导致通带频率处的各点频率向上移动,与改进前幅度相同的点在改进后的曲线上必然向前移动,即改进后的频率点相当于左移。所以,针对改进后的CIC滤波器设计补偿滤波器时,其通带截止频率点相应地也要左移。若将通带截止频率设为小于20kHz的点,通过调整参数以优化补偿后的纹波性能,即调整幅频特性曲线后最终得到的通带纹波为±0.0062dB。

补偿前后的通带特性如图5所示,图中下方曲线为CIC滤波器在通带范围内的幅频响应,上方曲线为补偿滤波器的幅频响应,中间部分为补偿后的幅频响应。显然,经补偿后的曲线在通带范围内变得更加平坦。

图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系统阻带特性

在Matlab下建立整个抽取滤波器的模型,用Matlab工具包生成∑-Δ调制器的输出信号进行系统测试,输出结果如图13和图14所示。

由于量化噪声被基本滤除,滤波器的输出得到所需的正弦信号。对整个抽取滤波器完成VerilogHDL描述,其中运用了Horner法则以提高精度,采用CSD码对乘系数进行编码,乘法器直接采用移位和加法实现。最后,选用EP2C8Q208C8并基于Quartus工具综合了整个抽取滤波器,系统共占用FPGA的LE资源达5435个,约占总数的66%。综合后可得到的最高时钟频率为55.95MHz,并且对Modelsim下后仿输出的数据进行了FFT分析,并计算其相应的信噪比,图15为5kHz信号的FFT输出结果。

图13调制器输出信号

图14滤波器输出信号

图155kHz信号FFT分析结果图

在0~20kHz范围内选择足够的频率点进行测试,测试结果如表3所示,输出数据的有效位数均满足大于15bit的设计要求。

表3选取频率点输出数据的信噪比

6结论

本文提出了一种面积小功耗低的数字抽取滤波器的设计。设计结构在过采样率很高时更能体现出它的优势。通过适当牺牲CIC滤波器的阻带衰减特性以换取精度与硬件资源之间的平衡折衷,面积略有下降而功耗则比经典结构降低了35%;采用多相结构实现补偿滤波器和半带滤波器,均可使其功耗降低近50%,同时半带滤波器的硬件消耗也有明显下降。通过FPGA验证,改进后的64倍降采样抽取数字滤波器可满足15bit精度处理的要求。

降采样 matlab,改进型64倍降采样数字抽取滤波器的设计与仿真分析相关推荐

  1. 【Matlab】海底声学模拟(Bellhop)以及滤波器的设计

    一.设计要求 某单波束测深仪最大测量水深为300米,请根据<水声学原理>和<数字信号处理>相关知识,仿真设计该单波束测深仪的数字信号处理系统(包括模拟滤波器参数.采样频率.量化 ...

  2. 【CIC滤波器】基于MATLAB/FPGA的数字CIC滤波器的设计

    FPGA代码: module down(i_clk,//输入时钟i_rst,//输入复位信号i_M, //抽取值i_data,//输入信号o_data,//输出信号r_clk);input i_clk ...

  3. Matlab进行升序降序,matlab sort()升序和降序

    B = sort(A) %沿着输入参量 A的不同维的方向.从小到大重新排列 A中的元素.A 可以是字符串的.实数的.复数的单元数组.对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块: ...

  4. 基于matlab BP神经网络的手写数字识别

    摘要 本文实现了基于MATLAB关于神经网络的手写数字识别算法的设计过程,采用神经网络中反向传播神经网络(即BP神经网络)对手写数字的识别,由MATLAB对图片进行读入.灰度化以及二值化等处理,通过神 ...

  5. 算术平均值滤波matlab程序,基于S7-1200 AD采样的高效数字滤波算法的设计与实践...

    在工业控制中,常常会伴随大量的模拟量数据采样.模拟量采样时,由于待采量本身.传感器和传输过程中的外界干扰,特别是非稳态干扰信号等因素的影响,采样值中通常含有各种周期性和非周期性的噪声和干扰.为得到稳定 ...

  6. 为什么UART串口通信要16倍过采样数据

    增强抗干扰是原因之一 标准UART可以选16倍采样,也可以选64倍采样,个人觉得应该是方便分频设计. 标准UART的RXD前端有一个"1到0跳变检测器",当其连续接受到8个RXD上 ...

  7. 基于MATLAB中APP Designer的采样定理的可视化

    采样定理的可视化 一.APP Designer 介绍 二. 时域抽样定理可视化界面搭建 2.1 时域抽样定理原理 2.2核心代码实现 2.3界面设计与操作 全部代码:https://download. ...

  8. MATLAB实现对Sa(t)采样利用采样定理恢复原信号

    MATLAB实现采样,恢复 对Sa(t)函数均匀采样 %信号Sa(t)作为被采样信号,信号带宽B=1,采样频率Ws=2B %此频率下的采样为Nyquist采样,对采样即恢复过程用MATLAB进行仿真 ...

  9. STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量,硬件过采样器实现1024倍过采样

    一.前言 上一个笔记:STM32H743+CubeMX-ADC+DMA采样三路模拟量(并行),没过采样 这个应该是STM32上ADC采样的终极解决方案了,硬件1024倍过采样+DMA搬运数据. 在一个 ...

  10. win7旗舰版64位降32位的方法步骤

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤 我们的生活中越来越离不开电脑,但在使用电脑的过程中总会遇到各种各样的问题.知识屋致力于给电脑小白朋友们介绍一些简单常用问题的 ...

最新文章

  1. 32岁程序员面试被拒:比又穷又忙更可怕的,是2020年你还不懂...
  2. 面试必问:怎么保证缓存与数据库的双写一致性?
  3. opencv改变imshow窗口大小,窗口位置,ROI
  4. GCN的多层卷积的流程图
  5. python pygame模块按键延迟_用pygame做游戏时,用pygame.KEYDOWN来实现的按键控制“不灵敏”能怎么解决?...
  6. django:资源网站汇总
  7. 实际应用中带头节点的线性链表
  8. 那些年,我们一起玩过的儿童游戏
  9. html,css,js 实现树形菜单栏
  10. 脱壳笔记-手工脱FSG压缩壳
  11. 计算机结构体系-CISC与RISC
  12. 名义初品微商系统开发,小程序开发
  13. linux无法运行sssverify,Synopsys Design Compiler在fedora Core 9下面的安装
  14. Nginx支持TCP端口转发
  15. goahead之GoAction实现
  16. access 查找工龄大于30_Access操作题
  17. 自动驾驶Apollo安装步骤
  18. LaTeX 表示断行和分页
  19. namenode和datanode工作机制_NameNode与DataNode的工作原理剖析
  20. PHP中iconv函数来转换编码,如UTF-8转GB2312

热门文章

  1. android root测试,[原创]安卓逆向之绕过root检测的四种姿势
  2. 对话夏琳·查布利斯:Primer.AI机器学习工程师是怎样炼成的?
  3. IDEA安装jclasslib
  4. 国外浏览器哪个好用?国外浏览器排名
  5. UR5 UR10 ------六自由度机械臂
  6. 开发erp管理系统的好处
  7. 2022抖音日活用户超8亿,旅游商家如何从抖音获客?
  8. 在oracle中插入语句要求,oracle插入语句
  9. python读取excel中数据绘制柱状图_Python的Excel操作及数据可视化
  10. 韩文、日语相关 文档扫描识别 的福音