我试了一个FIR(窗函数法)滤波器,得到的群延迟在通带区间内完全是直线。程序如下:
wp=0.2*pi; ws=0.3*pi;
tr_width=ws-wp
M=ceil(6.6*pi/tr_width)+1
n=[0:1:M-1];
wc=(ws+wp)/2;
hd=ideal_lp(wc,M);
w_ham=(hamming(M))';
h=hd.*w_ham;
[db, mag, pha, grd, w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:1:wp/delta_w+1)));
As=-round(max(db(ws/delta_w+1:1:501)));
%diplay
figure(1);
subplot(2,2,1); stem(n,hd);
title('Ideal Impulse Response');
axis([0 M-1 -0.1 0.3]); ylabel('hd(n)');
subplot(2,2,2); stem(n, w_ham); title('Hamming Window');
axis([0 M-1 0 1.1]); ylabel('w(n)');
subplot(2,2,3); stem(n, h); title('Actual Impulse Response');
axis([0 M-1 -0.1 0.3]); ylabel('h(n)');