%三角窗设计数字高通滤波器
%过渡带宽度
%按三角窗计算滤波器的长度
%理想低通滤波器的截止频率
%求 FIR 系统函数系数
%求解频率特性
%实际通带波纹
%实际阻带波纹
figure(13);
Wp=0.5*pi;
Ws=0.4*pi;
deltaw=Wp-Ws;
N0=ceil(6.1*pi/deltaw);
N=N0+mod(N0+1,2);
windows=(triang(N))';
Wc=(Ws+Wp)/2;
tao=(N-1)/2;
n=0:1:N-1;
m=n-tao+eps;
hd=[sin(pi*m)-sin(Wc*m)]./(pi*m);
b=hd.*windows;
[H,w]=freqz(b,[1]);
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
n=0:1:N-1; dw=2*pi/1000;
Rp=-(min(db(Wp/dw+1:1:501)));
As=-round(max(db(1:1:Ws/dw+1)));
subplot(3,2,1);stem(n,hd);
title('理想单位脉冲响应 hd(n)');
subplot(3,2,2);stem(n,windows);
title('三角窗 w(n)');
subplot(3,2,3);stem(n,b);
title('实际单位脉冲响应 hd(n)');
subplot(3,2,4);plot(w/pi,db);
title('幅度响应(dB)');
axis([0,1,-100,10]);
subplot(3,2,5);plot(w/pi,pha);
title('相位响应(dB)');
figure(14);
fs=50;
n=0:1/fs:2;
f=100*sin(2*pi*2*n)+100*sin(2*pi*4*n) +100*sin(2*pi*16*n)+ 100*sin(2*pi*20*n);
y=fftfilt(b,f);
Y=fft(y,64);
k=0:63;wk=2*k/64;
subplot(4,1,1);plot(y);
subplot(4,1,2);stem(y);
subplot(4,1,3);stem(wk,abs(Y));
subplot(4,1,4);stem(wk,angle(Y));