FIR滤波器设计(Matlab代码)
之前已经提过了,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代码)相关推荐
- 四类线性相位 FIR滤波器设计 —— MATLAB源码全集
目录 引言 1.FIR线性相位滤波器 2.Ⅰ型 FIR 滤波器 2.1.低通滤波器 2.2.带通滤波器
- 【滤波器设计】基于汉明窗,汉宁窗,布莱克曼窗 矩形窗设计低通FIR滤波器附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 基于fpga的fir滤波器设计,通过matlab代码设计滤波器参数,最终通过fpga实现
基于fpga的fir滤波器设计,通过matlab代码设计滤波器参数,最终通过fpga实现,modelsim仿真,最后在开发板上实现,两路adc采集的掺杂高频信号经过低通滤波器之后,由dac输出,由si ...
- FIR滤波器设计(包括Verilog HDL设计以及MATLAB设计)
FIR滤波器设计 滤波器原理:滤波器就是对特定的频率或者特定频率以外的频率进行消除的电路,被广泛用于通信系统和信号处理系统中.从功能角度,数字滤波器对输入离散信号的数字代码进行运算处理,以达到滤除频带 ...
- 【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第36章 FIR滤波器的Matlab设计(含低通 ...
- matlab设计窄带滤波器,【安富莱DSP教程】第36章 FIR滤波器的Matlab设计
第36章 FIR滤波器的Matlab设计 本章节讲解FIR滤波器的Matlab设计.主要是函数fir1和fir2的使用. 36.1 窗函数 36.2 fir1函数 36.2 fir2函数 36.4 总 ...
- matlab中fir1中的边界频率,FIR滤波器的MATLAB设计与实现.pdf
FIR滤波器的MATLAB设计与实现 1.设计任务 1.用MATLAB软件实现FIR滤波器: 2.设计基于DSP 的FIR滤波器硬件框图: 3.了解用DSP实现FIR滤波器的关键问题: 4.完成必要的 ...
- matlab编程设计fir滤波器,用MATLAB设计FIR滤波器
滤波器 滤波器定义 "滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电.对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就 ...
- [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)
[Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计) IIR滤波器主要设计方法先设计一个模拟低通滤波器,然后把它转化为形式上的数字滤波器.但对于FIR滤波器来说,设计方法的关键要求之一 ...
- fir 低通 matlab,MATLAB常用的FIR滤波器设计方法之窗函数法
FIR滤波器很多工科出身的人都不会陌生,在我们的学习和工作中,也常常需要设计FIR滤波器.因为FIR滤波器有两个特点:滤波器是稳定的以及具有线性相位.FIR滤波器在信号处理相关领域当然也包括本人所在的 ...
最新文章
- Mac下导出chrome插件
- Intel汇编语言程序设计学习-第三章 汇编语言基础-中
- Deeplearning:windows多版本cuda安装、管理
- hdu 5266(线段树+LCA)
- C语言学习笔记--函数与指针
- ip找计算机名 linux,如何从IP地址中查找LAN中的计算机名称?
- linux for循环原理,linux for循环
- SAP HANA Cloud Connector图文全攻略
- WLC HA (for AP)?
- 基础的强化学习(RL)算法及代码详细demo
- Linux man命令的使用方法 man page 显示数字的意思
- Unity 给模型换材质
- ble学习笔记九----------ble协议栈之OSAL的运行机理
- 墨菲定律|马太效应|破窗理论|蝴蝶效应
- -moz、-ms、-webkit浏览器私有前缀详解,作用、出处
- ubuntu electron-rebuild 我的成功方法
- 解决非硬件问题导致的U盘总容量大幅减少
- SOLIDWORKS为好莱坞大片做出的贡献
- ARduino接KY-040电位编码器
- 安卓手机怎么设置禁止使用流量_安卓手机流量使用警告提醒关闭方法
热门文章
- 安卓 省电模式、低电耗(Doze)模式、应用待机(standby)模式、唤醒锁
- SAP中物料凭证和会计凭证有什么区别
- html实现美国队长盾牌
- c 语言 火车票退费计算 函数专题
- hexo搭建自己的博客并部署至免费的github服务器教程
- python操作word填表_#如何将现有的数据利用python 填入word的表格中?#
- iPhone4 解决 FolderEnhancer 过期 安全模式 的问题
- 华为鸿蒙vogtloop30pro价格,最万众瞩目鸿蒙和华为Mate40 Pro,华为Mate30跌至白菜价让路...
- 如何在服务器上使用Jupyter-简易版
- 男人最帅的42个瞬间!