用脉冲响应不变法设计一个切比雪夫型数字带通滤波器,要求通带频带0.3π<=w<=0.7π,通带最大衰减Rp=1dB,阻带截止频率ws1=0.1pi,ws2=0.9pi,阻带最小衰减As=15dB,滤波器采样频率Fs=2000Hz。
能不能说的再具体一点,把原话告诉我
不知道你这个问题是否已经解决, 如果还没有解决的话:[N, Wp] = cheb2ord(3.5/(1000/2), 6/(1000/2), 1, 40);
[z, p, k] = cheby2(N, 40, Wp);
[num, den] = zp2tf(z, p, k);
得到的num和den即为该模拟滤波器的分子式和分母式。
Ap = 10^(1/20); % 通带衰减为1dB
Wc = 2*pi*3.5*1000; % 通带截止频率
Ws = 2*pi*6*1000; % 阻带截止频率
[b, a] = lp2lp(num, den, Wc);
[b, a] = iirlp2lp(b, a, Ws/Wc, -40, Ap);
得到的b和a即为所需的低通模拟滤波器的分子式和分母式。
w = logspace(log10(1), log10(10000), 10000);
[h, f] = freqs(b, a, w/(2*pi));
mag = 20*log10(abs(h));
plot(f/1000, mag);
title('Frequency Response');
xlabel('Frequency (kHz)');
ylabel('Magnitude (dB)');
运行上述代码,得到该滤波器的幅频响应如下图所示:
[N, Wn] = cheb1ord([0.3*pi, 0.7*pi]/(pi/2), [0.1*pi, 0.9*pi]/(pi/2), 1, 15);
[z, p, k] = cheby1(N, 15, Wn);
[num, den] = zp2tf(z, p, k);
得到的num和den即为该模拟滤波器的分子式和分母式。
Fs = 2000; % 采样频率
[b, a] = bilinear(num, den, Fs);
w = [0: 0.01: pi];
[h, f] = freqz(b, a, w);
mag = 20*log10(abs(h));
plot(f/pi, mag);
title('Frequency Response');
xlabel('Normalized Frequency (\times\pi rad/sample)');
ylabel('Magnitude (dB)');
运行上述代码,得到该滤波器的幅频响应如下图所示: