数字信号仿真实验——实验三 无限冲激响应数字滤波器的设计
程序员文章站
2022-07-12 14:35:11
...
1.实验目的
2.实验原理
3.实验内容
4.实验报告要求
(1)在实验报告中简述实验目的和实验原理要点
(2)记录在实验内容中所设计的滤波器的传递函数H(Z)及对应的幅频特性曲线,定性分析它们的性能,判断设计是否满足要求。
(3)对比滤波前后的心电图信号波形,说明数字滤波器的滤波过程与滤波作用。
(4)总结试验中的主要结论。
Matlab程序1:
Problem1
FS=1;%采样频率
t=1/FS;
fp=0.3;
fs=0.2;
wp=2*pi*fp/FS;%数字
ws=2*pi*fs/FS;
omegap=2*FS*tan(wp/2);%频率预畸变
omegas=2*FS*tan(ws/2);
[n,wn]=cheb1ord(omegap,omegas,0.8,20,'s');%切比雪夫(Wp,WS,Rp,Rs)通带和阻带的截止频率,通带和阻带的波纹系数
[b,a]=cheby1(n,0.8,wn,'high','s');%切比雪夫1型,n阶,Rp=0.8指定允许的波纹,wn固有频率
[bz,az]=bilinear(b,a,FS)%双线性变换
freqz(bz,az,512,FS)%计算离散系统频响特性
title('Made by LEI')
运行结果1:
实验分析1:
实验分析:az=1.0000 1.5289 1.6537 0.9452 0.2796
bz=0.0262 -0.1047 0.1570 -0.1047 0.0262
观察图像,其通带衰减即fp=0.3HZ时通带衰减小于0.8dB ;其阻带衰减即fs=0.2HZ时阻带衰减大于20dB故满足设计要求。
Matlab程序2_1:
Problem2_1
FS=1;%采样频率
t=1/FS;
fp=0.2;
fs=0.3;
wp=2*pi*fp/FS;%数字角频率
ws=2*pi*fs/FS;
omegap=2*FS*tan(wp/2);%频率预畸变
omegas=2*FS*tan(ws/2);
[n,wn]=cheb1ord(omegap,omegas,1,25,'s')%模拟低通的阶次n和截止频率Wn
[b,a]=cheby1(n,1,wn,'s');%模拟低通滤波器设计
[bz,az]=bilinear(b,a,FS)%双线性变换法设计数字低通滤波器
freqz(bz,az,512,FS)
title('Made by LEI')
运行结果2_1:
Matlab程序2_2:
Problem2_2
FS=1;
t=1/FS;
fp=0.2;
fs=0.3;
wp=2*pi*fp/FS;%数字角频率
ws=2*pi*fs/FS;
omegap=2*FS*tan(wp/2);%频率预畸变
omegas=2*FS*tan(ws/2);
[n,wn]=buttord(omegap,omegas,1,25,'s');%模拟低通的阶次n和截止频率Wn
[b,a]=butter(n,wn,'s');%模拟低通滤波器设计
[bz,az]=bilinear(b,a,FS);%双线性变换法设计数字低通滤波器
freqz(bz,az,512,FS)
title('Made by LEI')
运行结果2_2:
实验分析2:
实验分析:az=1.000 -1.5977 1.7459 -1.0200 0.3074
bz=0.0243 0.0970 0.1456 0.0970 0.0243
比较Butterworth低通滤波器与Chebyshev低通滤波器的幅频特性曲线,可发现Butterworth滤波器阻带衰减更快,逐渐趋于理想滤波器的幅频特性。
Matlab程序3:
Problem3
FS=1*10^5;
t=1/FS;
fp=[20000 30000];
fs=[15000 35000];
wp=2*pi*fp/FS;
ws=2*pi*fs/FS;
omegap=2*FS*tan(wp/2);
omegas=2*FS*tan(ws/2);
[n,wn]=buttord(omegap,omegas,1,40,'s');
[b,a]=butter(n,wn,'s');
[bz,az]=bilinear(b,a,FS);
freqz(bz,az,512,FS)
title('Made by LEI')
bz
Az
运行结果3:
实验分析3:
实验分析:观察其幅频特性曲线,其上下边带1dB处的通带临界频率分别为20KHZ和30KHZ,当频率低于15KHZ时,衰减大于40dB,故满足设计要求。
Matlab程序4_1:
Problem4_1
clear
FS=1500;
t=1/FS;
fp=80;
fs=100;
wp=2*pi*fp/FS;
ws=2*pi*fs/FS;
omegap=2*FS*tan(wp/2);
omegas=2*FS*tan(ws/2);
[n,wn]=buttord(omegap,omegas,1.4,1.6,'s');%通带衰减rp=1.4,阻带衰减rs=1.6
[b,a]=butter(n,wn,'s');
[bz,az]=bilinear(b,a,FS);
figure(1)
freqz(bz,az,512,FS)
title('Made by LEI')
x=[-4 2 0 -4 -6 -4 -2 -6 -6 -4 -4 -6 -6 -2 6 12 8 0 -16 -38 -60 -84 -90 -66 -32 -4 -2 -4 8 12 12 10 6 6 6 4 0 0 0 0 0 -2 -4 0 0 0 -2 -2 0 0 -2 -2 -2 -2 0];
figure(2)
subplot(211)
plot(x)
title('Made by LEI')
y=filter(bz,az,x);
subplot(212)
plot(y)
figure(3)
subplot(211)
N=100
n=0:N-1;
mf=fft(x,N);
stem(n,abs(mf));
title('Made by LEI')
y=filter(bz,az,x);
mfa=fft(y,N);
subplot(212)
stem(n,abs(mfa));
Problem4_2
Clear
FS=1500;%采样频率
t=1/FS;
fp=80;
fs=100;
wp=2*pi*fp/FS;%数字
ws=2*pi*fs/FS;
omegap=2*FS*tan(wp/2);%频率预畸变
omegas=2*FS*tan(ws/2);
[n,wn]=cheb1ord(omegap,omegas,1.4,1.6,'s')
[b,a]=cheby1(n,1,wn,'s');
[bz,az]=bilinear(b,a,FS)
figure(1)
freqz(bz,az,512,FS)
title('Made by LEI')
x=[-4 2 0 -4 -6 -4 -2 -6 -6 -4 -4 -6 -6 -2 6 12 8 0 -16 -38 -60 -84 -90 -66 -32 -4 -2 -4 8 12 12 10 6 6 6 4 0 0 0 0 0 -2 -4 0 0 0 -2 -2 0 0 -2 -2 -2 -2 0];
figure(2)
subplot(211)
plot(x)
title('Made by LEI')
y=filter(bz,az,x);
subplot(212)
plot(y)
figure(3)
subplot(211)
N=100
n=0:N-1;
mf=fft(x,N);
stem(n,abs(mf));
title('Made by LEI')
y=filter(bz,az,x);
mfa=fft(y,N);
subplot(212)
stem(n,abs(mfa));
运行结果4:
本人能力有限,解释尚不清楚明了,如遇任何问题,大家可留言或私信。后续将程序文件打包上传,供大家学习使用。
本文希望对大家有帮助,当然上文若有不妥之处,欢迎指正。
分享决定高度,学习拉开差距
上一篇: 16、EL表达式语言
下一篇: Python常用查找算法