当前位置: 首页 > news >正文

数字信号处理3:数字滤波器设计

文章目录

  • 前言
  • 一、实验目的
  • 二、实验设备
  • 三、实验内容
  • 四、实验原理
  • 五、实验方法及要求
    • 1.用脉冲响应不变法设计巴特沃斯数字滤波器
    • 2. 用双线性变换法设计切比雪夫数字滤波器
    • 3. 用双线性变换法设计巴特沃斯数字滤波器,并将直接型结构转换成级联型结构
    • 4. 数字低通滤波器特性比较
    • 5. 利用Matlab工具箱函数设计IIR数字低通滤波器
    • 6. 数字高通、带通、带阻滤波器设计
    • 7.利用窗函数设计法设计FIR数字低通滤波器
    • 8. 利用频率采样设计法设计FIR数字低通滤波器
    • 9.创新训练拓展内容
      • (1)根据心电信号特点设计IIR或FIR滤波器滤除心电图信号噪声。
      • (2)设计IIR滤波器或FIR滤波器对语音信号进行滤波
  • 六、实验结论与心得体会(手写)
  • 七、实验参考资料


前言

  本人初次学习数字滤波器设计

一、实验目的

  1.掌握由模拟滤波器转换为数字滤波器的原理与方法。
  2.熟悉IIR数字滤波器的计算机仿真实现方法。
  3.掌握用窗函数法设计FIR数字滤波器的原理和方法。
  4.熟悉线性相位FIR滤波器特性。
  5.了解各种窗函数对滤波特性的影响。
  6.熟悉FIR数字滤波器的计算机仿真实现方法。
  7.使用Matlab软件平台,对设计的数字滤波器频域特性及其滤波效果进行模拟仿真,通过观察数字滤波器输入、输出波形及频谱,对软件仿真实验结果进行合理分析,并得到有效的结论。

二、实验设备

  1.计算机
  2.Matlab 2019

三、实验内容

  1.IIR数字滤波器设计。包括巴特沃斯模拟滤波器、切比雪夫模拟滤波器设计;利用脉冲响应不变法、双线性变换法将模拟滤波器转换为数字滤波器。
  2.滤波器结构的转换,将直接型结构转换成级联型结构。
  3.比较分析利用两种不同方法(脉冲响应不变法、双线性变换法)设计的数字滤波器的频率特性区别。
  4.比较分析变换前的模拟滤波器与变换后的数字滤波器的频率特性的区别,注意模拟频率和数字频率之间的对应关系。
  5.利用窗函数设计法设计FIR数字滤波器。
  6.利用频率采样设计法设计FIR数字滤波器
  7.拓展部分是设计合适的IIR滤波器或FIR滤波器对心电信号、语音信号进行滤波。

四、实验原理

  1. 巴特沃斯模拟低通滤波器的设计
  2. 切比雪夫模拟低通滤波器的设计
  3. 脉冲响应不变法设计IIR数字低通滤波器
  4. 双线性变换法设计IIR数字低通滤波器
  5. 线性相位FIR滤波器设计条件
  6. 利用窗函数设计法设计FIR数字滤波器原理
   7. 利用频率采样设计法设计FIR数字滤波器原理

五、实验方法及要求

1.用脉冲响应不变法设计巴特沃斯数字滤波器

  设计巴特沃斯模拟低通滤波器,利用脉冲响应不变法将模拟滤波器转换为数字滤波器,画出模拟及数字滤波器幅频及相频特性。比较分析变换前的模拟滤波器与变换后的数字滤波器的频率特性。
  设定:模拟低通滤波器指标: wp=0.1hz;ws=0.175hz;Rp=1dB;As=10dB;T=1
程序:

T=1;
wp=2*pi*0.1;
ws=2*pi*0.175;
Rp=1;
As=10;
OmegaP=wp/T;
OmegaS=ws/T;
k=sqrt(10^(rs/10)-1)/sqrt(10^(rp/10)-1);
Az=OmegaS/OmegaP;
N=ceil(log10(k)/log10(Az));
OmegaC=OmegaP/((10^(rp/10)-1)^(1/(2*N)));
[B,A]=u_buttap(N,OmegaC);
[b,a]=imp_invr(B,A,T)
subplot(2,2,1)
fk=0:0.001:0.5;
wk=2*pi*fk;
Hk=freqs(B,A,wk);
plot(fk,20*log10(abs(Hk)));
grid on
xlabel('频率(hz)');
title('模拟滤波器:幅频特性')
axis([0,0.5,-50,0]);
subplot(2,2,2)
plot(fk,20*log10(abs(angle(Hk))));
grid on
xlabel('频率(hz)');
title('模拟滤波器:相频特性')
axis([0,0.5,-40,20]);
subplot(2,2,3)
[Hk,w]=freqz(b,a);
plot(w/pi,20*log10(abs(Hk)));
grid on
xlabel('w/π');  
title('数字滤波器:幅频特性')
subplot(2,2,4)
plot(w/pi,20*log10(abs(angle(Hk))));
grid on
xlabel('w/π'); 
title('数字滤波器:相频特性')

结果:
在这里插入图片描述

分析:
在这里插入图片描述

2. 用双线性变换法设计切比雪夫数字滤波器

  设计切比雪夫模拟低通滤波器,利用双线性变换法将模拟滤波器转换为数字滤波器,画出模拟及数字滤波器幅频及相频特性。
设定:模拟数字滤波器指标: wp=0.2pi;ws=0.3pi;Rp=1dB;As=15dB;T=1。
程序:

T=1;
wpz=0.2*pi;
wsz=0.3*pi;
wp=2/T*tan(wpz/2);
ws=2/T*tan(wsz/2);
Rp=1;
As=15;
OmegaP=(2/T)*tan(wp/2);
OmegaS=(2/T)*tan(ws/2);
k=sqrt(10^(rs/10)-1)/sqrt(10^(rp/10)-1);
Az=OmegaS/OmegaP;
N=ceil(logm(k+sqrt(k*k-1))/logm(Az+sqrt(Az*Az-1)));
fprintf('\nChebyshevFilterOrder=%2.0f\n',N)
[B,A]=u_chb1ap(N,rp,OmegaP);
[b,a]=bilinear(B,A,T)
subplot(2,2,1)
fk=0:0.001:0.5;
wk=2*pi*fk;
Hk=freqs(B,A,wk);
plot(fk,20*log10(abs(Hk)));
grid on
xlabel('频率(hz)');
title('模拟滤波器:幅频特性')
axis([0,0.5,-100,0]);
subplot(2,2,2)
plot(fk,20*log10(abs(angle(Hk))));
grid on
xlabel('频率(hz)');
title('模拟滤波器:相频特性')
subplot(2,2,3)
[Hk,w]=freqz(b,a);
plot(w/pi,20*log10(abs(Hk)));
grid on
xlabel('w/π');  
title('数字滤波器:幅频特性')
subplot(2,2,4)
plot(w/pi,20*log10(abs(angle(Hk))));
grid on
xlabel('w/π'); 
title('数字滤波器:相频特性')

结果:
在这里插入图片描述

分析:
在这里插入图片描述

3. 用双线性变换法设计巴特沃斯数字滤波器,并将直接型结构转换成级联型结构

  利用双线性变换法将模拟低通滤波器转换为数字低通滤波器,画出模拟及数字滤波器幅频及相频特性。比较分析变换前的模拟滤波器与变换后的数字滤波器的频率特性。
  设定:模拟数字滤波器指标: wp=0.2pi;ws=0.3pi;Rp=1dB;As=15dB;T=1。
程序:

 
T=1;
wpz=0.2*pi;
wsz=0.3*pi;
wp=2/T*tan(wpz/2);
ws=2/T*tan(wsz/2);
Rp=1;
As=15;
OmegaP=(2/T)*tan(wp/2);
OmegaS=(2/T)*tan(ws/2);
k=sqrt(10^(rs/10)-1)/sqrt(10^(rp/10)-1);
Az=OmegaS/OmegaP;
N=ceil(log10(k)/log10(Az));
OmegaC

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • docker部署rabbitMQ
  • 用Python实现特征工程之特征变换——数值特征的归一化和标准化、类别特征的编码、特征组合和分解、特征缩放
  • 谈谈docker的四种网络模式
  • JavaDS —— 位图(BitSet)与 布隆过滤器
  • 数据结构总体概述
  • 三大科技看点引领奥运新风潮,你是否准备好迎接科技的未来?
  • write_sdc和write_script区别
  • 【gcc】基于gpt和python的流程和延迟梯度分析
  • C语言典型例题31
  • EXPLAIN和ANALYZE
  • PostgreSQL JSON 字段操作指南
  • JavaWeb——CSS的使用
  • 【Python第三方库】Requests全面解析
  • C++ | Leetcode C++题解之第332题重新安排行程
  • 历史库,成本与性能如何兼得?| OceanBase应用实践
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Centos6.8 使用rpm安装mysql5.7
  • Hexo+码云+git快速搭建免费的静态Blog
  • in typeof instanceof ===这些运算符有什么作用
  • Iterator 和 for...of 循环
  • JAVA SE 6 GC调优笔记
  • Nodejs和JavaWeb协助开发
  • oschina
  • 分享一份非常强势的Android面试题
  • 人脸识别最新开发经验demo
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (3)(3.5) 遥测无线电区域条例
  • (javaweb)Http协议
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (回溯) LeetCode 46. 全排列
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (三)终结任务
  • (四)js前端开发中设计模式之工厂方法模式
  • (一) 初入MySQL 【认识和部署】
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .net 4.0发布后不能正常显示图片问题
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET IoC 容器(三)Autofac
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • ::
  • @我的前任是个极品 微博分析
  • []串口通信 零星笔记
  • [1204 寻找子串位置] 解题报告
  • [BSGS算法]纯水斐波那契数列
  • [C++初阶]vector的初步理解
  • [C++提高编程](三):STL初识
  • [java基础揉碎]方法的重写/覆盖
  • [JS真好玩] 掘金创作者必备: 监控每天是谁取关了你?
  • [k8s源码]1.client-go集群外部署
  • [linux 驱动]i2c总线设备驱动详解与实战
  • [Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例
  • [Linux内存管理-分页机制]—把一个虚拟地址转换为物理地址
  • [NOIP2011DAY1P1]铺地毯