根据滤波器的冲激响应宽度,数字滤波器可以分为无限长冲激响应IIR和有限长冲激响应FIR两种类型。在实际应用中,FIR更普遍,下面主要以FIR滤波器为主。
一个N阶fir可以用持续时间有限的冲激响应来定义:

系数{h_i}被称为滤波器的抽头权重(tap weights)。对输入时间序列{x[k]},N阶滤波器的响应可以用离散线性卷积来表示:

FIR数字滤波器为“抽头延迟线”结构,该结构由加法器与乘法器结构构成。传给乘法器的操作数是FIR系数,也被叫作“抽头权重”。
FIR数字滤波器中包含许多的由乘法和累加构成的卷积运算,最直观的方法是用可以时分复用的乘累加器来实现。这种实现方法占用资源较少,但处理速度较慢,所以只能适用于结构简单、对处理速度要求不高的系统。若采用具有流水结构的并行滤波器,可提高信号处理的速度,从而满足实时性要求。如果用大量的乘法器模块并行以实现所谓的并行结构,则会造成大量资源的占用。为了解决这一问题,出现了很多优化实现算法的提案。在国内外的滤波器研究中,相关的乘法运算方式有:并行乘法运算、位串行乘法运算和基于分布式算法的乘法运算。
并行乘法运算虽然有速度快的优点,但是占用的硬件资源极大。乘法器的位数会随滤波器的阶数的增加而增加,从而硬件规模将变得十分庞大。
位串行乘法器的实现主要是通过分解乘法运算、最终用加法器来完成乘法的功能,也即其实质是无乘法操作的乘法器。
分布式算法的主要特点是将固定系数的乘累加运算结果存放于表中,在执行运算钱,先查表并读出数据,最后利用硬件电路执行的简单的加法运算,从而较大程度地提高运算速度和插入流水。
常用的数字滤波器设计方法主要有窗函数法、频率采样法、等波纹逼近法以及任意相应设计法等。
实际给出的FIR数字滤波器的实际指标,通常是对幅度响应而提出来的,例如通带截止频率ω_c、阻带起始频率ω_e、通带最大衰减d_p、阻带最小衰减d_s等。
设计FIR滤波器所需要提供的参数如下:
滤波器的类型有低通滤波器、高通滤波器、带通滤波器、带阻滤波器。
滤波器的采样频率(sampling frequency)。
所希望的滤波器的权值的数目。
阻带衰减dB(Stopband Attenuation)。
通带纹波dB(Passband Ripple)。
过度带带宽Hz(Transition Bandwidth)。
FIR滤波器的技术指标及参数的含义
FIR 滤波器常见的技术指标及参数如下所述。
中心频率: 一般取f_0=(f_1+f_2)/2, f_1为带通滤波器左相下降1dB 的频点,f_2为带阻滤波器右相下降 3dB 频点;
截止频率: 指通带频率与阻带频率的分界频点;
通带带宽:指允许通过的频带宽度,一般通带带宽 BWxdB=(f_1-f_2),其中f_1为下降 xdB 的左频点,f_2为下降 xdB 对应的右边频点,并且把中心频率f_0处插入损耗作为基准。往往 x=3,1,0.5,这样 BW3dB 、BW1dB 、BW0.5dB就表示为滤波器通带带宽;
插入损耗: 即滤波器对电路中原有信号造成的衰耗,这种衰耗就可以通过中心频率、截止频率来表述;
纹波: 指在截止频率1dB 或 3dB 带宽内,插入损耗随频率变化波动的最大幅度;
带内波动: 在通带带宽内,随着频率的变化插入损耗发生的变化量;
带内驻波比: 指在通带内,滤波器与传输的匹配程度。最佳匹配为VSWR=1:1 ,如果 VSWR>1就会发生失配。在实际应用中,通常要求一个滤波器 VSWR<1.5:1 的带宽小于 BW3dB ,滤波器阶数和插入 损耗都会对BW3dB所占的比例的大小产生影响;
回波损耗: 指端口信号的输入功率与反射功率的比值,通常用分贝数 dB来表示,其运算公式为|20〖Log〗_10^ρ|,其中 ρ 表示电压反射系数。如果反射功率为零,那么就表示回波损耗为无穷大;
阻带抑制度: 表征了滤波器选择性能的好坏。如果阻带抑制度越小,越不利于抑制外界的干扰。主要有两种描述方法:第一种为信号在f_s处衰减量As-IL;还可以表征滤波器幅频响应逼近理想矩形的程度,即矩形系数 KxdB , KxdB = BWxdB/ BW3dB ,( x =40dB 、30dB、20dBΛ )。滤波器阶数越少,精度就会越低,k 偏离理想值 1 更远,滤波器的性能也就越差;
延迟: 指滤波器处理输入信号所用的时间,延迟大小为 Tb=df/dv,也就是通过传输相位函数对角频率求导运算;
带内相位线性度: 指在通带内传输时,由滤波器引起的输入信号相位失真的程度。带内相位线性度越好,输入信号传输时越不容易失真;
通带截频: 为过渡带与通带结界处的频率的大小,可用表达式表达为f_p=w_p/(2p);
阻带截频: 为过渡带与阻带结界处的频率的大小,可用表达式表达为f_r=w_r/(2p);
转折频率: 当信号功率衰减到一半时的频率的大小,可用表达式表达为 f_c=w_c/(2p);,实际应用中,通常把f_c 当作通带截频或阻带截频;
固有频率 :指的是当电路中处于理想状态下即没有损耗时,滤波器谐振频率的大小,可用表达式表达为f_0=w_0/(2p);
增益与衰耗: 在通带内,滤波器的增益并不是固定的,但是他们都与 w有关,一般来说:求低通滤波器的通带增益k_p时 w=0 ;求高通滤波器通带增益时 w→∞;而中心频率处的增益可以看作带通滤波器的增益。通带增益变化量∆k_p为通带内各点增益波动大小,∆k_p的单位为 dB ;
灵敏度: 构成滤波电路的元件的参数值的变化会引起滤波器性能的变化。例如用 S_xy 来表示滤波器某一性能指标随某一元件参数值 x 变化的灵敏度,那么: S_xy=(dy/y)/(dx/x)。该灵敏度与测量仪器或电路系统灵敏度不是一个概念,该灵敏度越小,标志着电路容错能力越强,稳定性也越高;
群时延函数: 用来表征输入信号通过滤波器滤波后相位失真程度,通常用d∮▒〖(w)/dw〗作为群时延函数。当d∮▒〖(w)/dw〗越接近常数时,信号相位失真越不容易失真。
阻尼系数与品质因数: 阻尼系数是指滤波器对输入信号的阻抗力的大小,是用来表示滤波器中能量衰耗的一项重要指标。品质因数为阻尼系数的倒数,表征了带阻或带通滤波器频率选择特性的好坏,可表示为Q=w_0/∆ w_0,其中 ∆w 取带阻或带通滤波器的 3dB 带宽,w_0为中心频率,通常固有频率与中心频率相等;
FIR滤波器设计方法
窗函数设计法
数字信号处理就是在有限区间使用所观测到的信号序列进行各种各样的处理。截取持续信号中部分信号的工作,可以看作是通过一个窗口釆集所看到的信号序列,这种为截取信号所使用的窗口称为窗函数。它的关键是从时域出发,用窗函数对理想滤波器冲激响应序列进行截取,以寻求适当的冲激响应序列逼近理想滤波器的冲激响应,从而实现所设计的滤波器的频率响应H(e^jw)在频域上逼近理想滤波器的频率响应H_d (e^jw)的目的。
随着信号处理的发展,迄今提出的各种窗函数已有几十种。通常设计FIR滤波器常用的窗函数有:矩形窗函数、三角(Bartlett)函数、汉宁(Hanning)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数以及凯泽(Kaiser)窗函数。
矩形窗是一种最为简单的窗函数,从阻带衰减角度来看,它的性能最差;三角形窗又可称为巴特利特窗(Bartlett Window);汉宁窗的形式是一个凸起的余弦,又可称余弦平方窗或者升余弦窗;海明窗对升余弦窗加以改进,又称改进的升余弦窗,可以得到旁瓣更小的效果,能量更加集中在主瓣中,主瓣的能量约占99.963%,第一旁瓣的峰值比主瓣小40dB,但主瓣宽度与汉宁窗相同。除一些断点外,其他与汉宁窗类似;布莱克曼窗为了能够进一步抑制旁瓣,除了与前两种窗类似,还包含了二次谐波形式,因此也称为二阶升余弦窗。
凯泽窗是一类适用性较强的窗,公式如下:

其中,I_0 ()是第一类零阶贝塞尔函数,是一个可以自由选取的参数,它可同时调整主瓣宽度和旁瓣电平。一般情况下,选择4<β<9,这就相当于旁瓣幅度和主瓣幅度的比值从3.1%变到0.047%(即-30dB到-67dB)。
下表中列出了几种代表性窗函数的基本参数值。

被截短以后所得序列的频域分辨率由窗函数的主瓣宽度决定,而信号频谱分量中较小的成分有可能被边瓣峰值堙没。因此,不难理解,对窗函数总的要求是,为获得较窄的过渡带,频谱的主瓣应尽量窄;要使频域的能量能主要集中在主瓣内,边瓣峰值应尽量小;同时要增加阻带衰减,边瓣幅度应有较快的下降速度。通常上述几点很难同时满足。选用主瓣宽度较窄的矩形窗时,可以得到较陆的过渡带,但它较大的边瓣峰值却会导致阻带和通带的较大的波动;选用具有较小旁瓣幅度的窗函数时,虽然可得到相对均勻的幅度响应特性和较小的阻带波动,但却会导致过渡带加宽。在实际选用时,保证主瓣宽度满足一定要求的前提后,再考虑旁瓣幅度尽量小,从而换取旁瓣波动的减少,即对这些指标进行一定程度的折中。
频率采样法
窗函数法设计FIR时,首先将要设计的滤波器的频率响应函数H_d (e^jw)按照傅氏级数展开,傅里叶级数的系数即为所要设计滤波器的单位冲击响应序列h(n),或称为滤波器系数,在此基础上变成计算出滤波器对任意输入序列x(n)的响应y(n),整个设计过程可以简单概括为用一个可以实现的频率响应函数去近似或者逼近原系统要求的频率响应函数。与窗函数法相比较,频率采样法是从频域出发对理想滤波器进行逼近。这种方法是将所要设计的滤波器的频率响应函数H_d (e^jw)在频域进行抽样,然后再通过逆傅里叶变换来得到其单位冲击响应序列。
等同纹波逼近法
前面两种FIR数字滤波器设计方法设计出的滤波器的频率特性都是在不同意义上对所给理想频率特性的逼近,而从数值逼近的理论来看,对某个函数的逼近一般有三种方法:①插值法;②最小平方逼近法;③最佳一致逼近法。频率抽样法可以看作为插值法,在抽样点上能保证与理想频率特性的一致,而在非抽样点上频率响应特性将是插值函数的线性组合,导致了通带和阻带的边缘不易精确确定。窗函数法是一种最小平方逼近法,这种设计方法可以使整个区间的误差最小化,并不能保证局部每个位置误差都最小。为了减小在间断点处出现的过冲和欠冲现象,采用了加窗口的方法。最佳一致逼近法,着眼于在所需要的区间内任一位置的误差函数都均勻一致,并且通过合理地选择参数,使误差函数最小。由于采用这种方法设计的滤波器,其频率响应在通带和阻带内具有等纹波性质,这种设计方法又称等同纹波逼近法.
等波纹逼近法主要的优点在于通带、阻带的逼近误差是等波纹的,即逼近误差被均匀地分到整个通带和阻带,而且可以控制通带与阻带的波纹比例。这两个特点能使滤波器在阶数相同的条件下获得更好的频率特性。一般来说,滤波器的通带波纹可以稍大,但对阻带衰减的要求却往往很严格。采用等波纹逼近法可以保证在通带波纹不过大的条件下,获得较大的阻带衰减。
FIR数字滤波器的核心运算就是乘法和累加运算。乘法作为一种基本的运算,大量运用在数字信号处理和数字通信的各种系统的实现算法中。由于乘法运算的使用极其频繁,乘法运算的速度往往影响或决定了整个系统的速度。因此如果可以实现快速乘法,则整个系统的处理速度可以大大提高。
FIR数字滤波器系数的提取
MATLAB有专用的数字信号处理工具,不仅可以进行数字信号处理的计算机辅助设计,还可以进行最优化设计。MATLAB的Filter Design中的Fdatool(Filter Design &Analysis Tool)是一个功能强大的数字滤波器分析设计工具,它涵盖了多种滤波器的设计方法。只需要设定想要的参数,它会自动完成滤波器系数的计算工作,通过该工具包,不仅可以得到抽头系数的数值,此外还可以得到滤波器的频率响应、相位、群延迟、脉冲冲击响应图等,所有的信息一览俱全。
在MATLAB主命令窗口内输入“fdatool”,即可以打开FDATool界面。
选择Design Filter,FDATool界面左下侧排列了一组工具按钮,其功能分别如下:
滤波器转换(TransForm Filter)、设置量化参数(Set Quantization Parameters)、实现模型(Realize Model)、导入滤波器(Import Filter)、多速率滤波器(Multirate Filter)、零极点编辑器(Pole-zero Editor)、设计滤波器(Design Filter)。
选择菜单“Analysis”→“Magnitude Response”,启动幅频响应分析,x轴为频率,y轴为幅度值(单位为dB);选择菜单“Analysis”→“Phase Response”, 启动相频响应分析。
FDATool计算出的值是一个有符号的小数,如果建立的FIR滤波器模型需要一个整数作为滤波器系数,就必须进行量化,并对得到的系数进行归一化。在FDATool进行量化参数设置时,量化参数有三种方式:双精度、单精度和定点。
选择菜单“File”→“Export”命令,即可导出滤波器系数,FDATool也支持直接导出COE文件的滤波器系数。
个人公众号:FPGA打工人

FIR滤波器学习设计笔记相关推荐

  1. FPGA数字信号处理(二)并行FIR滤波器Verilog设计

    该篇是FPGA数字信号处理的第二篇,选题为DSP系统中极其常用的FIR滤波器.本文将简单介绍FIR滤波器的原理,详细介绍使用Verilog HDL设计并行FIR滤波器的流程和方法.接下来几篇会介绍串行 ...

  2. FPGA数字信号处理(三)串行FIR滤波器Verilog设计

    该篇是FPGA数字信号处理的第三篇,选题为DSP系统中极其常用的FIR滤波器.本文将在上一篇"FPGA数字信号处理(二)并行FIR滤波器Verilog设计" https://blo ...

  3. FIR滤波器窗口设计法和频率采样设计法

    一. FIR滤波器窗口设计法 知识点:各种窗函数的特性:窗口设计法基本思路 海宁窗就是正弦窗 一般选用窗函数是正弦波的海宁窗和海明窗 例子:设计一个100Hz的低通滤波器,fs = 500 选择海宁窗 ...

  4. 数字信号处理(FIR滤波器的设计与原理及基础知识)

    FIR滤波器的设计与原理及基础知识 有限长单位脉冲响应(FIR)滤波器的设计方法 线性相位FIR滤波器的特点: 幅度特性: 窗函数设计法 窗口函数对理想特性的影响: 梳状滤波器 有限长单位脉冲响应(F ...

  5. 基于MATLAB的FIR滤波器的设计及应用(图像去噪)

    基于MATLAB的FIR滤波器的设计及应用(图像去噪) 一.实现功能 1.学会MATLAB的使用,掌握MATLAB的程序设计方法: 2.掌握数字信号处理的基本概念.基本理论和基本方法: 3. 在MAT ...

  6. 基于Matlab App Designer的语音信号分析与处理(二):IIR和FIR滤波器的设计,语音信号的滤波

    接上文:https://blog.csdn.net/weixin_53877178/article/details/122470759 目录 一.课题的任务 二.内容.步骤和要求 (1)语音信号的采集 ...

  7. fir滤波器课程设计matlab,Matlab课程设计---FIR数字滤波器

    Matlab课程设计---FIR数字滤波器 课程设计任务书课程设计任务书 学生姓名学生姓名 xxxxxx 专业班级专业班级 信息信息 xxxxxx 班班 指导教师指导教师 xxxxxx 工作单位工作单 ...

  8. matlab 滤波窗函数,FIR滤波器窗函数设计法详细步骤以及Matlab代码

    采用窗函数法设计理想低通,高通滤波器,参考北京交通大学陈后金主编的[数字信号处理]5.2节 窗函数法设计线性相位FIR数字滤波器P164,和P188. 设计步骤如下: 1) 确定滤波器类型,不同的FI ...

  9. 基于matlab数字基带,基于MATLAB的数字基带传输的 FIR滤波器的设计

    O 引言目前,数字基带传输已广泛地应用于利用对称电缆构成的近程数据通信系统之中.随着数字通信技术的发展,基带传输方式不仅可以用于低速数据传输,而且也可以用于高速数据传输.然而数字基带传输也同样不可避免 ...

最新文章

  1. SpringBoot实现万能文件在线预览,已开源,真香!!!
  2. 京东网络开放之路——自研交换机探索与实践
  3. Android属性动画 PropertyValuesHolder
  4. php post请求跳转,学习猿地-php如何实现post跳转
  5. ARC078F - Mole and Abandoned Mine(状压DP)
  6. linux制作一键恢复,Linux/Centos Mondo 一键部署、镜像恢复,快速部署
  7. Hive笔记之JOIN的左外链接和右外链接
  8. Josephus问题的Java解决方法
  9. Bzoj4542--Hnoi2016大数
  10. leetcode 761. Special Binary String
  11. Notepad2替换windows自带记事本
  12. visio设置图片默认大小_visio怎么调整图片大小、间距-visio调整图片大小、间距的方法 - 河东软件园...
  13. Windows10开启电脑卓越性能模式,运行速度提升10%,CUP利用率达到50%
  14. Java解析接口返回的xml数据
  15. office2013来了
  16. IT人才缺口百万,高校不行培训机构上
  17. Android QQ空间(Apad)项目总结(三)---应用UI框架的搭建!!!
  18. Linux命令五---搜索查找命令---find-grep-which-whereis等---网络通信命令--ifconfig-netstat等
  19. java推荐书单 什么值得读 (2021年1月8日更新)
  20. STM32F4+CubeMX+Hal库下使能FPU

热门文章

  1. 低频小信号放大电路(一):用于低噪声OP放大器的RIAA补偿放大器
  2. 一次排查线上线程池数量过高的报警经历
  3. IP欺骗(XFF头等)
  4. APIGuides-UserInterface-Settings-翻译一
  5. ArcGIS发展历史及体系架构
  6. 求圆的面积(╭(╯^╰)╮)
  7. Rosbag格式在线解压缩
  8. Bladed V4.3安装(PoJie)流程
  9. 漂亮实用的后台网站大全
  10. java-net-php-python-jspm招警考试模拟题库计算机毕业设计程序