设计FIR滤波器

  • 1. 线性相位FIR滤波器
    • 1.1 相位与特点
    • 1.2 幅度函数的特点
    • 1.3 FIR滤波器的零点
  • 2. 窗函数设计法
    • 2.1 窗函数设计原理
    • 2.2 窗函数的设计思路
    • 2.3 窗函数的选择与常用的窗函数
      • 2.4 窗函数法的设计步骤

数字滤波器(一)–IIR与FIR的基本结构与MATLAB实现
数字滤波器(二)–最小相位延时系统和全通系统
数字滤波器(三)–模拟滤波器的设计
数字滤波器(四)–模拟滤波器转化为数字滤波器
数字滤波器(五)–设计IIR滤波器

1. 线性相位FIR滤波器

1.1 相位与特点

FIR滤波器的单位冲激响应h(n)为有限长序列,滤波器的一般形式为:
y(n)=∑k=0N−1h(k)x(n−k)y(n)=\sum \limits_{k=0}^{N-1}h(k)x(n-k)y(n)=k=0∑N−1​h(k)x(n−k)
其系统函数一般形式为:
H(z)=∑k=0N−1h(k)z−nH(z) = \sum \limits_{k=0}^{N-1}h(k)z^{-n}H(z)=k=0∑N−1​h(k)z−n
在有限z平面内,有N-1个零点,在原点z=0处有N-1阶极点
系统的频率响应为:
H(ejw)=∑k=0N−1h(n)e−jwn=H(w)ejθ(w)H(e^{jw})=\sum \limits_{k=0}^{N-1}h(n)e^{-jwn}=H(w)e^{j\theta(w)}H(ejw)=k=0∑N−1​h(n)e−jwn=H(w)ejθ(w)
其中θ(w)\theta(w)θ(w)是相位特性,是频率w的线性函数。相位特性对w的导数就是系统的群延时。

1.2 幅度函数的特点

研究线性相位FIR滤波器幅度函数的特点时,有两种分类方法:

  1. 根据h(n)的奇、偶对称性分类
  2. 根据N的长度为奇、偶分类

下表为对上述的分类方法的总结:

1.3 FIR滤波器的零点

FIR滤波器的零点是以共轭对存在的,如果存在零点z1z_1z1​,那么肯定存在零点z1∗z_1^*z1∗​,1z1\frac{1}{z_1}z1​1​,(1z1)∗(\frac{1}{z_1})^*(z1​1​)∗。假设z1=rejθz_1=re^{j\theta}z1​=rejθ, k为常数,根据r和θ\thetaθ的取值,零点可分为以下四种情况:

2. 窗函数设计法

2.1 窗函数设计原理

理想滤波器的单位冲激响应hd(n)h_d(n)hd​(n)应该是无限长的非因果序列,这在实际生活中无法实现,只能用有限长的序列h(n)h(n)h(n)去近似无限长的hd(n)h_d(n)hd​(n)。最简单的方法就是直接截取hd(n)h_d(n)hd​(n)的一部分作为h(n)h(n)h(n),这可以通过hd(n)h_d(n)hd​(n)与窗函数相乘的形式做到:
h(n)=hd(n)w(n)h(n)=h_d(n)w(n)h(n)=hd​(n)w(n)

2.2 窗函数的设计思路

Hd(eiw)−−−>hd(n)−−−>hd(n)w(n)−−−>h(n)−−−>H(ejw)H_d(e^{iw})--->h_d(n)--->h_d(n)w(n)--->h(n)--->H(e^{jw})Hd​(eiw)−−−>hd​(n)−−−>hd​(n)w(n)−−−>h(n)−−−>H(ejw)
以理想的低通滤波器为例:

hd(n)h_d(n)hd​(n)是一个无限长的以α\alphaα为中心的偶对称非因果序列。

假设此处窗函数为矩形函数:

可得


可以看到,时域加窗之后,时域阶段,频域出现了频谱泄露的现象

加窗处理对理想频率响应的影响:

  1. 加窗改变了理想频率响应的边沿特性,形成了过渡带,过渡带的宽度等于窗函数的主瓣宽度:Δw=4πN\Delta w=\frac{4\pi}{N}Δw=N4π​
  2. 过渡带两侧产生了肩峰和余振,这些取决于窗函数的旁瓣,旁瓣多则震荡多,旁瓣相对大则肩缝强度大,与N无关
  3. 改变N,只能改变窗函数主瓣的宽度,不能改变窗函数主瓣和旁瓣的比例关系,也就是说,无法改变肩峰的相对值。增大N,其最大肩峰总是8.95%,称为吉布斯现象

肩峰的大小决定了滤波器通带内的平稳程度和阻带内的衰减速度,对滤波器的性能有很大影响,因此,选择不同的窗函数,可以得到不同性能的滤波器。

2.3 窗函数的选择与常用的窗函数

窗函数的选取要尽量满足两个要求:

  1. 窗函数的主瓣要尽可能窄,以获得较陡的过渡带
  2. 相对于主瓣幅度,旁瓣要尽可能小,是的能量尽量集中在主瓣中这样就可以尽量减少肩峰和余振,以提高阻带的衰减和通带的平稳性。

然后这两者是矛盾的,一般总是通过增加主瓣宽度来换取对旁瓣的抑制。

常用的窗函数:



2.4 窗函数法的设计步骤

数字滤波器(六)--设计FIR滤波器相关推荐

  1. 数字信号处理实验4:用窗口法设计FIR滤波器

    杭电_数字信号处理课程设计_实验4 一.实验目的 了解一个实际滤波器设计过程,加深掌握用窗口法设计FIR滤波器的原理和窗函数对滤波器性能的影响. 二.实验要求及内容 实验题目: 1.用改进余弦窗设计一 ...

  2. matlab凯塞窗设计,转载:用MATLAB设计FIR滤波器的方法解析

    介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法.FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的 ...

  3. 切比雪夫逼近法设计FIR滤波器

    切比雪夫逼近法设计FIR滤波器 概念 切比雪夫逼近法,是在所需要的区间[a,b]内,使误差函数E(x)=|p(x)-f(x)|较均匀一致,并且通过合理选择p(x),使E(x)的最大值En达到最小. 切 ...

  4. fir fpga 不同截止频率_用MATLAB设计FIR滤波器的方法

    用MATLAB设计FIR滤波器的方法 摘  要 介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法.FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计 ...

  5. matlab 滤波窗函数,Matlab窗函数设计FIR滤波器

    一.设计目的 1.熟悉FIR滤波器设计的基本方法. 2.掌握用窗函数设计FIR滤波器的基本原理和方法,熟悉MATLAB语言. 3.熟悉线性相位FIR滤波器的幅频特性和相位特性. 4.了解各种不同窗函数 ...

  6. matlab 设计出滤波器使用,用MATLAB设计FIR滤波器的方法解析

    介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法.FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的 ...

  7. 用matlab设计fir高阶滤波器,用matlab设计fir滤波器的三种方法.doc

    用matlab设计fir滤波器的三种方法.doc 用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法摘要介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法程序设计法.FDATO ...

  8. matlab fir滤波器程序,使用MATLAB设计FIR滤波器

    1.      采用fir1函数设计,fir1函数可以设计低通.带通.高通.带阻等多种类型的具有严格线性相位特性的FIR滤波器.语法形式: b = fir1(n, wn) b = fir1(n, wn ...

  9. Vivado经典案例:使用Simulink设计FIR滤波器

    今天给大侠带来Vivado经典案例:使用Simulink设计FIR滤波器,话不多说,上货. FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波 ...

最新文章

  1. 秒懂5G!通俗易懂外行也能看明白
  2. java robot 控制 不用用户 界面_编写一个基于Java Robot类的屏幕捕获工具
  3. SpringBoot系列十:SpringBoot整合Redis
  4. android studio jni so,Android studio JNI 制做SO文件,在其余项目中调用
  5. mysql的gobye_Mysql學習(一)添加一個新的用戶並用golang操作Mysql
  6. c语言static知识点,C语言知识点集锦
  7. Druid手动创建连接的坑
  8. 微型计算机原理与接口技术第六版课后答案,微型计算机原理与接口技术(第6版)...
  9. Croe文件在线预览
  10. 数独基本规则_数独游戏规则?
  11. MIPS,程序的CPI,时钟周期计算(主频的计算)
  12. 计算机磁盘怎么清理,电脑磁盘已满怎么清理_电脑磁盘不足怎么清理
  13. 【网络流量识别技术之初级入门篇】
  14. echarts+DataV的用法
  15. MySQL技能树学习体验及期望
  16. unity 3D物体添加 点击事件
  17. win、linux、unix查看系统主机名
  18. 全年营收预增40%,奈雪的茶背后的喜与忧
  19. 95后能拯救结婚行业吗?《2018美团点评结婚行业蓝皮书》发布
  20. Vue + Matomo 实现访问流量统计

热门文章

  1. 非线编辑软件 linux,Flowblade 2.0 发布,非线性开源Linux视频编辑器
  2. 信安教程第二版-第6章认证技术原理与应用
  3. 查看本地服务器MYSQL的端口号
  4. shell [] [[]]的区别(转)
  5. bugku——普通的二维码(进制转换)
  6. lc 115. Distinct Subsequences
  7. Java基础知识盘点(二)- 集合篇
  8. macos中xcode使用opencv,错误总结
  9. 非常干货之Python资源大全
  10. 经纬度距离,修改系统时间,读取ini文件