数字信号处理实验四: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)');

 实验结果如下:

  • 34
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、设计一个工作采样频率 80 kHz 的巴特沃斯低通数字滤波器要求通带 边界频率为 4 kHz,通带最大衰减为 0.5 dB,阻带边界频率为 20 kHz,阻带最 小衰减为 45 dB。调用 Matlab 工具性函数 buttord 和 butter 设计,显示该数字 滤波器系统函数 H(z)的系数,并绘制所设计滤波器的单位脉冲响应、损耗函 数曲线和相频特性曲线。 2、设计一个工作采样频率 5 kHz 的椭圆帯阻数字滤波器要求通带边界 频率为 500 Hz 和 2125 Hz,通带最大衰减为 1 dB,阻带边界频率为 1050 Hz 和 1400 Hz,阻带最小衰减为 40 dB。调用 Matlab 工具箱函数 ellipord 和 ellip 设计数字滤波器,显示该滤波器系统函数 H(z)的系数,并绘制该滤波器的单 位脉冲响应、损耗函数曲线和相频特性曲线。 3、调用 Matlab 工具箱函数 remezord 和 remez 设计线性相位高通 FIR 滤波 器,实现对模拟信号的采样序列 x(n)的数字高通滤波处理。设计指标要求:采 样频率为 16kHz;通带截止频率为 5.5 kHz,通带最小衰减为 1 dB;过渡带宽度 小于或等于 3.5 kHz,阻带最小衰减为 75 dB。列出 h(n)的序列数据,画出损耗 函数曲线,并检验设计结果。 4、调用 Matlab 工具箱函数 fir1 设计线性相位带通 FIR 滤波器要求通带 截止频率为0.55 rad和0.7 rad,阻带截止频率为0.45 rad和0.8 rad, 通带最大衰减为 0.15 dB,阻带最小衰减为 40 dB。显示所设计滤波器单位脉 冲响应 h(n)的数据,并画出损耗函数曲线。
### 回答1: 实验是关于IIR数字滤波器设计软件实现实验。在这个实验中,我们将学习如何使用MATLAB软件设计实现IIR数字滤波器IIR数字滤波器是一种数字滤波器,它使用反馈来实现滤波功能。在实验中,我们将学习IIR数字滤波器的基本原理、设计方法和实现步骤。通过这个实验,我们可以更好地理解数字滤波器工作原理,提高数字信号处理的能力。 ### 回答2: IIR数字滤波器是一种数字信号处理技术,是一种数字滤波器的类型,实验主要是关于IIR数字滤波器设计软件实现IIR数字滤波器设计需要考虑三个方面:滤波器类型的选择、滤波器的阶数、滤波器设计方法。滤波器类型的选择包括低通、高通、带通、带阻等类型。滤波器的阶数决定了滤波器的陡峭程度,阶数越高,滤波器的陡峭程度越高。滤波器设计方法有直接法、间接法等。 软件实现主要是利用Matlab或者Python等编程语言,通过调用数字信号处理工具箱中的函数库,实现IIR数字滤波器设计及滤波处理。Matlab中主要使用freqz函数来绘制滤波器频率响应曲线,使用filter函数实现对信号的滤波处理。Python中也有相应的数字信号处理工具箱,主要使用scipy.signal库中的函数来实现IIR数字滤波器设计与处理。 总之,IIR数字滤波器是一种重要的数字信号处理技术,在实际应用中被广泛使用,掌握其设计软件实现技术对于信号处理的工程实践和研究具有重要的意义。 ### 回答3: IIR数字滤波器数字信号处理中常用的滤波器之一。本实验主要涉及到IIR数字滤波器设计软件实现IIR数字滤波器是一种基于差分方程的数字滤波器,其特点是具有积分和反馈,能够实现比FIR数字滤波器更为复杂和高阶的系统函数。IIR数字滤波器适用于各种数字信号处理应用,例如音频处理、图像处理、通信系统等等。 在IIR数字滤波器设计中,我们需要选择合适的滤波器类型,并确定滤波器的阶数和截止频率等参数。在选择滤波器类型时,我们可以根据滤波器的传递函数来进行选择。常见的IIR数字滤波器包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。 在确定滤波器的阶数和截止频率等参数时,我们需要根据所需的滤波器性能进行调整。较高的阶数和较低的截止频率能够实现较好的滤波效果,但会增加计算量和延迟等问题。而较低的阶数和较高的截止频率则会带来较差的滤波效果。 在软件实现方面,我们可以利用MATLAB等工具进行计算和模拟。MATLAB内置了丰富的数字信号处理函数和工具箱,能够方便地进行IIR数字滤波器设计和仿真。我们可以通过MATLAB实现IIR数字滤波器频率响应分析、时域响应分析以及滤波器性能测试等。 总之,IIR数字滤波器设计软件实现需要有一定的理论和实践基础,需要根据实际应用和滤波效果进行选择和调整,才能获得较好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值