学习随笔之IIR滤波器与FIR滤波器

IIR滤波器(Infinite Impulse Response Digital Filter无限冲击响应数字滤波器)与FIR滤波器(Finite Impulse Response Digital Filter有限冲击响应数字滤波器),是数字信号处理系统中最常用到的元件,二者z域表达式和差分方程可分别为:

对比FIR和IIR可以明显看出,FIR没有极点,因此FIR是无条件稳定的,而IIR则需要通过设计使极点位置必须在单位圆内,否则系统将不稳定。另外,IIR可用较低的阶数获得较好的滤波效果,但是以相位的非线性为代价的。相反,FIR滤波器却可以得到严格的线性相位,然而对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5~10倍。

FIR与IIR以及滑动平均的一种简单设计方法如下代码所示:(5阶butterworth型IIR滤波器,15阶hamming窗FIR滤波器,以及平滑常数为10的滑动平均滤波器)

%% 原始信号

fs = 1000; % 采样频率

t = 0:1/fs:2-1/fs; % 时间

singal0 = sin(2*pi*1*t); % 未加噪声的信号

SNR = 15; % 信号信噪比

singal = awgn(singal0,SNR); % 在加入高斯白噪声

%% IIR滤波 (butterworth滤波器)

fstop = 20; % 低通截止频率

wn = fstop/(fs/2); % 归一化截止频率

N_IIR = 5; % IIR阶数

[b_iir,a_iir] = butter(N_IIR,wn) % IIR滤波器参数

singal_iir = filter(b_iir,a_iir,singal); %IIR滤波

%% FIR滤波 (hamming窗)

N_FIR = 15; % FIR阶数

b_fir = fir1(N_IIR,wn) % FIR滤波器参数

singal_fir = filter(b_fir,1,singal); %FIR滤波

%% 滑动平均 (平滑常数M=10;)

wsize = 10; % 平滑常数

b_avg = ones(1,wsize)/wsize; % 权值

singal_avg = filter(b_avg,1,singal); %滑动平均滤波

%% 输出比较

figure

subplot(2,2,1)

plot(t,singal)

title('\fontname{宋体}\fontsize{12}原始信号');

xlabel('\fontname{Arial}\fontsize{12}t');

ylabel('\fontname{Arial}\fontsize{12}singal');

grid on;

subplot(2,2,2)

plot(t,singal_iir)

title('\fontname{宋体}\fontsize{12}5阶IIR滤波');

xlabel('\fontname{Arial}\fontsize{12}t');

ylabel('\fontname{Arial}\fontsize{12}singal(iir)');

grid on;

subplot(2,2,3)

plot(t,singal_fir)

title('\fontname{宋体}\fontsize{12}15阶FIR滤波');

xlabel('\fontname{Arial}\fontsize{12}t');

ylabel('\fontname{Arial}\fontsize{12}singal(fir)');

grid on;

subplot(2,2,4)

plot(t,singal_avg)

title('\fontname{宋体}\fontsize{12}滑动平均(常数10)');

xlabel('\fontname{Arial}\fontsize{12}t');

ylabel('\fontname{Arial}\fontsize{12}singal(avg)');

grid on;

滤波效果对比:

以上只是最简单的滤波器设计方法,对幅频特性相频特性有更严格的要求则还需通过matlab的fdatool工具进行设计,设计完后可通过edit->convert to single section转换为[b,a]形式滤波参数,并且可通过TRargets-> Generate C header直接生成C语言头文件供调用。

(早期随笔文件补档)

butter滤波器是iir吗_学习随笔之IIR滤波器与FIR滤波器相关推荐

  1. 【滤波器】基于高通+低通+带通+带阻FIR滤波器设计含Matlab源码

    1 简介 本文利用kaiser窗​实现了FIR带通数字滤波器的设计,设计结果符合FIR数字滤波器技术指标要求. 2 部分代码 %------------------------------------ ...

  2. FPGA学习记录(5)<低通带通FIR滤波器FPGA实现>

    目录 Matlab仿真低通的FIR滤波器BLACKMAN窗并使用FPGA实现 (1)FIR&IIR介绍 (2)FIR的FPGA实现与matlab仿真(FIR&BLACKMAN窗& ...

  3. fir fpga 不同截止频率_一种新的FIR滤波器系数量化方法

    相对于模拟滤波器,数字滤波器具有高精度.高可靠性.可编程改变滤波特性.便于集成等一系列优点,并且理论上可实现近似理想频率特性的滤波性能.经典的数字滤波器主要包括有限脉冲响应(Finite Impuls ...

  4. FIR滤波器与IIR滤波器

    FIR和IIR滤波器的一个主要区别:FIR是线性相位,IIR为非线性相位(双线性变换法),对于非线性相位会造成的影响,可以这样考虑:对于输入的不同频率分量,造成的相位差与频率不成正比,则输出时不同频率 ...

  5. 详解FIR滤波器和IIR滤波器的区别

    数字滤波器广泛应用于硬件电路设计,一般分为FIR滤波器和IIR滤波器.下面说一下它的具体区别 一.FIR滤波器 定义: FIR滤波器是有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统 ...

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

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

  7. 【 FPGA 】FIR滤波器开篇之传统抽头延迟线FIR滤波器实现介绍

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

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

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

  9. 基于xilinx-IP的FIR滤波器多通道实现

    前言 作为一个有一定工作经验(划水好多年)的FPGA工程师,很多模块都已经学习过或者使用过,但是如果让我重新实现,感觉又是一脸懵.因此,这是我发文档的原因.对于自己来说,这是一个总结归纳的过程,对读者 ...

最新文章

  1. scrapy_redis使用
  2. java win8 mac地址_Win8怎么查看MAC地址_Win8查看电脑MAC地址方法-192路由网
  3. windows server backup
  4. 程序员的灯下黑:能认识自己吗?
  5. Silverlight中服务通信方式的选择(WCF、Data Service、Ria Service)
  6. django异常日志_5分钟教你学会Django系统错误监控
  7. 史上最快消息内核——ZeroMQ
  8. iOS开发 - App程序启动原理
  9. bootstrap带有下拉按钮的输入框_关于bootstrap--表单(下拉select、输入框input、文本域textare复选框checkbox和单选按钮radio)...
  10. 如果还不懂如何使用 Consumer 接口,就来看这篇!
  11. 阶段3 1.Mybatis_10.JNDI扩展知识_3 补充-测试JNDI数据源的使用以及使用细节
  12. 开源中国开源世界高峰论坛
  13. 计算机c盘丢失,电脑c盘数据丢失怎么恢复图文教程
  14. 关于Outline Effect 高亮插件不能生效-爻览SDK-MR混合现实开发日志
  15. C#工作总结(一):Fleck的WebSocket使用
  16. linux下文件的total是啥,linux中,ls -l命令显示的total的含义。
  17. 完整责任链模式——回旋链
  18. io包下 文件类 字节流 字符流 缓冲流 转换流 序列化流 打印流
  19. 1005--HBase操作实战(HBase Shell命令行模式)
  20. MATLAB中常用到的符号汇总(持续更新)

热门文章

  1. STC15 串口一 接收 发送 基本程序
  2. 解决Windows 10 家庭中文版没有组策略编辑器的问题
  3. 成语学习记录20180820-26
  4. 爬虫学习笔记 -- 实战某电影网(lxml库版)
  5. 【论文简述及翻译】MVSNet:Depth Inference for Unstructured Multi-view Stereo(ECCV 2018)
  6. Masm for MAC安装教程+实例分析
  7. 树莓派3 Android Pie 编译适配
  8. 华为认证--云计算HCIA
  9. IP地址规划设计实验
  10. php实现兼容Unicode文字的字符串大小写转换strtolower()和strtoupper()