数字信号处理实验三: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/18282.shtml

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

相关文章

CC1310 Debug interface is locked

XDS110连接CC1310板子,打开Smart RF 弹出窗口如下: 解决办法: 1 打开SmartRF Flash Programmer 2 选择连接的设备CC1310, 弹出如下窗口,点击OK。 3 点击Tools图标,选择CC26XX/CC13XX Forced Mass Erase。 4 在弹出的…

Windows11系统安装QEMU虚拟化软件

Windows11系统安装QEMU虚拟化软件 QEMU软件是一个通用的开源机器模拟器和虚拟机。本文档适用于在Windows 11系统平台上安装QEMU软件。 1. 安装准备 1.1 安装平台 Windows 11 1.2. 软件信息 软件名称软件版本安装路径QEMUQEMU-8.2.93D:\qemu 1.3软件下载 QEMU官网官网下…

【全开源】西陆家政系统源码小程序(FastAdmin+ThinkPHP+原生微信小程序)

打造高效便捷的家政服务平台 一、引言:家政服务的数字化转型 随着人们生活节奏的加快,家政服务需求日益增长。为了满足广大用户对高效、便捷的家政服务的需求,家政小程序系统源码应运而生。这款源码不仅能够帮助家政服务提供商快速搭建自己…

关于本人VIP付费文章说明

郑重声明:我写博客只是为了记录分享经验 自从上次写完数据结构系列后我就一直没有登陆,目前也没打算继续开新内容。今天偶然发现我之前写的文章被设为vip文章,要vip解锁才能看,我很确定当初我发布的时候选择的是公开,…

FastGPT + OneAPI 构建知识库

云端text-embedding模型 这个在前面的文章FastGPT私有化部署OneAPI配置大模型中其实已经说过,大概就是部署完成OneAPI后,分别新建令牌和渠道,并完成FastGPT的配置。 新建渠道 选择模型的类型并配置对应的词向量模型即可,这里我…

excel数据丢失怎么办?表格文件恢复的3个方法

Excel作为一个常用的表格文件,我们在工作中经常都需要用到它。最令人崩溃的事就是有时候我们辛辛苦苦用Excel完成了工作,但是突然发现Excel数据丢失。这可怎么办呢?如何找回丢失的Excel数据?下面小编就分享几种恢复办法。 方法一&…

FPGA——eMMC验证

一.FPGA基础 1.FPGA烧录流程 (1) 加载流文件 —— bitfile (2) 烧录文件 —— cmm 二.MMC 1.基础知识 (1)jz4740、mmc、emmc、sd之间的关系? jz4740——处理器 mmc——存储卡标准 emmc——mmc基础上发展的高效存储解决方案 sd—— 三.eMMC和SD case验证 1.ca…

Go 使用 RabbitMQ---------------之一

RabbitMQ 是一种消息代理。消息代理的主要目的是接收、存储并转发消息。在复杂的系统设计和微服务架构中,RabbitMQ 经常被用作中间件来处理和转发系统之间的消息,以确保数据的一致性和可靠性。正是因为提供了可靠的消息机制、跟踪机制和灵活的消息路由,常常被用于排队算法、…

MFC里的工具栏按钮图标如何使用外部图片?

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

据库管理-第196期 实战RDMA(20240528)

数据库管理196期 2024-05-28 数据库管理-第196期 实战RDMA(20240528)1 环境2 操作系统配置3 配置NVMe over RDMA4 挂载磁盘处理并挂载磁盘: 5 RDMA性能测试6 iSCSI部署7 iSCSI性能测试8 性能对比总结 数据库管理-第196期 实战RDMA&#xff08…

Transformer 从attention到grouped query attention (GQA)

Attention原理和理解 attention原理参考: Attention Is All You Need The Illustrated Transformer – Jay Alammar – Visualizing machine learning one concept at a time. Transformer图解 - 李理的博客 Attention首先对输入x张量乘以WQ, WK, WV得到query,…

软件程序设计规范(代码编写规范文档)-word下载

程序的编码是一个创造性极强的工作,必须要遵守一定的规则和限制,编码风格的重要性对软件项目开发来说是不言而喻的。 开发工程师在开发过程中必须遵守本规范,规范是代码编写及代码验收等管理环节中必须执行的标准。 编制基本原则:…

169. 多数元素

题目 解答 方法一:Boyer-Moore 投票算法 class Solution {func majorityElement(_ nums: [Int]) -> Int {var candidate 0var count 0for num in nums {if count 0 {candidate numcount 1} else {if candidate num {count 1} else {count - 1}}}return …

计算机毕业设计hadoop+spark+hive物流大数据分析平台 物流预测系统 物流信息爬虫 物流大数据 机器学习 深度学习

流程: 1.Python爬虫采集物流数据等存入mysql和.csv文件; 2.使用pandasnumpy或者MapReduce对上面的数据集进行数据清洗生成最终上传到hdfs; 3.使用hive数据仓库完成建库建表导入.csv数据集; 4.使用hive之hive_sql进行离线计算&…

webserver服务器从零搭建到上线(九)|⭐️EventLoop类(一)——详解成员变量、简述成员方法

在本节中&#xff0c;我们一起来仔细探讨一下EpollPoller类。该类可以说是muduo库中最最核心的类了&#xff0c;一定要搞懂&#xff01; 文章目录 私有成员using ChannelList std::vector<Channel*>looping_、quit_threadId_pollReturnTime_、poller_wakeup_fd、wakeupC…

一种基于单片机的智能饮水机设计

随着人们生活水平的提高&#xff0c;对美好生活质量的追求也越来越高。饮 水机是人们日常生活不可或缺的&#xff0c;实现饮水机的智能化控制不但方便&#xff0c; 而且更加安全。本文提出一种基于单片机的智能饮水控制系统&#xff0c;通过传 感器实现对水温的监测&#xff0c…

Redis(十四) 主从模式

文章目录 前言什么是分布式系统主从模式实现Redis主从模式主从模式原理nagle 算法拓扑结构主从模式实现的过程psync实时复制 前言 Redis 作为在内存中操作数据的服务器系统&#xff0c;每时都会接收成千上万的请求&#xff0c;如果我们的业务只在单个服务器上面部署了 Redis&a…

Android环境下Mesa初始化流程重学习之eglInitialize

Mesa初始化流程重学习之eglInitialize 引言 说来也惭愧&#xff0c;Mesa搞了这么久了&#xff0c;每次都想深入下&#xff0c;可是每次都是浅尝辄止了。这次趁着有了一定的闲暇时间并且有了调试景嘉微显卡的机会&#xff0c;还是想重新学习下&#xff0c;深入研究下&#xff0…

常见排序算法之插入排序

目录 一、直接插入排序 1.1 什么是插入排序 1.2 代码思路 1.3 C语言源码 二、希尔排序 2.0 插入排序的弊端 2.1 什么是希尔排序&#xff1f; 2.2 排序思路 2.3 C语言源码 一、直接插入排序 1.1 什么是插入排序 插入排序是一种简单直观的排序算法&#xff0c;它通过构…

LCD屏入门(基于ESP32)

主要参考资料&#xff1a; B站【乐鑫全球开发者大会】DevCon23 #17 &#xff5c;HMI 智能屏解决方案 目录 1.LCD屏幕硬件层2.LVGL驱动层 1.LCD屏幕硬件层 MCU常用的驱动接口在下面&#xff0c;大致可以划分为串口屏和并口屏。 串口屏相较于并行屏优势是占用IO少&#xff0c;相…