数字信号处理用脉冲响应不变法和双线性变换法设计巴特沃斯滤波器MATLAB实现——实例

news2024/11/14 10:51:59

文章目录

  • 符号含义
  • 例题
  • 脉冲响应不变法
  • 双线性变换法
  • 画图
  • 完整代码

符号含义

在这里插入图片描述

例题

在这里插入图片描述

脉冲响应不变法

clear
close all
clc

fs=1000;%采样频率
fc=200;%通带截止频率
fr=300;%阻带截止频率
T=0.001; %采样周期


%%%%%%%脉冲响应不变法
wp1=2*pi*fc;%通带截止频率
wr1=2*pi*fr;%阻带截止频率

[N1,wn1]=buttord(wp1,wr1,1,25,'s'); %[滤波器的阶数,截止频率]=buttord(通带截止频率,阻带截止频率,通带波纹,阻带衰减,滤波器类型s-带阻)
[B1,A1]=butter(N1,wn1,'s'); %[传递函数系数B1是分子的 A1是分母的]=butter(滤波器的阶数,截止频率,滤波器类型s-带阻)
[num1,den1]=impinvar(B1,A1,fs); %利用脉冲响应不变法将模拟滤波器转数字滤波器[数字滤波器传递函数num1/den1]=impinvar(模拟的分子系数B1,模拟的分母系数A1,采样频率)
[h1,w]=freqz(num1,den1); %[频率响应,角频率]=freqz(数字滤波器传递函数num1/den1)

双线性变换法

双线性变换法要对通带截止频率和阻带截止频率做一个预畸变处理

Ω = 2 T tan ⁡ Ω 1 T 2 = 2 T tan ⁡ 2 π f T 2 \Omega=\frac{2}{T} \tan \frac{\Omega_1 T}{2}=\frac{2}{T} \tan \frac{2 \pi f T}{2} Ω=T2tan2Ω1T=T2tan22πfT

%%%%%%%双线性变换法
wp2=2*fs*tan(2*pi*fc/(2*fs)); %做预畸变处理后的通带截止频率
wr2=2*fs*tan(2*pi*fr/(2*fs)); %做预畸变处理后的阻带截止频率
[N2,wn2]=buttord(wp2,wr2,1,25,'s'); %[滤波器的阶数,截止频率]=buttord(通带截止频率,阻带截止频率,通带波纹,阻带衰减,滤波器类型s-带阻)
[B2,A2]=butter(N2,wn2,'s'); %[传递函数系数B2是分子的 A2是分母的]=butter(滤波器的阶数,截止频率,滤波器类型s-带阻)
[num2,den2]=bilinear(B2,A2,fs); %利用双线性的方法将模拟滤波器转数字滤波器[数字滤波器传递函数num2/den2]=impinvar(模拟的分子系数B2,模拟的分母系数A2,采样频率)
[h2,w]=freqz(num2,den2); %[频率响应,角频率]=freqz(数字滤波器传递函数num2/den2)
f=w/(2*pi)*fs; %将角频率转换为频率

画图

plot(f,20*log10(abs(h1)),'-.',f,20*log10(abs(h2)),'-'); %画脉冲响应不变法和双线性变换法的图
axis([0,500,-80,10]);% 设置当前坐标轴x轴和y轴的限制范围
grid; %切换改变主网格线的可见性
xlabel('频率/Hz');ylabel('幅度/dB');title('巴特沃思数字低通滤波器'); 
legend('脉冲响应不变法','双线性变换法');

在这里插入图片描述

完整代码

clear
close all
clc

fs=1000;%采样频率
fc=200;%通带截止频率
fr=300;%阻带截止频率
T=0.001; %采样周期


%%%%%%%脉冲响应不变法
wp1=2*pi*fc;%通带截止频率
wr1=2*pi*fr;%阻带截止频率

[N1,wn1]=buttord(wp1,wr1,1,25,'s'); %[滤波器的阶数,截止频率]=buttord(通带截止频率,阻带截止频率,通带波纹,阻带衰减,滤波器类型s-带阻)
[B1,A1]=butter(N1,wn1,'s'); %[传递函数系数B1是分子的 A1是分母的]=butter(滤波器的阶数,截止频率,滤波器类型s-带阻)
[num1,den1]=impinvar(B1,A1,fs); %利用脉冲响应不变法将模拟滤波器转数字滤波器[数字滤波器传递函数num1/den1]=impinvar(模拟的分子系数B1,模拟的分母系数A1,采样频率)
[h1,w]=freqz(num1,den1); %[频率响应,角频率]=freqz(数字滤波器传递函数num1/den1)

%%%%%%%双线性变换法
wp2=2*fs*tan(2*pi*fc/(2*fs)); %做预畸变处理后的通带截止频率
wr2=2*fs*tan(2*pi*fr/(2*fs)); %做预畸变处理后的阻带截止频率
[N2,wn2]=buttord(wp2,wr2,1,25,'s'); %[滤波器的阶数,截止频率]=buttord(通带截止频率,阻带截止频率,通带波纹,阻带衰减,滤波器类型s-带阻)
[B2,A2]=butter(N2,wn2,'s'); %[传递函数系数B2是分子的 A2是分母的]=butter(滤波器的阶数,截止频率,滤波器类型s-带阻)
[num2,den2]=bilinear(B2,A2,fs); %利用双线性的方法将模拟滤波器转数字滤波器[数字滤波器传递函数num2/den2]=impinvar(模拟的分子系数B2,模拟的分母系数A2,采样频率)
[h2,w]=freqz(num2,den2); %[频率响应,角频率]=freqz(数字滤波器传递函数num2/den2)
f=w/(2*pi)*fs; %将角频率转换为频率

plot(f,20*log10(abs(h1)),'-.',f,20*log10(abs(h2)),'-'); %画脉冲响应不变法和双线性变换法的图
axis([0,500,-80,10]);% 设置当前坐标轴x轴和y轴的限制范围
grid; %切换改变主网格线的可见性
xlabel('频率/Hz');ylabel('幅度/dB');title('巴特沃思数字低通滤波器'); 
legend('脉冲响应不变法','双线性变换法');

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分享|用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化...

原文链接:http://tecdat.cn/?p24127鲍鱼是一种贝类,在世界许多地方都被视为美味佳肴(点击文末“阅读原文”获取完整代码数据)。介绍相关视频养殖者通常会切开贝壳并通过显微镜计算环数来估计鲍鱼的年龄。因此,判断鲍鱼…

【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.3 初始化数据

本节对应的视频讲解:B_站_视_频 https://www.bilibili.com/video/BV1qd4y1s7xk 布局完成后,就可以修改控件的名称,以及添加初始化数据 1. 变量命名 先修改各控件显示的的名称,做到 “见名知义”,方便写代码 修改完…

C语言开发《推箱子游戏》,亲自手把手教会大家

【C语言经典算法100道实战题】适合具备C语言基础语法的同学学习,提高编写程序的逻辑思维能力和算法设计能力专门精心设计。100个经典的算法供大家练习及配套对应的录播视频。为我们今后学习其它的编程语言和软件开发打下坚实的基础,让你在编码道路上如鱼…

【手把手】教你玩转消息中间件之RabbitMQ

1、微服务下现存的各种问题 服务调用问题 当两个服务调用时,可以通过传统的HTTP方式,让服务A直接去调用服务B的接口,但是这种方式是同步的方式,虽然可以采用SpringBoot提供的Async注解实现异步调用,但是这种方式无法…

gsva gsea ssgsea gaochao 使用GSVA方法计算某基因集在各个样本的表现

傻傻分不清!GSEA & GSVA有啥差别?史上最全教程来了! - 知乎 (zhihu.com) 文章发表于2013年,GSVA: gene set variation analysis for microarray and RNA-Seq data 同样是broad 研究生出品,其在2005年PNAS发表的gsea已经高达1.4万的引用了,不过这个GSVA才不到300。 G…

【边缘检测】基于模糊算法的图像边缘检测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步进步,matlab项目目标合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信息:格物致知。 更多Matlab仿真内容点击👇 智能优化算…

实时数仓Flink生产环境部署+提交作业【步骤】

文章目录1、基础环境2、开发环境2.1、pom.xml2.2、log4j.properties2.3、测试用的代码2.3.1、Kafka工具2.3.3、Flink执行环境工具2.3.3、测试Flink读写Kafka2.3.4、测试FlinkSQL读写Kafka2.4、打包后上传到服务器3、生产环境3.1、Flink安装3.2、Flink on YARN下3种模式3.2.1、S…

Linux下POSIX信号量以及基于环形队列的生产消费模型

目录 一、POSIX信号量介绍 1. 信号量原理 2,初始化信号量 3,信号量销毁 4,信号量等待 5,发布信号量 二,基于环形队列的生产消费模型 1.基于单线程 2,测试: 3,基于多线程 4,测试 三,代…

故障转移,服务发现,负载均衡所运用的连接池

没错,说的就是连接池,玩互联网架构,连接池是必须要掌握的。 什么是连接池? 创建与管理连接缓冲池的技术,本质是资源复用,不用频繁创建与销毁连接,能提高性能。 画外音:数据库连接池…

Sentinel-2 L2A数据导入ENVI

Sentinel-2 L2A数据导入ENVI前言0 首先对SNAP进行设置1 用SNAP对Sentinel-2数据重采样2 在ENVI中打开重采样后的Sentinel-2数据3 其实不用重采样也行,ENVI可以直接打开解压后的Ssentinel-2文件,只需要将解压后的MTD_MSIL2A.xml拖进ENVI即可前言 Sentine…

揭秘倚天实例背后的硬核实力

2022云栖大会,阿里巴巴宣布自研CPU倚天710已大规模应用,阿里云未来两年20%的新增算力将使用自研CPU。11月15日,倚天710云实例上线并正式进入大规模应用阶段,现已应用于阿里巴巴集团核心业务,并服务科学研究、智能手机行…

[附源码]JAVA毕业设计天津城建大学校友录管理系统(系统+LW)

[附源码]JAVA毕业设计天津城建大学校友录管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。…

Nvidia力作:医学图像分割网络

来源:投稿 作者:梦飞翔 编辑:学姐 引自Unetr: Transformers for 3d medical image segmentation 1.序言 本文将以Nvidia团队最近提出的一种新的医学图像分割网络作为切入点,结合所用开源数据集,为各位同学提供一份从…

杨校老师课堂之Spring框架面试题【开发工程师面试前必看】

1.spring 中都用到了哪些设计模式?2.spring 中有哪些核心模块?3.说一下你理解的 IOC 是什么?4.spring 中的 IOC 容器有哪些?有什么区别?5.那 BeanFactory 和 FactoryBean 又有什么区别?6.Repository、Service、Compent、Controller它们有什么区别?7.那么 DI 又是什么?8…

C#学习笔记一 委托、事件

C# 委托、事件 1、Action委托、Func委托 namespace DelegateExample {class Program{static void main(string[] args){Calculator calculatornew Calculator();//Action委托Action Calnew Action(calculator.Report);//直接调用函数Calculator.Report();//通过委托调用函数Ca…

艾美捷RPMI-1640培养基含L-谷氨酰胺的功能和研究

Roswell Park Memorial Institute (RPMI) 1640 培养基起初是为了悬浮培养人白血病单层细胞而开发的。RPMI 1640 培养基被发现适用于多种哺乳动物细胞,包括 HeLa 细胞、Jurkat 细胞、MCF-7 细胞、PC12 细胞、PBMC 细胞、星形胶质细胞和癌细胞。针对广泛的细胞培养应用…

阿里影业的稳健业绩来源:科技+内容塑造韧性,应对市场变化

随着《阿凡达:水之道》(简称:《阿凡达2》)预售佳绩的显现,电影业的复苏已然箭在弦上。 12月7日,《阿凡达2》正式开启预售,灯塔专业版数据显示,其预售开启4小时后,总票房…

【工作随笔】验证经验、维度

背景:目前负责模块的验证工作基本进展完毕,包括所有功能验证、场景覆盖、用例编写调试和仿真、功能覆盖率收集、sva检测时序等,在当前的进度上和开发、验证同时对我的工作进行了评审。 问题:在评审中间讨论到一个当前tc实现的问题…

五、卷积神经网络CNN7(图像卷积与反卷积)

图像卷积 首先给出一个输入输出结果那他是怎样计算的呢? 卷积的时候需要对卷积核进行 180 的旋转,同时卷积核中心与需计算的图像像素对齐,输出结构为中心对齐像素的一个新的像素值,计算例子如下:这样计算出左上角(即第…

基于Dijkstra和A算法的机器人路径规划附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …