Sunday, October 16, 2011

FIR WINDOW based (different windows)

%LPF
clc
clear
close all
samp=2000;
n=0:1/samp:1;
x=cos(2*pi*100*n)+cos(2*pi*500*n)+cos(2*pi*700*n);
N=66;
W=.4;
w=window(@blackmanharris,N+1);%blackman harris window
figure
subplot 121, plot(1:N+1,w);
b = fir1(N, W, 'low',w);
[h,o]=freqz(b,1,256);
subplot 122, plot(o/pi, 20*log10(abs(h)));
y=filter(b,1,x);
figure
subplot 211, plot(abs(fft(x)));
subplot 212, plot(abs(fft(y)));



%HPF
clc
clear
close all
samp=2000;
n=0:1/samp:1;
x=cos(2*pi*100*n)+cos(2*pi*500*n)+cos(2*pi*700*n);
N=66;
W=.4;
w=window(@hanning,N+1);%Hanning window
figure
subplot 121, plot(1:N+1,w);
b = fir1(N, W, 'high',w);
[h,o]=freqz(b,1,256);
subplot 122, plot(o/pi, 20*log10(abs(h)));
y=filter(b,1,x);
figure
subplot 211, plot(abs(fft(x)));
subplot 212, plot(abs(fft(y)));




%BPF
clc
clear
close all
samp=2000;
n=0:1/samp:1;
x=cos(2*pi*100*n)+cos(2*pi*500*n)+cos(2*pi*700*n);
N=66;
W=[.4 .6];
w=window(@gausswin,N+1);%Gaussian window
figure
subplot 121, plot(1:N+1,w);
b = fir1(N, W, 'bandpass',w);
[h,o]=freqz(b,1,256);
subplot 122, plot(o/pi, 20*log10(abs(h)));
y=filter(b,1,x);
figure
subplot 211, plot(abs(fft(x)));
subplot 212, plot(abs(fft(y)));




%BSF
clc
clear
close all
samp=2000;
n=0:1/samp:1;
x=cos(2*pi*100*n)+cos(2*pi*500*n)+cos(2*pi*700*n);
N=66;
W=[.4 .6];
w=window(@Hamming,N+1);%Hamming window
figure
subplot 121, plot(1:N+1,w);
b = fir1(N, W, 'stop');%if nothing is given, the DEFAULT WINDOW=Hamming
[h,o]=freqz(b,1,256);
subplot 122, plot(o/pi, 20*log10(abs(h)));
y=filter(b,1,x);
figure
subplot 211, plot(abs(fft(x)));
subplot 212, plot(abs(fft(y)));

No comments: