相对于模拟滤波器,数字滤波器具有高精度、高可靠性、可编程改变滤波特性、便于集成等一系列优点,并且理论上可实现近似理想频率特性的滤波性能。经典的数字滤波器主要包括有限脉冲响应(Finite Impulse Response,FIR)滤波器和无限脉冲响应(Infinite Impulse Response,IIR)滤波器。相对于IIR滤波器来说,当FIR滤波器系数保持线性对称结构时,能够在满足幅频响应要求的同时获得严格的线性相位特性。在数据通信、语音信号处理、雷达信号处理等领域通常要求信号在传输过程中不能有明显的相位失真,因此FIR滤波器获得了更广泛的应用[1]

因其独特的可编程结构及强大的并行运算能力,很适合于实现FIR滤波器设计。基于FPGA的FIR滤波器设计近年来一直是学者们研究的热点,主要集中在最优滤波器设计方法、提高滤波器运行速度、滤波器方法等方面[2-7]。常规的系数量化方法仅关注对滤波器本身幅频特性的影响[8],较少考虑在滤波器输出位宽确定的情况下,如何提高输出幅度,进而最大化输出信噪比的问题。在研究分析传统滤波器系数量化方法的基础上,提出了基于滤波器增益的系数量化方法,给出了MATLAB及FPGA实现后的ModelSim仿真测试数据,结果表明这种方法最多可将滤波输出幅度提高近一倍,信噪比提高近6 dB。

1 FIR滤波器原理及结构

FIR滤波器,是指单位脉冲响应长度有限的滤波器。FIR滤波器的突出特点是其单位取样响应h(n)是一个N点长的有限长序列,0≤n≤N-1。滤波器的输出y(n)可表示为输入序列x(n)与单位取样响应h(n)的线性卷积。

从系统函数很容易看出,FIR滤波器只在原点上存在极点,这使得FIR滤波器具有全局稳定性。FIR滤波器是由一个抽头延迟线加法器和乘法器的集合构成的,每一个乘法器的操作系数就是一个FIR系数。因此,FIR的这种结构也被人们称为抽头延迟线结构。图1是FIR滤波器FPGA实现的典型结构图。

2 系数量化对FIR滤波器性能的影响

2.1 FIR滤波器的MATLAB设计方法

在采用FPGA编程实现FIR滤波器之前,通常采用MATLAB软件设计滤波器系数。MATLAB提供了丰富的FIR滤波器函数,分别对应不同的设计方法,如窗函数法、频率取样法、基于“最大误差最小”的最优设计法等。为便于对比,采用最优设计方法设计FIR低通滤波器(MATLAB设计函数为firpm),其参数为:采样频率32 MHz,过渡带0.5 MHz~1.5 MHz。图2为MATLAB设计出的滤波器幅频响应图。

由图2可知,FIR滤波器的长度N越大,滤波器过渡带越接近设计参数,通带及阻带滤波性能越好,当N=41时阻带衰减为26 dB,当N=61时阻带衰减为38.5 dB,当N=81时阻带衰减为48 dB;当系数长度超过一定值后(本实例为61),滤波器过渡带的改善余量已很小,但通带及阻带滤波性能会持续增加。不失一般性,下文以长度为61的低通滤波器为例进行讨论。

2.2 系数的量化方法及其对滤波性能的影响分析

根据MATLAB的FIR滤波器设计原理,无论滤波器长度多长,滤波器通带内增益均为1(0 dB),滤波器系数为带小数的浮点数。由于FPGA只能处理二进制数据,MATLAB设计出的滤波器系数需要转换成二进制数据才能完成FPGA电路实现。

滤波器系数是带符号的数据,FPGA实现时需要用二进制补码格式表示。设滤波器系数的量化位宽为Q,则系数C的表示范围为-2Q-1≤C≤(2Q-1-1),又由于FIR滤波器系数的严格对称特性,实际范围为(1-2Q-1)≤C≤(2Q-1-1)。

传统的滤波器系数量化方法可分解为3个步骤:(1)找出滤波器系数中最大的绝对值数M;(2)以M为基准,对所有滤波系数进行归一化处理,即对所有系数除以M;(3)对所有滤波器系数乘以(2Q-1-1),并对处理后的系数取整形成整数系数;(4)将整数滤波器系数转换成二进制补码数据。图3为不同量化位宽情况下的滤波器幅频响应图。

由图3(a)中的归一化幅频图可知,滤波器系数量化位宽越小,量化后的滤波性能越差(当量化位宽为6 bit时,阻带衰减相比量化前减小了约6 dB),反之量化位宽越大,量化前后的滤波性能相差越小。当量化位宽超过一定值(本实例为12 bit)后,滤波性能几乎不再变化。不失一般性,下文以长度为61、量化位宽为12 bit的低通滤波器为例进行讨论。

3 基于增益的FIR滤波器系数量化方法

3.1 一般量化方法对系统性能的影响

根据前面讨论的滤波器量化方法,系数量化过程相当于滤波器增益扩大了(2Q-1-1)/M倍。从图3(b)中的未归一化幅频图可知,量化位宽越大,滤波器通带内的增益越大。当量化位宽为6 bit时,通带增益为54 dB,当量化位宽为12 bit时,增益为90 dB。

FPGA设计FIR滤波器,一般采用定点二进制数据进行运算。前面讨论系数量化对系统性能的影响时,实际有一个前提条件,即滤波运算采用全精度运算,滤波运算的结果保留全部有效数据位。当滤波器系数量化位宽为Q时,由于滤波器增益扩大了(2Q-1-1)/M倍(一般来说,M≤1),为保证全精度运算,保留全部有效滤波输出位宽,相对于滤波器输入信号而言,位宽将增加Qabit。其中

对于前面讨论的长度N=61,量化位宽Q=12的低通滤波器而言,M=0.062 1,(2Q-1-1)/M=32 963,则滤波输出位宽需增加Qa=16 bit。假设输入数据位宽为10 bit,则滤波器全精度输出位宽为26 bit。

3.2 基于增益的系数量化方法

根据前面的讨论,量化滤波器系数后,输出有效位宽所能表示信号的信噪比下降,是由于滤波输出信号达不到满量程状态。为此,优化滤波器系数量化方法,采用基于滤波器增益的方法对系数进行量化。结合前述的滤波器实例,具体步骤为:(1)对所有滤波器系数乘以=216=65 536,并对处理后的系数取整形成整数系数;(2)将整数滤波器系数转换成二进制补码数据。

经过改进的量化处理后,相当于对滤波增益直接增加了65 536倍(常规方法仅增加了32 963倍),滤波输出的数据幅值能够达到输出数据有效位宽所能表示的满量程值,实现了输出位宽一定的条件下,输出信号信噪比的最大化。经过这样的量化处理,系数的量化位宽为:

对于上文所讨论的低通滤波器,量化位宽需要13 bit。图4为常规量化方法和改进量化方法的滤波器系数(冲激响应)图,其中Qa=16。

从图4可以看出,在滤波输出位宽相同的条件下,改进的量化方法所产生的滤波器系数(冲激响应)幅值大于常规方法,相当于滤波器增益更大。同时也要注意到,改进的量化方法所需的滤波器系数位宽由12 bit增加到13 bit。也就是说,增加滤波器增益,是以增加系数量化位宽为代价的。

4 FPGA实现后的测试结果分析

接下来采用Xilinx的Spartan6系列FPGA器件XC6SLX25-FT256C为目标平台,调用ISE14.7工具中的FIR滤波器核,实现前文所讨论的低通滤波器(采样频率为32 MHz,过渡带为0.5 MHz~1.5 MHz,滤波器长度N=61)。仿真工具为ModelSim10.1,输入信号为2路单频信号的叠加。两路单频信号频率分别为0.22 MHz和2 MHz,功率比为1:1。输入位宽为10 bit,滤波器输出位宽为26(Qa=16)。图5、图6分别为常规量化方法和改进量化方法的滤波器ModelSim仿真波形图。

从图5、图6中可以看出,两种方法都能够有效滤除带外干扰信号(2 MHz单频信号),改进量化方法的滤波器输出信号幅度值(16,641,407)明显大于常规量化方法的幅度值(7,910,390),相当于增加了滤波增益,增加了滤波输出信号的信噪比。

5 结论

本文详细分析了滤波器系数量化方法对滤波性能的影响。在对常规系数量化方法的步骤、原理进行分析的基础上,针对滤波输出数据幅值达不到有效位宽满量程的现象,提出了基于滤波器增益的系数量化改进方法。MATLAB仿真及FPGA实现后的ModelSim仿真均表明,在滤波输出位宽相同的条件下,改进的量化方法可以有效提高滤波器增益,进而提高滤波输出信号的信噪比。需要注意的是,增加滤波器增益是以增加系数量化位宽、增加FPGA实现后的逻辑资源为代价的。

参考文献

[1] 高耀鸿.基于FPGA的FIR低通滤波器[D].长沙:湖南大学,2012.

[2] 朱效效,蔡俊,陆伟.基于优化DA算法滤波器的设计及其FPGA实现[J].电子技术应用,2015,41(2):59-60,64.

[3] 徐彦凯,双凯.提高定点精度的FPGA信号处理算法[J].计算机工程与科学,2012,34(9):197-200.

[4] 郭广浩,刘志哲,孟庆龙,等.多级并行流水FIR数字滤波器的设计与验证[J].现代电子技术,2015,38(1):69-72.

[5] 李凯勇.基于FPGA高效FIR滤波器设计[J].青海大学学报,2017,35(6):56-60.

[6] 张娜,李春祎.多相并行FIR滤波器的FPGA高速实现方法[J].无线电通信技术,2017,43(4):86-90.

[7] 周龙,王红玲,崔新莹,等.基于FPGA及分布式算法滤波器[J].电子设计工程,2017,25(23):139-142.

[8] 曹振吉,何敏.基于FPGA和Matlab的FIR数字滤波器[J].现代电子技术,2015,38(19):98-101.

作者信息:

杜 勇

(四川工商学院 电子信息工程学院,四川 成都611745)

c++ 向量化_一种新的FIR滤波器系数量化方法相关推荐

  1. fir fpga 不同截止频率_一种新的FIR滤波器系数量化方法

    相对于模拟滤波器,数字滤波器具有高精度.高可靠性.可编程改变滤波特性.便于集成等一系列优点,并且理论上可实现近似理想频率特性的滤波性能.经典的数字滤波器主要包括有限脉冲响应(Finite Impuls ...

  2. 一种新的高级抖动分离解析方法

    一种新的高级抖动分离解析方法 A new analytic approach for advanced jitter separation 抖动分量的分析是现代通信系统调试中一项越来越重要的任务.一方 ...

  3. python 回声程序_一种回声消除系统及回音消除方法与流程

    本发明涉及通信技术领域,具体涉及一种回声消除系统及回音消除方法. 背景技术: 回声消除器通常由滤波器和算法组成,根据具体应用和性能要求的不同可以有多种选择. 滤波器有FIR(有限长度冲激晌应)滤波器和 ...

  4. matlab优化函数 remez,基于Matlab的FIR滤波器的优化设计方法

    通过实例介绍了基于MATLAB的FIR滤波器的优化设计方法.3种结果比较发现,在同样阶数下,优化设计可以获得最佳的频率特性和衰耗特性. 数字滤波在数字信号处理中,占有重要的地位.数字滤波包括FIR和I ...

  5. FIR滤波器系数重载

    FIR滤波器系数重载 实验平台: Vivado2018.3 实验目标:对FIR IP核,通过重载滤波器系数,在线的配置滤波器系数,而不需要重新配置IP核生bit. 一.实现方式: 在coe文件中一次性 ...

  6. 命令行下一种新的加帐号的方法

    今天研究了一下用户控制面板文件nusrmgr.cpl,发现调用的是Shell.Users来加用户,它还同时调用了 wscript.shell.Shell.Application.Shell.Local ...

  7. dncnn图像去噪_一种基于DnCNNs改进的图像降噪方法与流程

    本发明涉及图像处理技术领域,具体涉及一种基于dncnns改进的图像降噪方法. 背景技术: 随着科技进步,新的图像技术在逐渐推广,在日常生活中人们对于图像的要求也越来越高,针对阴天或夜晚等弱光条件下拍摄 ...

  8. 机器人施教器的信息丢失_一种精准定位学习难度的施教方法及教育机器人与流程...

    本发明涉及智能机器人技术领域,尤其涉及一种精准定位学习难度的施教方法及教育机器人. 背景技术: 近年来国家对教育事业越发重视,随着教育教学形式的多样化,教育机器人也逐步走入人们的生活.教育机器人是以激 ...

  9. unity 陶瓷质感_一种基于Unity3D的虚拟陶瓷设计方法与流程

    本发明涉及虚拟现实领域,特别涉及一种基于Unity3D的虚拟陶瓷设计方法. 背景技术: 陶艺工艺制作环境要求严格:不仅在拉坯成型需要利用旋转机器,在烧制过程则需要窑炉锻造,如何将陶瓷制作工艺与虚拟现实 ...

  10. 服务器基线加固脚本_一种基于WebLogic的安全基线加固方法与流程

    本发明涉及一种安全基线加固方法,尤其涉及一种基于weblogic的安全基线加固方法. 背景技术: weblogic是一个基于javaee架构的中间件,用于开发.集成.部署和管理大型分布式web应用.网 ...

最新文章

  1. 硬盘知识大杂烩(四)
  2. JavaBean笔记
  3. 使用Solr 增加索引以及检索
  4. ORACLE TDE 透明数据加密技术
  5. 智能家居常用的十大应用场景
  6. 前端学习(3320):undefine和null 2
  7. 技术要求→物理安全→防盗窃和防破坏
  8. matlab中的g2(t)是什么,matlab实验1-8带答案,,
  9. Linux Watchdog Test Program
  10. 数学建模之相关性分析1
  11. navicat如何创建数据库及如何导入数据库文件【初学者适用】
  12. 永洪bi mysql连接配置_永洪BI 如果不同步数据是做的数据库直连吗?
  13. 商汤科技面试——实习面试案例总结
  14. asan c/c++内存检测
  15. 使用中文预训练模型 bert-wwm 获得字向量和词向量
  16. RMAN 下CROSSCHECK命令 详解
  17. sql 注入_商洛学院司徒荆_新浪博客
  18. 小飞升值记——(15)
  19. matlab编程实现自适应均值滤波和自适应中值滤波
  20. [附源码]计算机毕业设计springboot贷款申请审核管理系统论文

热门文章

  1. PDF文件编辑指南4:PDF文档加密和移除PDF文档密码方法
  2. 电脑系统安装后桌面图标隔开很宽怎么调?
  3. unity3D animator镜像播放
  4. Candence学习篇(5)使用Padstack Editor制作贴片焊盘和通孔焊盘
  5. smbd服务器-网络磁盘映射
  6. 2005高考作文题目汇总
  7. 局域网简易聊天服务器&客户端
  8. Base64加解密__完整版有解释
  9. Envoy 代理开源五周年,创始人 Matt Klein 亲述开源心路历程及经验教训
  10. java求4位会员卡号之和中奖,日常作业2018.12.25