from Filter Implementation by Farhat Masood
Implementation of Filters.

bandpassfilt.m
clear all;
display('Press Enter before recording');
%pause
%ab=wavrecord(50000,11025,1);
%pause;
%figure
%plot(ab);
%pause

%*******************************************************
%                 BAND PASS FILTER 
%*******************************************************
ws1=0.25*pi; wp1=0.35*pi;
ws2=0.65*pi; wp2=0.6*pi;
As=40; %In desibels
tr_width=min((wp1-ws1),(ws2-wp2));
M=ceil((As-7.95)/(14.36*tr_width/(2*pi))+1)+1;
n=[0:1:M-1];
beta=0.5842*(As-21)^0.4+0.07886*(As-21);

wc1=(ws1+wp1)/2; wc2=(wp2+ws2)/2;
hd=ideal_lp(wc2,M)-ideal_lp(wc1,M);
w_kaiser=(kaiser(M,beta))';
h=hd.*w_kaiser;
[db,mag,w]=freqz_k(h,[1]);
figure
subplot(221)
stem(n,hd),title('Ideal Low Pass Impulse Response');grid
axis([0 M-1 -0.1 0.3]),xlabel('n'),ylabel('hd(n)');
pause
subplot(222)
stem(n,w_kaiser),title('Kaiser Windows');grid
axis([-1 M 0 1.1]),xlabel('n'),ylabel('w(n)');
pause
subplot(223)
stem(n,h),title('Actual Impulse Response  (Ideal low Pass h(n) * Kaiser Window)');grid
axis([0 M-1 -0.1 0.3]),xlabel('n'),ylabel('h(n)');
pause
figure
clf
plot(w/pi,db),title('Magnitude Response in db');grid
%axis([0 1 -0.1 1.1]),xlabel('Frequency in PI'),ylabel('Magnitude Response of Filter');
%*****************************************************************************************

%y=conv(ab,h);

%pause
%plot(y);
%grid;
%wavplay(y);

Contact us at files@mathworks.com