一文读懂IIR和FIR

2023-11-05 00:10
文章标签 一文 fir 读懂 iir

本文主要是介绍一文读懂IIR和FIR,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一文读懂IIR和FIR

  • IIR和FIR的来源
    • IIR滤波器
      • 1. 巴特沃斯(Butterworth)
        • 优点
        • 缺点
      • 2. 切比雪夫I型(Chebyshev I)
        • 优点
        • 缺点
      • 3. 切比雪夫II型(Chebyshev II, Inverse Chebyshev I)
        • 优点
        • 缺点
      • 4. 椭圆型(Elliptical)
        • 优点
        • 缺点
    • FIR滤波器

数字信号处理最常见的面试题,请简述FIR和IIR的区别。百度一下,网上能搜到很多答案。比如

  1. FIR能实现线性相位响应,IIR不能实现线性相位。
  2. 实现同一量级的幅度响应FIR需要比IIR更高的阶数,更高的阶数意味着更多运算,更多CPU消耗和延迟。
  3. FIR因为没有极点,在位宽有限系统,即定点系统中更稳定。IIR为了实现更加极限的幅度响应,需要更多的位宽。

这些区别应该还能写上三四条。本文将从IIR和FIR的来源来解释出现上述区别的原因

IIR和FIR的来源

数字信号处理书本上学习的IIR和FIR滤波器。

  1. IIR滤波器是模拟滤波器的一种数字实现,其来源是模拟滤波器。
  2. FIR滤波器本身就是数字滤波器。

IIR滤波器

常见的模拟滤波器有以下4种类型。

1. 巴特沃斯(Butterworth)

优点
  • 通带和阻带没有波纹(ripple)
  • 相位失真适中
缺点
  • 通带到阻带的滚降(roll-off)最平缓,即过渡带不陡峭

2. 切比雪夫I型(Chebyshev I)

优点
  • 过渡带滚降特性比巴特沃斯滤波器要陡峭
缺点
  • 通带有波纹(Ripple),阻带平坦(无波纹)
  • 群时延特性较差,即相位失真比巴特沃斯严重

3. 切比雪夫II型(Chebyshev II, Inverse Chebyshev I)

优点
  • 过渡带滚降特性介乎于巴特沃斯滤波器与切比雪夫I型之间
缺点
  • 通带平坦(无波纹),阻带有波纹
  • 群时延特性较差,即相位失真比巴特沃斯严重

4. 椭圆型(Elliptical)

优点
  • 过渡带滚降特性是(这四种之中)最陡峭的
缺点
  • 通带和阻带都有波纹

以下图中显示了以上四种低通模拟滤波器在相同设计指标时的幅频响应,注意这些滤波器在通带、阻带波纹以及过渡带陡峭度方面的差异对比。
在这里插入图片描述

使用matlab设计IIR滤波器的时候,一般需要选择是基于哪一种模拟滤波器的类型。所以说IIR滤波器设计本质上还是基于模拟滤波器的数字化实现。
在这里插入图片描述

FIR滤波器

这篇关于一文读懂IIR和FIR的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346113

相关文章

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

一文详解JavaScript中的fetch方法

《一文详解JavaScript中的fetch方法》fetch函数是一个用于在JavaScript中执行HTTP请求的现代API,它提供了一种更简洁、更强大的方式来处理网络请求,:本文主要介绍Jav... 目录前言什么是 fetch 方法基本语法简单的 GET 请求示例代码解释发送 POST 请求示例代码解释

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

一文带你深入了解Python中的GeneratorExit异常处理

《一文带你深入了解Python中的GeneratorExit异常处理》GeneratorExit是Python内置的异常,当生成器或协程被强制关闭时,Python解释器会向其发送这个异常,下面我们来看... 目录GeneratorExit:协程世界的死亡通知书什么是GeneratorExit实际中的问题案例

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新