请按以下要求修改代码:用 MATLAB 直接法设计椭圆型数字高通滤波器,要求:通带ωp=0.3π,Rp=1dB;阻带ωs=0.2π,As=20dB。请描绘滤波器的绝对和相对幅频特性、相频特性、零极点分布图,列出系统传递函数式。ws1=0.15; ws2=0.85; %数字滤波器的阻带截止频率 ws=[ws1,ws2]; wp1=0.25;wp2=0.75; %数字滤波器的通带截止频率 wp=[wp1,wp2]; %求数字系统的频率特性[H,w]=freqz(b,a); Rp=1;As=20; %输人波器的通阻带衰减指标 [n,we]=cheb1ord(wp,ws,Rp,As); %计算阶数n和截止频率 [b,a]=cheby1(n,Rp,we); %直接求数字带通滤波器系数 [H,w]=freqz(b,a); %求数字系统的频率特性 dbH=20 * log10((abs(H)+eps)/max(abs(H)));%化为分贝值 subplot(2,2,1); plot(w/pi,abs(H)); title('幅频响应'); subplot(2,2,2); plot(w/pi,angle(H)); title('相频响应'); subplot(2,2,3); plot(w/pi,dbH); title('幅频响应 dB'); subplot(2,2,4); zplane(b,a); %根据H(z)绘制零极点
时间: 2024-04-26 17:24:49 浏览: 117
根据您的要求,代码已修改如下:
% 设计椭圆型数字高通滤波器
% 通带ωp=0.3π,Rp=1dB;阻带ωs=0.2π,As=20dB
wp = 0.3*pi; % 数字滤波器的通带截止频率
ws = 0.2*pi; % 数字滤波器的阻带截止频率
Rp = 1; % 通带波纹
As = 20; % 阻带衰减
[n, Wn] = ellipord(wp/pi, ws/pi, Rp, As); % 计算滤波器阶数和截止频率
[b, a] = ellip(n, Rp, As, Wn, 'high'); % 直接求数字高通滤波器系数
[H, w] = freqz(b, a); % 求数字系统的频率特性
% 绘制幅频响应、相频响应、幅频响应 dB 和零极点分布图
figure(1);
subplot(2,2,1);
plot(w/pi, abs(H));
title('幅频响应');
xlabel('归一化频率');
ylabel('|H(jw)|');
grid on;
subplot(2,2,2);
plot(w/pi, angle(H));
title('相频响应');
xlabel('归一化频率');
ylabel('<H(jw)');
grid on;
subplot(2,2,3);
plot(w/pi, 20*log10(abs(H)));
title('幅频响应 dB');
xlabel('归一化频率');
ylabel('|H(jw)| [dB]');
grid on;
subplot(2,2,4);
zplane(b, a);
title('零极点分布图');
grid on;
% 输出系统传递函数
[num, den] = tf2zp(b, a);
K = num(1) / den(1);
num = num / K;
den = den / K;
sys = tf(num, den);
disp('系统传递函数:');
disp(sys);
阅读全文