一文读懂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

相关文章

一文详解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数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

一文详解kafka开启kerberos认证的完整步骤

《一文详解kafka开启kerberos认证的完整步骤》这篇文章主要为大家详细介绍了kafka开启kerberos认证的完整步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、kerberos安装部署二、准备机器三、Kerberos Server 安装1、配置krb5.con

一文详解Nginx的强缓存和协商缓存

《一文详解Nginx的强缓存和协商缓存》这篇文章主要为大家详细介绍了Nginx中强缓存和协商缓存的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、强缓存(Strong Cache)1. 定义2. 响应头3. Nginx 配置示例4. 行为5. 适用场景二、协商缓存(协

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

一文详解Java Condition的await和signal等待通知机制

《一文详解JavaCondition的await和signal等待通知机制》这篇文章主要为大家详细介绍了JavaCondition的await和signal等待通知机制的相关知识,文中的示例代码讲... 目录1. Condition的核心方法2. 使用场景与优势3. 使用流程与规范基本模板生产者-消费者示例

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo