IIR滤波器的设计与实现(内含设计IIR滤波器的高效方法)

写在前面:初学者学习这部分内容,要直接上手写代码可能会感到比较困难,我这里推荐一种高效快速的设计IIR,FIR滤波器的方法——MATLAB工具箱:filterDesigner。打开的方法很简单,就是在命令行键入:filterDesigner,就可以打开了。打开以后,界面是这样的:

直接输入设计的参数,想要的类型就可以很快的设计出滤波器了。点击“文件”,还可以生成MATLAB代码。

还有一个很值得介绍的是:MATLAB FTVTool(滤波器可视化工具)

示例:(可视化工具会打卡下面这个窗口)

b = firls(80,[0 0.11 0.19 1],[1 1 0 0],[1 100]); % Design an FIR filter
hd = dfilt.dffir(b); % Create the direct-form FIR filter.
set(hd,'Arithmetic','fixed');  % Quantize filter using 16-bit
% fvtool(b,hd);      % Compare the fixed-point filter with reference
h1 = copy(hd);       % Copy hd to h1
set(h1,'CoeffWordLength',12); % Use 12 bits for coefficients
fvtool(hd, h1);      % Compare 12-bit & 16-bit filters
  • (笔记正文)

  • 背景知识

    • 理想滤波器的特性,实际滤波器的妥协

      • 滤波:去除信号中不想要的成分或者增强所需成分

      • 理想与实际的妥协——容许有一定的误差:1.通带可能有波纹;2.阻带可能有非零增益;3.通带和阻带之间可能有过渡带。

    • FIR vs IIR

      • FIR:可实现任意幅度和相位响应、可实现线性相位但通常需要较大的阶数𝑀。

      • IIR:基于模拟滤波器设计而转换得到;通常只能实现频率选择性滤波但通常只需较小的阶数M

  • IIR数字滤波器的设计

    • 基于模拟滤波器的设计

      • 模拟滤波器的4种就经典类型:

        • 通带阻带都单调的巴特沃斯

        • 通带等波纹,阻带单调的切比雪夫I型(过渡带比巴特沃斯窄)

        • 阻带等波纹,通带单调的切比雪夫II型(过渡带比巴特沃斯窄)

        • 通带阻带都等波纹的椭圆滤波器(过渡带最窄)

      • IIR数字滤波器设计流程:

        • 预畸变:将关键的频率指标由数字域的𝜔转换为模拟域的Ω

        • 频率转换:若设计高通、带通或带阻,可由原型模拟低通

        • 滤波器𝐻LP(𝑠)通过频率转换得到

        • 低通设计:设计出原型模拟低通滤波器𝐻LP(𝑠)

        • 双线性变换:从模拟𝑠域映射到数字𝑧域

        • 验证:验证所得𝐻(𝑧)的性能

      • 模拟原型低通滤波器:以以巴特沃兹滤波器为例(省略推导过程)

        • 由4个参数作为滤波器指标(或者是通带衰减,阻带衰减rs,rp)

        • 子主题 2

      • 模拟𝑠域的频率变换:从低通到高通、带通、带阻

        • 低通——>高通

        • 低通——>带通

        • 低通——>带阻

      • 双线性变换:从模拟𝑠域到数字𝑧域

        • 目的:从模拟滤波器𝐻(𝑠)映射到数字滤波器𝐻(𝑧)

        • 使用双线性变换前,需对指定频率𝜔 进行预畸变至Ω = 2 tan( 𝜔/2)

    • IIR滤波器设计案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/313768.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio安装MFC开发组件

MFC由于比较古老了,Visual Studio默认没有这个开发组件。最近由于一些原因,需要使用这个库,这就需要另外安装。 参考了网上的一些资料,根据实际使用,其实很多步骤不是必须的。 https://zhuanlan.zhihu.com/p/68117276…

TypeScript 装饰器

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:TypeScript 装饰器 目录 一、是什么 二、使用方式 类装饰 方法/属性装饰 参数装饰 访问器…

Objective-C网络数据捕获:使用MWFeedParser库下载Stack Overflow示例

概述 Objective-C开发中,网络数据捕获是一项常见而关键的任务,特别是在处理像RSS源这样的实时网络数据流时。MWFeedParser库作为一个优秀的解析工具,提供了简洁而强大的解决方案。本文将深入介绍如何利用MWFeedParser库,以高效、…

深度学习系列64:数字人wav2lip详解

1. 整体流程 第一步,加载视频/图片和音频/tts。用melspectrogram将wav文件拆分成mel_chunks。 第二步,调用face_detect模型,给出人脸检测结果(可以改造成从文件中读取),包装成4个数组batch:img…

ExcelVBA把当前工作表导出为PDF文档

我们先问问Kimi Excel导出为PDF的方法有多种,以下是一些常见的方法: 1 使用Excel软件的内置功能: 打开Excel文件,点击“文件”菜单。 选择“另存为”,在“保存类型”中选择“PDF”。 设置保存路径和文件名&#xff…

transformer 最简单学习3, 训练文本数据输入的形式

1、输入数据中,源数据和目标数据的定义 def get_batch(source,i):用于获取每个批数据合理大小的源数据和目标数据参数source 是通过batchfy 得到的划分batch个 ,的所有数据,并且转置列表示i第几个batchbptt 15 #超参数,一次输入多少个ba…

GPU深度学习环境搭建:Win10+CUDA 11.7+Pytorch1.13.1+Anaconda3+python3.10.9

1. 查看显卡驱动及对应cuda版本关系 1.1 显卡驱动和cuda版本信息查看方法 在命令行中输入【nvidia-smi】可以当前显卡驱动版本和cuda版本。 根据显示,显卡驱动版本为:Driver Version: 516.59,CUDA 的版本为:CUDA Version 11.7。 此处我们可以根据下面的表1 显卡驱动和c…

iText生成PDF文件

导语: 本文基于 iText7 :7.1.16 生成。 官方文档链接:iText 从版本入口可进入到下面页面 一、引言 常见生成PDF文件的有两种方法,一是先生成 word文档,然后将word转换成PDF文件;另一种则是直接生成PDF文件…

改变 centos yum源 repo

centos 使用自带的 repo 源 速度慢,可以改为国内的,需要改两个地方 centos7.repo CentOS-Base.repo 首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载对应版本repo文件…

NameNode锁细粒度优化在B站的实践

1. 背景 随着业务的高速发展,针对HDFS元数据的访问请求量呈指数级上升。在之前的工作中,我们已经通过引入HDFS Federation和Router机制实现NameNode的平行扩容,在一定程度上满足了元数据的扩容需求;也通过引入Observer NameNode读…

Quarto Dashboards 教程 2:Dashboard Layout

「写在前面」 学习一个软件最好的方法就是啃它的官方文档。本着自己学习、分享他人的态度,分享官方文档的中文教程。软件可能随时更新,建议配合官方文档一起阅读。推荐先按顺序阅读往期内容: 1.quarto 教程 1:Hello, Quarto 2.qu…

C语言扫雷游戏完整实现(上)

文章目录 前言一、新建好头文件和源文件二、实现游戏菜单选择功能三、定义游戏函数四、初始化棋盘五、 打印棋盘函数六、布置雷函数七、玩家排雷菜单八、标记功能的菜单九、标记功能菜单的实现总结 前言 C语言从新建文件到游戏菜单,游戏函数,初始化棋盘…

【C语言】深入解析选择排序算法

一、算法原理二、算法性能分析三、C语言实现示例四、总结 一、算法原理 选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是不断地选择剩余元素中的最小(或最大)元素,放到已排序的序列的末尾&#xff…

普乐蛙VR航天航空体验馆VR双人旋转座椅元宇宙VR飞船

多长假来袭!!想为门店寻找更多新鲜有趣的吸粉体验?想丰富景区体验?别着急,小编为你准备了一款爆款设备——时光穿梭机,720无死角旋转!!吸睛、刺激体验,将亲子、闺蜜、情侣…

微信小程序酒店选择日期和入住人数(有效果图)

效果图 app.vue onLaunch:function(options){this.defaultcache()}defaultcache(){// 入住信息缓存var arr this.getDateTime();var ReserVation {reservType:0,//1 人数 2日期InCheckin:{},//入离日期peopleArr:[{title:成人,num:2},{title:儿童,num:0},{title:宝子,num:1…

宁盾LDAP统一用户认证与单点登录:构建高效安全的企业身份认证

在信息化时代,企业面临着众多的应用系统和数据资源,如何有效地管理和保护这些资源,确保信息安全和高效利用,成为了企业信息化建设的核心问题。LDAP统一用户认证和单点登录(SSO)作为一种高效、安全的身份验证…

全开源小狐狸Ai系统 小狐狸ai付费创作系统 ChatGPT智能机器人2.7.6免授权版

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 测试环境:Linux系统CentOS7.6、宝塔、PHP7.4、MySQL5.6,根目录public,伪静态thinkPHP,开启ssl证书 具有文章改写、广告营销文案、编程…

一个java项目中,如何使用sse协议,构造一个chatgpt的流式对话接口

前言 如何注册chatGPT,怎么和它交互,本文就不讲了;因为网上教程一大堆,而且你要使用的话,通常会再包一个算法服务,用来做一些数据训练和过滤处理之类的,业务服务基本不会直接与原生chatGPT交互。…

Git操作与异常处理

文章目录 常用操作1、代码拉取2、代码提交3、暂存区状态4、提交代码5、推送远程仓库 异常处理【1】报错信息:Cannot pull into a repository with state: MERGING【2】报错信息:You have not concluded your merge (MERGE_HEAD exists)【3】报错信息&…

BGP的基本概念和工作原理

AS的由来 l Autonomous System 自治系统,为了便于管理规模不断扩大的网络,将网络划分为不同的AS l 不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号 l IANA机构负责AS号的分发 AS之…