数字信号处理实验四: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,一经查实,立即删除!

相关文章

ECMScripts6(下篇)

1、Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 const s new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x > s.add(x));for (let i of s) {cons…

秋招突击——算法打卡——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…

关于windows系统

Win系统 - 命令行选 Cmd 还是 PowerShell 好&#xff1f;_windows powershell和命令提示符哪个更好用-CSDN博客

算法(一)递归

文章目录 递归的概念递归三要素递归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…

解决使用go get 下载模块下载超时的问题

解决使用go get 下载模块下载超时的问题 使用go env可以看到&#xff0c;默认的GOPROXY的值是https://proxy.golang.org, 而https://proxy.golang.org在国内无法访问. 如果您使用的 Go 版本是 1.13 及以上, 可以使用以下命令解决 go env -w GO111MODULEon go env -w GOPROXY…

#window11设置系统变量#

在Windows命令行中&#xff0c;可以通过不同的命令和方法来查看和修改环境变量设置。以下是详细的步骤和命令&#xff1a; 1. 临时设置环境变量&#xff08;当前命令行窗口有效&#xff09; 查看环境变量&#xff1a;直接运行 set 命令&#xff0c;可以查看当前系统的全部环境…

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

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

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

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

程序员兼中医爱好者对AI的看法

一.背景 因为社交媒体的发展&#xff0c;AI这个话题几乎跨越了社会各个阶层和行业&#xff0c;成了与性、吃饭并驾齐驱的热门话题。在没有特意去查阅资料的情况下&#xff0c;根据个人成长经历&#xff0c;作为一个自诩有智慧的人类一员来探讨这个问题。 二.AI的崛起是人类开始…

ftc基础编程:探索编程世界的基石

ftc基础编程&#xff1a;探索编程世界的基石 在当今数字化时代&#xff0c;编程已成为一项重要的技能。而ftc基础编程作为编程领域的入门课程&#xff0c;对于初学者来说具有至关重要的作用。本文将从四个方面、五个方面、六个方面和七个方面深入探讨ftc基础编程的重要性及其核…

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

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

AI问答:供应链和产业链的区别

一、概念不同 1.1、理解供应链 供应链是指围绕核心企业&#xff0c;从配套零件开始&#xff0c;制成中间产品以及最终产品&#xff0c;最后由销售网络把产品送到消费者手中的、将供应商&#xff0c;制造商&#xff0c;分销商直到最终用户连成一个整体的功能网链结构。涉及一系…

基于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…