请根据要求帮我修改下面的代码,要求如下:用 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 19:24:51 浏览: 25
根据要求,修改后的 MATLAB 代码如下:
%数字高通滤波器设计
wp = 0.3*pi; %数字滤波器的通带截止频率
ws = 0.2*pi; %数字滤波器的阻带截止频率
Rp = 1; %通带最大衰减量
As = 20; %阻带最小衰减量
%使用cheby1函数进行设计
[n, wn] = cheb1ord(wp, ws, Rp, As); %计算阶数n和截止频率
[b, a] = cheby1(n, Rp, wn, 'high'); %直接求数字高通滤波器系数
%绘制幅频响应、相频响应、幅频响应dB和零极点分布图
[H, w] = freqz(b, a);
dbH = 20*log10(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); title('数字高通滤波器零极点分布图');
%打印系统传递函数式
syms z;
H = poly2sym(b,z) / poly2sym(a,z);
disp('数字高通滤波器系统传递函数式:');
disp(H);