之前已经提过了,IIR级数低,元器件少,成本低,但起不到线性相位的作用。而FIR滤波器由于没有反馈,比较不稳定,消耗资源比较多,但是却可以产生线性相位。
线性相位有什么用,请看这篇
然后我简单说一下FIR滤波器原理(图是搬来的),原理很简单,我们设计一个低通滤波器,就是用一个窗函数去截频谱,频域上就是信号和一个抽样函数卷积。

抽样函数是无限长的,但是离y轴越远衰减越厉害,我们计算机只能先对它进行截断。截断完傅里叶回去,窗函数就不是理想窗函数了。

但是我们不能直接使用截断的抽样函数进行卷积,我们对窗函数还是有要求的,比如截止频率,衰减速度啥的。根据不同的窗函数,我们就有了不同的方法。什么汉明窗、海宁窗啥的。

窗函数法设计的滤波器有如下结论:

1)旁瓣积分决定阻带和通带内的纹波;

2)主瓣积分决定过渡带的宽度。

3)通带的幅度取决于主、旁瓣积分。

瓣值抽样函数的一个个峰,主瓣就是最中间的。

clc;clear;
% 矩形窗,N=15
b = fir1(15,0.25*pi,'low',boxcar(16));
freqz(b,1,512);
title('矩形窗,N=15')
pause(3);
% 矩形窗,N=33
b = fir1(33,0.25*pi,'low',boxcar(34));
freqz(b,1,512);
title('矩形窗,N=33')
pause(3);% 汉宁窗,N=15
b = fir1(15,0.25*pi,'low',hanning(16));
freqz(b,1,512);
title('汉宁窗,N=15')
pause(3);
% 汉宁窗,N=33
b = fir1(33,0.25*pi,'low',hanning(34));
freqz(b,1,512);
title('汉宁窗,N=33')
pause(3);% 汉明窗,N=15
b = fir1(15,0.25*pi,'low',hamming(16));
freqz(b,1,512);
title('汉明窗,N=15')
pause(3);
% 汉明窗,N=33
b = fir1(33,0.25*pi,'low',hamming(34));
freqz(b,1,512);
title('汉明窗,N=33')
pause(3);% 布莱克曼窗,N=15
b = fir1(15,0.25*pi,'low',blackman(16));
freqz(b,1,512);
title('布莱克曼窗,N=15')
pause(3);
% 布莱克曼窗,N=33
b = fir1(33,0.25*pi,'low',blackman(34));
freqz(b,1,512);
title('布莱克曼窗,N=33')
pause(3);

窗函数对比:

矩形窗:矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣, 导致变换中带进了高频干扰和泄漏,甚至出现负频现象。频率识别精度最高,幅值识别精度最低,所以矩形窗不是一个理想的窗。

汉宁窗:主瓣加宽并降低,旁瓣则显著碱小,从减小泄漏观点岀发,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。它与矩形窗相比,泄漏、波动都碱小了,并且选择性也提高。

海明窗:与汉宁窗都是余弦窗,又称改进的升余弦窗,只是加权系数不同,使旁瓣达到更小。 但其旁瓣衰减速度比汉宁窗慢。

布莱克曼窗:二阶升余弦窗,主瓣宽,旁瓣比较低,但等效噪声带宽比汉宁窗大一点,波动却小一点。频率识别精度最低,但幅值识别 精度最高,有更好的选择性。

FIR滤波器设计(Matlab代码)相关推荐

  1. 四类线性相位 FIR滤波器设计 —— MATLAB源码全集

    目录 引言 1.FIR线性相位滤波器 2.Ⅰ型 FIR 滤波器 2.1.低通滤波器 2.2.带通滤波器

  2. 【滤波器设计】基于汉明窗,汉宁窗,布莱克曼窗 矩形窗设计低通FIR滤波器附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  3. 基于fpga的fir滤波器设计,通过matlab代码设计滤波器参数,最终通过fpga实现

    基于fpga的fir滤波器设计,通过matlab代码设计滤波器参数,最终通过fpga实现,modelsim仿真,最后在开发板上实现,两路adc采集的掺杂高频信号经过低通滤波器之后,由dac输出,由si ...

  4. FIR滤波器设计(包括Verilog HDL设计以及MATLAB设计)

    FIR滤波器设计 滤波器原理:滤波器就是对特定的频率或者特定频率以外的频率进行消除的电路,被广泛用于通信系统和信号处理系统中.从功能角度,数字滤波器对输入离散信号的数字代码进行运算处理,以达到滤除频带 ...

  5. 【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第36章       FIR滤波器的Matlab设计(含低通 ...

  6. matlab设计窄带滤波器,【安富莱DSP教程】第36章 FIR滤波器的Matlab设计

    第36章 FIR滤波器的Matlab设计 本章节讲解FIR滤波器的Matlab设计.主要是函数fir1和fir2的使用. 36.1 窗函数 36.2 fir1函数 36.2 fir2函数 36.4 总 ...

  7. matlab中fir1中的边界频率,FIR滤波器的MATLAB设计与实现.pdf

    FIR滤波器的MATLAB设计与实现 1.设计任务 1.用MATLAB软件实现FIR滤波器: 2.设计基于DSP 的FIR滤波器硬件框图: 3.了解用DSP实现FIR滤波器的关键问题: 4.完成必要的 ...

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

    滤波器 滤波器定义 "滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电.对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就 ...

  9. [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)

    [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计) ​ IIR滤波器主要设计方法先设计一个模拟低通滤波器,然后把它转化为形式上的数字滤波器.但对于FIR滤波器来说,设计方法的关键要求之一 ...

  10. fir 低通 matlab,MATLAB常用的FIR滤波器设计方法之窗函数法

    FIR滤波器很多工科出身的人都不会陌生,在我们的学习和工作中,也常常需要设计FIR滤波器.因为FIR滤波器有两个特点:滤波器是稳定的以及具有线性相位.FIR滤波器在信号处理相关领域当然也包括本人所在的 ...

最新文章

  1. Mac下导出chrome插件
  2. Intel汇编语言程序设计学习-第三章 汇编语言基础-中
  3. Deeplearning:windows多版本cuda安装、管理
  4. hdu 5266(线段树+LCA)
  5. C语言学习笔记--函数与指针
  6. ip找计算机名 linux,如何从IP地址中查找LAN中的计算机名称?
  7. linux for循环原理,linux for循环
  8. SAP HANA Cloud Connector图文全攻略
  9. WLC HA (for AP)?
  10. 基础的强化学习(RL)算法及代码详细demo
  11. Linux man命令的使用方法 man page 显示数字的意思
  12. Unity 给模型换材质
  13. ble学习笔记九----------ble协议栈之OSAL的运行机理
  14. 墨菲定律|马太效应|破窗理论|蝴蝶效应
  15. -moz、-ms、-webkit浏览器私有前缀详解,作用、出处
  16. ubuntu electron-rebuild 我的成功方法
  17. 解决非硬件问题导致的U盘总容量大幅减少
  18. SOLIDWORKS为好莱坞大片做出的贡献
  19. ARduino接KY-040电位编码器
  20. 安卓手机怎么设置禁止使用流量_安卓手机流量使用警告提醒关闭方法

热门文章

  1. 安卓 省电模式、低电耗(Doze)模式、应用待机(standby)模式、唤醒锁
  2. SAP中物料凭证和会计凭证有什么区别
  3. html实现美国队长盾牌
  4. c 语言 火车票退费计算 函数专题
  5. hexo搭建自己的博客并部署至免费的github服务器教程
  6. python操作word填表_#如何将现有的数据利用python 填入word的表格中?#
  7. iPhone4 解决 FolderEnhancer 过期 安全模式 的问题
  8. 华为鸿蒙vogtloop30pro价格,最万众瞩目鸿蒙和华为Mate40 Pro,华为Mate30跌至白菜价让路...
  9. 如何在服务器上使用Jupyter-简易版
  10. 男人最帅的42个瞬间!