数字信号处理实验四:IIR数字滤波器设计及软件实现

一、实验目的

1. 掌握MATLAB中进行IIR模拟滤波器的设计的相关函数的应用;

2. 掌握MATLAB的工具箱中提供的常用IIR数字滤波器的设计函数的应用;

3.掌握MATLAB的工具箱中提供的模拟滤波器转数字滤波器的相关的设计函数的应用。

二、实验内容

本实验为综合性实验项目,要求通过利用MATLAB软件编写程序,设计IIR数字滤波器,并绘制波形。

三、实验器材(设备、元器件)

安装有MATLAB软件的计算机1台。

四、实验步骤

1、设计一个工作于采样频率80 kHz的巴特沃斯低通数字滤波器,要求通带边界频率为4 kHz,通带最大衰减为0.5 dB,阻带边界频率为20 kHz,阻带最小衰减为45 dB。直接调用MATLAB工具箱函数buttord和butter设计数字滤波器,并显示数字滤波器系统函数H(z)的系数。

2、设计一个工作于采样频率80 kHz的切比雪夫Ⅰ型低通数字滤波器,要求通带边界频率为4 kHz,通带最大衰减为0.5 dB,阻带边界频率为20 kHz,阻带最小衰减为 45 dB。 直接调用MATLAB工具箱函数cheb1ord和cheby1设计数字滤波器,并显示数字滤波器系统函数H(z)的系数。

3、用脉冲响应不变法设计一个巴特沃斯低通数字滤波器,指标要求采样频率80 kHz,通带边界频率为4 kHz,通带最大衰减为0.5 dB,阻带边界频率为20 kHz,阻带最小衰减为45 dB。编写程序先调用MATLAB工具箱函数buttord和butter设计过渡模拟低通滤波器,再调用脉冲响应不变法数字化转换函数impinvar, 将过渡模拟低通滤波器转换成低通数字滤波器H(z)。

4、用双线性变换法(bilinear函数)设计符合以下指标的数字低通滤波器:通带内角频率低于0.2π rad时,容许幅度误差在1dB以内;在角频率0.3π到π之间的阻带衰减大于15dB,采样周期为0.5s。

五、实验程序及结果分析

1. 设计巴特沃斯低通数字滤波器代码如下:

close all;clear all;% 设置参数Fs = 80000 ;% 采样频率T = 1/Fs; %采样间隔wp = 2 * pi * 4000/Fs; %%通带模拟角频率ws = 2 * pi * 20000/Fs;%%阻带模拟角频率rp = 0.5;rs = 45;% 进行设计[N,wc] =  buttord(wp/pi,ws/pi,rp,rs);[B,A] = butter(N,wc)% [Bz,Az] = impinvar(B,A,Fs)%  绘图figure;subplot(2,2,1);[H,w]= freqz(B,A,1000);plot(w/pi,20*log10(abs(H)));title('损耗函数曲线');xlabel('\omega/\pi');ylabel('幅度(dB)');subplot(2,2,2);plot(w/pi,angle(H));title('相频特性曲线');xlabel('\omega/\pi');ylabel('相位');axis([0 1 -2*pi 2*pi]);

实验结果如下:

2.设计切比雪夫Ⅰ型低通数字滤波器代码如下:

close all;clear all;Fs = 80000; %Hz 采样频率T = 1/Fs;wp = 2 * pi * 4000/Fs; %%通带模拟角频率ws = 2 * pi * 20000/Fs;%%阻带模拟角频率rp = 0.5;rs = 45;%获取阶数和截止频率[ N,wc ] = cheb1ord(wp/pi, ws/pi, rp , rs);%获得转移函数系数[ B,A ] = cheby1(N,rp,wc/pi,'low')%滤波figure;subplot(2,2,1);[H,w]= freqz(B,A,1000);plot(w/pi,20*log10(abs(H)));title('损耗函数曲线');xlabel('\omega/\pi');ylabel('幅度(dB)');subplot(2,2,2);plot(w/pi,angle(H));title('相频特性曲线');xlabel('\omega/\pi');ylabel('相位');axis([0 1 -2*pi 2*pi]);

实验结果如下:

 

3.设计巴特沃斯低通数字滤波器代码如下:

close all;clear all;%1.数字滤波器的技术指标rp = 0.5;%通带最大衰减rs = 45;%阻带最小衰减fp = 4000;%通带截止频率fs = 20000;%阻带截止频率Fs = 80000;%抽样间隔T = 1/Fs;%2.将数字指标转化成模拟滤波器技术指标(采用冲激响应不变法)wap = 2*pi*fp;was = 2*pi*fs;%3.设计滤波器[N,wac] = buttord(wap,was,rp,rs,'s');%计算阶数N和3dB截止频率wac[z,p,k] = buttap(N);%创建巴特沃斯低通滤波器 z零点p极点k增益[Bap,Aap] = zp2tf(z,p,k);%由零极点和增益确定归一化Han(s)系数[Bbs,Abs] = lp2lp(Bap,Aap,wac);%将s/wc 代替s,去归一化[B,A] = impinvar(Bbs,Abs,Fs);%模拟域到数字域——冲激响应不变法[H1,w] = freqz(B,A);%根据H(z)求频率响应%绘制数字滤波器频响幅度谱figure(1);f = w*Fs/(2*pi);subplot(2,1,1);plot(f,20*log10(abs(H1)));%绘制幅度响应title('冲激响应不变法——巴特沃斯BLPF(幅度)');xlabel('频率/Hz');ylabel('H1幅值/dB');subplot(2,1,2);plot(f,unwrap(angle(H1)));% 绘制相位响应xlabel('频率/Hz');ylabel('角度/Rad');title('冲激响应不变法——巴特沃斯BLPF(相位)'); 

实验结果如下:  

4.用双线性变换法设计数字低通滤波器代码如下:

clear all;wp = 0.2*pi;ws = 0.3*pi;rp = 1;rs = 15;Fs = 1;wp1=2*Fs*tan(wp/2);ws1=2*Fs*tan(ws/2);[N,Wn] = buttord(wp1,ws1,rp,rs,'s');[Z,P,K] = buttap(N);[Bap,Aap] = zp2tf(Z,P,K);[b,a] = lp2lp(Bap,Aap,Wn);[bz,az] = bilinear(b,a,Fs);[H,W] = freqz(bz,az);disp(bz);disp(az);subplot(2,1,1);plot(W*Fs/pi,abs(H));grid on;xlabel('频率/Hz');ylabel('幅度');title('(a)');subplot(2,1,2);plot(W/pi,20*log10(abs(H)));grid on;xlabel('\omega/\pi');ylabel('幅度 (dB)');title('(b)');

 实验结果如下:

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

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

相关文章

秋招突击——算法打卡——5/30——复习{最大上升子序列的和、面试算法缺陷补充}——新做:{回文数+补充 自定义Stoi实现、正则表达式匹配}

文章目录 复习导弹拦截——最大上升子序列和推理过程实现代码补充昨日面试 新作回文数实现代码 字符串转整数正则表达式匹配个人实现思路分析实现代码如下 参考做法思路分析实现代码 总结 复习 导弹拦截——最大上升子序列和 同样类型题目链接:导弹拦截重做这道题…

力扣刷题--485. 最大连续 1 的个数【简单】

题目描述 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3. 示例 2: 输入&…

WindowManager相关容器类

窗口中容器类介绍&#xff1a; 本节内容较多&#xff0c;建议结合前面的内容一起阅读&#xff1a; 1、addWindow的宏观概念 2、WindowManager#addView_1 3、WindowManager#addView_2 1&#xff09;、WindowContainer&#xff1a; class WindowContainer<E extends WindowC…

算法(一)递归

文章目录 递归的概念递归三要素递归demo打印100次“hello word”斐波那契数列 递归的概念 递归算法是一种直接或者间接调用自身函数或者方法的算法。 递归三要素 递归条件结束 因为递归是循环调用自身&#xff0c;因此就必须要有结束条件&#xff0c;或者就会OOM。 函数的功…

低代码开发系统是什么?它有那些部分组成?

低代码开发系统是什么&#xff1f;它有那些部分组成&#xff1f; 一、引言 在当今快速变化的商业环境中&#xff0c;企业对于快速响应市场需求、降低开发成本和提高开发效率的需求日益增强。低代码开发系统&#xff08;Low-Code Development Platform&#xff09;应运而生&am…

安卓启动 性能提升 20-30% ,基准配置 入门教程

1.先从官方下载demohttps://github.com/android/codelab-android-performance/archive/refs/heads/main.zip 2.先用Android studio打开里面的baseline-profiles项目 3.运行一遍app&#xff0c;这里建议用模拟器&#xff0c;&#xff08;Pixel 6 API 34&#xff09;设备运行&a…

思科防火墙 网线连接的端口还是down 已配置 端口还是down

环境&#xff1a; 思科防火墙fpr-2100 isco Firepower 2100 系列防火墙是思科系统&#xff08;Cisco Systems&#xff09;推出的一款中端网络安全和防火墙设备。这一系列的产品主要针对中到大型企业的需求&#xff0c;提供高性能的威胁防护和网络流量管理功能。 问题描述&am…

Java微服务智慧工地可视化SaaS云解决方案源码

智慧工地是指运用信息化手段&#xff0c;围绕施工过程管理&#xff0c;建立互联协同、智能生产、科学管理的施工项目信息化生态圈&#xff0c;并将此数据在虚拟现实环境下与物联网采集到的工程信息进行数据挖掘分析&#xff0c;提供过程趋势预测及专家预案&#xff0c;实现工程…

排序算法之直接选择排序【图文详解】

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;LiUEEEEE                        …

基于tensorflow和NasNet的皮肤癌分类项目

数据来源 https://challenge.isic-archive.com/data/#2019 数据划分 写了个脚本划分 for line in open(ISIC/labels.csv).readlines()[1:]:split_line line.split(,)img_file split_line[0]benign_malign split_line[1]# 0.8 for train, 0.1 for test, 0.1 for validati…

快蜗牛OZON数据分析,OZON快蜗牛数据

在当今电商行业蓬勃发展的背景下&#xff0c;OZON作为俄罗斯及东欧市场的重要电商平台&#xff0c;其数据背后蕴藏着巨大的商业价值。快蜗牛&#xff0c;作为专注于OZON平台的数据分析工具&#xff0c;为卖家提供了深入的市场洞察和策略指导。接下来看看快蜗牛OZON数据分析&…

线上 | OpenSergo - [规范]

INDEX 1 参考资料2 OpenSergo 与 Sentinel 关系3 规范体系3.1 服务元数据ReportMetadataRequest 信息![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ffba569841ae4668b4cff74e4d41d21f.png)##### ReportMetadataReply 信息![在这里插入图片描述](https://img-blog…

BurpSuite2024.5

1 工具介绍 本版本更新介绍 此版本引入了Burp Scanner对WebSockets的支持、对记录登录编辑器的改进、WebSocket 匹配和替换规则以及许多性能改进。 Burp Scanner 支持 WebSockets 我们已更新内部代理的配置以允许 WebSocket 流量。这使 Burp Scanner 现在可以抓取依赖 WebSo…

基于大模型的智慧零售教育科研平台——技术方案

一、概述 1.1背景 随着数字经济的快速发展和全社会数字化水平的升级&#xff0c;人工智能的积极作用越来越凸显&#xff0c;人工智能与各个行业的深度融合已成为促进传统产业转型升级的重要方式之一。ChatGPT的出现掀起了又一波人工智能发展热潮&#xff0c;人工智能行业发展势…

Linux sudo用户权限管理小实验001

Linux sudo用户权限管理和审计-初步 1、设置历史指令的保存数量 默认history指令可以查看当前用户执行的1000条历史命令的条目 2、使用export指令设置HISTSIZE环境变量的数量为999999条。 3、基于date指令&#xff0c;输出日期和时间 4、设置linux系统history相关变量&…

预编码算法(个人总结)

引言 预编码算法是现代无线通信系统中的关键技术&#xff0c;特别是在多输入多输出&#xff08;MIMO&#xff09;系统中。它们通过在发送端对信号进行处理&#xff0c;减少干扰并提高信道容量。这种技术广泛应用于5G、Wi-Fi和卫星通信系统中。本教程将详细介绍预编码算法的背景…

FV悬浮球,安卓真正小而美的神器,满足你的一切需求。

如果你问安卓最强软件有哪些&#xff0c;不同的人可能会有不同的答案&#xff0c;但如果是问我&#xff0c;那我的答案中一定会有他。 FV悬浮球 他是ES文件浏览器&#xff0c;原作者的新作品&#xff0c;经过几年的开发&#xff0c;拥有了超过400项功能&#xff0c;但大小只有…

如何在 llama.cpp 服务器中实现用户登录功能的优化方案?(语言-c++)

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

HCIP-Datacom-ARST自选题库__BGP/MPLS IP VPN判断【10道题】

1.部署BGP/MPLSIP VPN时,当两个VPN有共同的站点,则该共同站点一定不能与两个VPN其他站点使用重叠的地址空间。 2.如图所示&#xff0c;运营商BGP/MPLSIP VPN骨干网通过LDP构建LSP&#xff0c;若想实现用户X两个站点之间通过BGP/MPLSIP VPN网络互通&#xff0c;则PE1和PE2之间必…

ZL-LGF-2离体心脏灌流系统适用于离体哺乳动物心脏灌流和离体心脏冠脉流量的测定

单介绍&#xff1a; 离体心脏灌流系统适用于离体哺乳动物心脏灌流&#xff08;langendorff氏法&#xff09;和离体心脏冠脉流量的测定&#xff0e;可直接进行恒压灌流&#xff0c;加上蠕动泵可进行恒流灌流&#xff0e; 详情介绍&#xff1a; 1、灌流数量&#xff1a;2个心脏…