文章目录

  • 语法
  • 说明
  • 示例
    • FIR 带通滤波器
    • FIR 高通滤波器
    • 多频带 FIR 滤波器
  • 输入参数
    • `n` - 滤波器阶数
    • `Wn` - 频率约束
    • `ftype` - 滤波器类型
    • `window` - 窗
    • `scaleopt` - 归一化选项
  • 输出参数
    • `b` - 滤波器系数
  • 算法
  • 参考
  • 扩展功能
    • C/C++ 代码生成
  • 另请参阅

fir1:基于窗函数法的 FIR 滤波器设计


语法

b = fir1(n,Wn)
b = fir1(n,Wn,ftype)

b = fir1(___,window)
b = fir1(___,scaleopt)


说明

b = fir1(n,Wn) 使用 Hamming 窗设计具有线性相位的 n 阶低通,带通或多频带 FIR 滤波器。滤波器的类型取决于 Wn 的元素数。举例

b = fir1(n,Wn,ftype) 根据 ftype 的值和 Wn 的元素数,设计一个低通,高通,带通,带阻或多频带滤波器。举例

b = fir1(___,window) 使用 window 中指定的向量和上述语法中的任何参数来设计滤波器。举例

b = fir1(___,scaleopt) 额外指定滤波器的幅度响应是否已归一化。

注意

使用 fir2 设计具有任意频率响应的加窗滤波器。


示例


FIR 带通滤波器

设计一个通带为 0.35 π⩽ω⩽\pi\leqslant \omega \leqslantπ⩽ω⩽ 0.65π\piπ rad / sample 的 48 阶 FIR 带通滤波器。将其幅度和相位响应可视化。

b = fir1(48,[0.35 0.65]);
freqz(b,1,512)


FIR 高通滤波器

加载 chirp.mat。 该文件包含一个信号 y,其大部分功率都高于 Fs/4 或奈奎斯特频率的一半。 采样率为 8192 Hz。

设计一个 34 阶 FIR 高通滤波器,以衰减低于 Fs/4 的信号分量。使用 0.48 的截止频率和 30 dB 纹波的切比雪夫窗。

load chirpt = (0:length(y)-1)/Fs;bhi = fir1(34,0.48,'high',chebwin(35,30));
freqz(bhi,1)


对信号进行滤波。显示原始和高通滤波后的信号。两图都使用相同的 y 轴比例。

outhi = filter(bhi,1,y);subplot(2,1,1)
plot(t,y)
title('Original Signal')
ys = ylim;subplot(2,1,2)
plot(t,outhi)
title('Highpass Filtered Signal')
xlabel('Time (s)')
ylim(ys)


设计具有相同规格的低通滤波器。对信号进行滤波,并将结果与原始信号进行比较。两图都使用相同的 y 轴比例。

blo = fir1(34,0.48,chebwin(35,30));outlo = filter(blo,1,y);subplot(2,1,1)
plot(t,y)
title('Original Signal')
ys = ylim;subplot(2,1,2)
plot(t,outlo)
title('Lowpass Filtered Signal')
xlabel('Time (s)')
ylim(ys)


多频带 FIR 滤波器

设计一个46阶FIR滤波器,该滤波器可以衰减低于 0.4π\piπ rad / sample 和介于 0.6π\piπ 和 0.9π\piπrad / sample之间的归一化频率。将滤波器称为 bM

ord = 46;low = 0.4;
bnd = [0.6 0.9];bM = fir1(ord,[low bnd]);

重新设计 bM,交换其通带和阻带。将新的滤波器称为 bW。 使用 fvtool 显示滤波器的频率响应。

bW = fir1(ord,[low bnd],'DC-1');hfvt = fvtool(bM,1,bW,1);
legend(hfvt,'bM','bW')


使用 Hann 窗重新设计 bM。 (DC-0 是可选的。)比较 Hamming 窗和 Hann 窗设计的幅度响应。

hM = fir1(ord,[low bnd],'DC-0',hann(ord+1));hfvt = fvtool(bM,1,hM,1);
legend(hfvt,'Hamming','Hann')


使用 Tukey 窗重新设计 bw。 比较 Hamming 窗和 Tukey 窗设计的幅度响应。

tW = fir1(ord,[low bnd],'DC-1',tukeywin(ord+1));hfvt = fvtool(bW,1,tW,1);
legend(hfvt,'Hamming','Tukey')


输入参数


n - 滤波器阶数

滤波器阶数,指定为整数标量

对于高通和带阻滤波器,fir1 始终使用偶数阶滤波器。此时阶数必须是偶数,因为奇数阶对称 FIR 滤波器在奈奎斯特频率下必须具有零增益。如果为高通或带阻滤波器指定奇数 n,则 fir1n 增加 1。

数据类型double


Wn - 频率约束

频率约束,指定为标量二元向量多元向量

Wn 的所有元素必须严格大于 0 且严格小于 1,其中 1 对应于奈奎斯特频率:0 < Wn <1。奈奎斯特频率是采样率的一半或 π\piπ rad / sample。

  • 如果 Wn 是标量,则 fir1 设计一个截止频率为 Wn 的低通或高通滤波器。截止频率是滤波器的归一化增益为 –6 dB 的频率。

  • 如果 Wn 是二素向量 [w1 w2],其中 w1 < w2,则 fir1 设计一个具有较低截止频率 w1 和较高截止频率 w2 的带通或带阻滤波器。

  • 如果 Wn 是多元素向量 [w1 w2 ... wn],其中 w1 < w2 < …< wn,则 fir1 返回频带为 0 < ω\omegaω < w1w1 < ω\omegaω < w2,…,wn < ω\omegaω < 1 的 n 阶多频带滤波器。

数据类型double


ftype - 滤波器类型

滤波器类型,指定为以下之一:

  • 'low' 指定一个截止频率为 Wn 的低通滤波器。'low' 是标量 Wn 的默认值。

  • ‘high’ 指定一个截止频率 为 Wn 的高通滤波器。

  • 'bandpass' 指定一个带通滤波器,如果 Wn 为二元向量。 当 Wn 具有两个元素时,默认设置为 'bandpass'

  • 'stop' 指定一个带阻滤波器,如果 Wn 为二元向量。

  • 'DC-0' 指定第一频带为阻带的多频带滤波器。 当 Wn 具有两个以上元素时,默认设置为 'DC-0'

  • 'DC-1' 指定第一通带为阻带的多频带滤波器。


window - 窗

窗,指定为向量。 窗向量必须具有 n + 1 个元素。 如果未指定窗,则 fir1 将使用 Hamming 窗口。 有关可用窗的列表,请参见加窗法。

如果尝试设计奇数阶的高通或带阻滤波器,则 fir1 不会自动增加窗的长度。

举例kaiser(n+1,0.5) 指定一个用于 n 阶滤波器的成型因子为 0.5 的 Kaiser 窗。

举例hamming(n+1) 等价于未指定窗。

数据类型double


scaleopt - 归一化选项

归一化选项,指定为 'scale''noscale',默认为 'scale'

  • 'scale' 对系数进行归一化,以使通带中心处的滤波器幅度响应为 1(0 dB)。
  • 'noscale' 不对系数进行归一化。

输出参数


b - 滤波器系数

滤波器系数,以长度为 n + 1行向量返回。这些系数以 Z 变换变量 zzz 的降幂排序:
B(z)=\bm{B}(z)=B(z)= b(1) + b(2)zzz + … + b(n+1)z−nz^{-n}z−n


算法

fir1 使用最小二乘估计来计算滤波器系数,然后加窗来平滑脉冲响应。


参考

[1] Digital Signal Processing Committee of the IEEE Acoustics, Speech, and Signal Processing Society, eds. Programs for Digital Signal Processing. New York: IEEE Press, 1979, Algorithm 5.2.


扩展功能


C/C++ 代码生成

使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。


另请参阅

cfirpm | designfilt | filter | fir2 | fircls | fircls1 | firls | firpm | freqz | hamming | kaiserord


在 R2006a 之前推出


原文参考:https://ww2.mathworks.cn/help/signal/ref/fir1.html

MATLAB函数——fir1相关推荐

  1. MATLAB函数fir1

    fir1 基于窗函数的fir滤波器设计: 主要形式: b = fir1(n,Wn) b = fir1(n,Wn,ftype) b = fir1(___,window) b = fir1(___,sca ...

  2. Matlab函数fir1(n,Wn)中的归一化频率的含义

    Wn是一个归一化频率,在滤波器设计中是用fs/2进行归一. 在fir1滤波器设计时采用的是归一化频率.实际采样频率为fs,实际的截止频率为fc,设归一化截止频率为fcm,fcm=fc/(fs/2).

  3. 数据反正模拟 matlab,[2018年最新整理]信号处理MATLAB函数.doc

    [2018年最新整理]信号处理MATLAB函数 函数说明波形产生和绘图chirp产生扫描频率余弦diric产生Dirichlet或周期sinc信号gauspuls产生高斯调制正弦脉冲rulstran产 ...

  4. matlab的fir1截止频率的设置

    matlab的fir1函数,除了滤波器阶数外,还需要配置截止频率,怎么设置呢? 比如低通滤波器,根据采用频率fs,希望通过和截止的频率f1.f2,那么该系数就应该在(f1/(fs/2),f2/(fs/ ...

  5. MATLAB 函数速查手册目录

      第 1 章 MATLAB 操作基础   第 2 章 矩阵及其基本运算   第 3 章 数值计算函数 第 4 章 符号运算函数 第 5 章 概率统计 第 6 章 绘图与图形处理 第 7 章 MATL ...

  6. matlab eigs 虚数,MATLAB函数速查手册

    内容简介 MATLAB是目前流行的理论与工程仿真软件之一.该软件自产生以来,就以其独有的特点和明显的优势吸引了各行各业的工作者.<MATLAB函数速查手册>较全面地介绍了MATLAB的函数 ...

  7. 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍

    1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...

  8. 【转】matlab函数_连通区域

    转载自einyboy的博文Matlab的regionprops详解 1. matlab函数bwareaopen──删除小面积对象 格式:BW2 = bwareaopen(BW,P,conn) 作用:删 ...

  9. matlab 开 闭 代码,C++中的MATLAB函数〔闭锁〕

    很抱歉恢复了一个老问题,但我目前正在研究一个开源C++库,它正好回答了这个问题: KeyCpp 是一个开源的C++库,它提供了Matlab或八度音阶的语法,用于一些有用的数值方法和一些绘图功能.目前有 ...

  10. 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用

    粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...

最新文章

  1. mysql 1061原因_MySQL死锁问题分析及解决方法实例详解(转)
  2. Intel不争气,7nm再延后两年将彻底落败
  3. [转]WEB开发者必备的7个JavaScript函数
  4. 代码创建 WPF 旋转动画
  5. 用原生JavaScript实现无缝轮播
  6. java ee cdi_Java EE CDI依赖注入(@Inject)教程
  7. mongodb 监控权限_运维监控产品分析篇
  8. STM32程序占用的内存容量计算
  9. c语言第一章节测试,计算机二级C语言教程章节测试:字符串
  10. mysql 杀掉连接_批量杀死MySQL连接的几种方法
  11. springmvc 同时匹配.do,.action
  12. 箱线图怎么看_K线的48种不同类型全解(建议收藏),教你怎么看懂K线图
  13. css绘制向左三角形_CSS绘制三角形—border法
  14. ArcGIS 10.5 及 ArcGIS Server下载安装破解环境配置
  15. 微信小程序 通过百度API接口实现汉译英翻译
  16. [转]AVALONDOCK 2.0入门指南第一部分
  17. c语言void delay是什么意思,delay是什么意思(单片机中delay)
  18. 两个计算机怎么共享一台打印机共享,两台电脑如何共享打印机 多台电脑共享一台打印机设置方法【详细教程】...
  19. win7正在配置请勿关闭计算机,win7系统开机屏幕显示“正在配置Windows Update,请勿关机”的解决方法...
  20. 文献解读 | 科学家发现代谢调控促进肿瘤转移新机制

热门文章

  1. clang-format代码格式化风格选项详细说明
  2. Covetrus宣布首席执行官和董事长过渡
  3. 两年3亿用户,淘特跑出中国电商“加速度”
  4. 编程语言的分类,以及网络瓶颈效应
  5. springboot笔记整理(超详细,手把手教程!)
  6. 敏感词过滤及反垃圾文本的相关知识(欢迎收藏)
  7. JAVA java学习(46)——————如何将Eclipse设置为中文版
  8. (statistic)你所不知道的P值--对统计学的批判
  9. 如何做html链接,怎么做超链接,制作超链接的详细操作步骤
  10. 运筹帷幄DB2——从Oracle运维转型