image thumbnail
from kaiser FIR by zhang yong
Including Bandpass,Highpass,Lowpass FIR

L_B_H_kaiser.m
clear all;
wb=0.317*pi;ws=0.272*pi;wa=0.136*pi;As=65;
tr_width=wb-ws; %ɴ
N=(ceil((As-7.95)*2*pi/(14.36*tr_width)+1))/2;    %㿭󴰵ij
disp(['ijΪ',num2str(N)]);   %MatlabʾNֵ
beta=0.1102*(As-8.7);   %㿭󴰵λбֵϵ
n=[0:1:N-1];
disp(['λбΪ',num2str(beta)]);    %Matlabʾλбֵ
w_kai=(kaiser(N,beta))';    %󴰺
hd_L=ideal_lp(wa,N);   %庯,Lowpassúideal_lp
h_L=hd_L.*w_kai;    %ʵӦ=Ӧ*󴰺
[db_L,mag,pha,grd,w]=freqz_m(h_L,[1]);  %ƵӦĸdbΪӦwΪӦƵֵȱʾ

%ͼ
figure(4)
plot(w/pi,db_L);
hold on
hd_B=ideal_lp(wb,N)-ideal_lp(wa,N);   %庯,Bandpass
h_B=hd_B.*w_kai;    
[db_B,mag,pha,grd,w]=freqz_m(h_B,[1]);  
plot(w/pi,db_B,'m');
hold on
wc_H=(wb+ws)/2;
hd_H=ideal_lp(pi,N)-ideal_lp(wc_H,N);   %庯,Highpass
h_H=hd_H.*w_kai;    
[db_H,mag,pha,grd,w]=freqz_m(h_H,[1]); 
plot(w/pi,db_H,':r');
legend('lowpass','bandpass','highpass',1);
title('Ӧ/dB');
axis([0 1 -120 10]);xlabel('ԦΪλƵ');ylabel('ֱ/dB');

Contact us at files@mathworks.com