一个3阶低通滤波器由下面差分方程描述:
y(n) = 0.0181 x(n) + 0.0543 x(n-1) + 0.0543 x(n-2) + 0.0181 x(n-3) + 1.76 y(n-1) - 1.1829 y(n-2) + 0.2781 y(n-3)
画出这个滤波器的幅度和相位响应,并验证它是一个低通滤波器。
代码1:
clear
close all
b = [0.0181,0.0543,0.0543,0.0181];
a = [1.0000,-1.7600,1.1829,-0.2781];
[h,t]=impz(b,a);
k = [0:500];
w = (pi/500)*k;
t = t';
h = h';
H = h * ( exp(-j*pi/500) ).^(t'*k);
magH = abs(H);
angH = angle(H);
subplot(2,1,1);
plot(w/pi,magH);
title('Magnitude part');
subplot(2,1,2);
plot(w/pi,angH);
title('Angle part');

这种方法的思路是通过差分方程可以得到有理传递函数或者频率响应的分子和分母系数,通过impz函数得到脉冲响应,之后由脉冲响应h(n)得到频率响应
代码二:
clc
clear
close all
b = [0.0181,0.0543,0.0543,0.0181];
a = [1.0000,-1.7600,1.1829,-0.2781];
m = 0:length(b)-1;
l = 0:length(a)-1;
k = 0:500;
w = (pi/500)*k;
nume = b * exp(-j * m' * w);
den = a * exp(-j * l' * w);
H = nume ./ den;
magH = abs(H);
angH = angle(H);
subplot(2,1,1);
plot(w/pi,magH);
title('Magnitude Response');
subplot(2,1,2);
plot(w/pi,angH);
title('Phase Response');

该博客介绍了如何使用MATLAB代码分析3阶低通滤波器的幅度和相位响应,以验证其低通特性。通过差分方程获取滤波器的系数,然后利用impz函数和直接计算方法分别绘制了幅度和相位响应曲线,展示了滤波器在不同频率下的行为。
4633

被折叠的 条评论
为什么被折叠?



