Fir Filter Using Rectangular/Boxcar Window
Fir Filter Using Rectangular/Boxcar Window
Fir Filter Using Rectangular/Boxcar Window
AIM: To design an FIR filter using Rectangular window technique using MATLAB functions.
In the design of FIR filters using any window technique, the order can be calculated using the formula given by
where p is the passband ripple, s is the stopband ripple, fp is the passband frequency, fs is the stopband frequency and Fs is the sampling frequency.
BOXCAR Boxcar window: BOXCAR still works but maybe removed in the future. Use RECTWIN instead.
FIR1 FIR filter design using the window method. B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter and returns the filter coefficients in length N+1 vector B. The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0 corresponding to half the sample rate. The filter B is real and has linear phase. The normalized gain of the filter at Wn is -6 dB.
B = FIR1(N,Wn,'high') designs an N'th order highpass filter.You can also use B = FIR1(N,Wn,'low') to design a lowpass filter. If Wn is a two-element vector, Wn = [W1 W2], FIR1 returns an order N bandpass filter with passband W1 < W < W2. You can also specify B = FIR1(N,Wn,'bandpass'). If Wn = [W1 W2], B = FIR1(N,Wn,'stop') will design a bandstop filter.
CEIL Round towards plus infinity. CEIL(X) rounds the elements of X to the nearest integers towards infinity.
MATLAB CODE:
%program for the design of FIR Low pass filter using boxcar window method clc; clear all; close all; format long rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f; n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=boxcar(n1); %LOW PASS FILTER b=fir1(n,wp,y);%Window-based finite impulse response filter design [h,o]=freqz(b,1,256);%Frequency response of filter m=20*log10(abs(h)); an=angle(h); subplot(2,1,1),plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR LOW PASS MAGNITUDE RESPONSE-BOXCAR WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR LOW PASS PHASE RESPONSE-BOXCAR WINDOW METHOD');
SAMPLE INPUTS: Enter the passband Enter the stopband Enter the passband Enter the stopband Enter the sampling 2
%program for the design of FIR High pass filter using boxcar window method clc; clear all; close all; format long rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f; n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=boxcar(n1); %HIGH PASS FILTER b=fir1(n,wp,'high',y); [h,o]=freqz(b,1,256); m=20*log10(abs(h)); an=angle(h); subplot(2,1,1); plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR HIGH PASS MAGNITUDE RESPONSE-BOXCAR WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR HIGH PASS PHASE RESPONSE-BOXCAR WINDOW METHOD');
SAMPLE INPUTS: Enter the passband Enter the stopband Enter the passband Enter the stopband Enter the sampling
AIM: To design an FIR filter using Blackman window technique using MATLAB functions.
In the design of FIR filters using any window technique, the order can be calculated using the formula given by
where p is the passband ripple, s is the stopband ripple, fp is the passband frequency, fs is the stopband frequency and Fs is the sampling frequency.
BLACKMAN Blackman window: BLACKMAN(N) returns the N-point symmetric Blackman window in a column vector. BLACKMAN(N,SFLAG) generates the N-point Blackman window using SFLAG window sampling. SFLAG may be either 'symmetric' or 'periodic'. By default, a symmetric window is returned.
FIR1 FIR filter design using the window method: B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter and returns the filter coefficients in length N+1 vector B. The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0 corresponding to half the sample rate. The filter B is real and has linear phase. The normalized gain of the filter at Wn is -6 dB. B = FIR1(N,Wn,'high') designs an N'th order highpass filter.You can also use B = FIR1(N,Wn,'low') to design a lowpass filter. If Wn is a two-element vector, Wn = [W1 W2], FIR1 returns an order N bandpass filter with passband W1 < W < W2. You can also specify B = FIR1(N,Wn,'bandpass'). If Wn = [W1 W2], B = FIR1(N,Wn,'stop') will design a bandstop filter.
CEIL Round towards plus infinity: CEIL(X) rounds the elements of X to the nearest integers towards infinity. MATLAB CODE %program for the design of FIR Low pass using blackman window clc; clear all; close all; rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f;
n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=blackman(n1); %LOW PASS FILTER b=fir1(n,wp,y); [h,o]=freqz(b,1,256); m=20*log10(abs(h)); an=angle(h); subplot(2,1,1); plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR LOW PASS MAGNITUDE RESPONSE-BLACKMAN WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR LOW PASS PHASE RESPONSE-BLACKMAN WINDOW METHOD');
SAMPLE INPUTS: Enter the passband Enter the stopband Enter the passband Enter the stopband Enter the sampling
%program for the design of FIR High pass filter using blackman window clc; clear all; close all; rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f; n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=blackman(n1); %HIGH PASS FILTER b=fir1(n,wp,'high',y); [h,o]=freqz(b,1,256); m=20*log10(abs(h)); an=angle(h); subplot(2,1,1); plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR HIGH PASS MAGNITUDE RESPONSE-BLACKMAN WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR HIGH PASS PHASE RESPONSE-BLACKMAN WINDOW METHOD');
SAMPLE INPUTS: Enter the passband Enter the stopband Enter the passband Enter the stopband Enter the sampling
AIM: To design an FIR filter using Hamming window technique using MATLAB functions.
In the design of FIR filters using any window technique, the order can be calculated using the formula given by
where p is the passband ripple, s is the stopband ripple, fp is the passband frequency, fs is the stopband frequency and Fs is the sampling frequency.
HAMMING Hamming window: HAMMING(N) returns the N-point symmetric Hamming window in a column vector. HAMMING(N,SFLAG) generates the N-point Hamming window using SFLAG window sampling. SFLAG may be either 'symmetric' or 'periodic'. By default, a symmetric window is returned.
B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter and returns the filter coefficients in length N+1 vector B. The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0 corresponding to half the sample rate. The filter B is real and has linear phase. The normalized gain of the filter at Wn is -6 dB. B = FIR1(N,Wn,'high') designs an N'th order highpass filter.You can also use B = FIR1(N,Wn,'low') to design a lowpass filter. If Wn is a two-element vector, Wn = [W1 W2], FIR1 returns an order N bandpass filter with passband W1 < W < W2. You can also specify B = FIR1(N,Wn,'bandpass'). If Wn = [W1 W2], B = FIR1(N,Wn,'stop') will design a bandstop filter.
CEIL Round towards plus infinity: CEIL(X) rounds the elements of X to the nearest integers towards infinity.
MATLAB CODE: %program for the design of FIR Low pass filter using Hamming window clc; clear all; close all; rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f; n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=hamming(n1); %LOW PASS FILTER b=fir1(n,wp,y); [h,o]=freqz(b,1,256); m=20*log10(abs(h)); an=angle(h); subplot(2,1,1); plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR LOW PASS MAGNITUDE RESPONSE-HAMMING WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR LOW PASS PHASE RESPONSE-HAMMING WINDOW METHOD');
SAMPLE INPUTS: Enter the passband ripple.02 Enter the stopband ripple.01 7
Enter the passband frequency1200 Enter the stopband frequency1700 Enter the sampling frequency9000
%program for the design of FIR High pass filter using Hamming window clc; clear all; close all; rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f; n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=hamming(n1); %HIGH PASS FILTER b=fir1(n,wp,'high',y); [h,o]=freqz(b,1,256); m=20*log10(abs(h)); an=angle(h); subplot(2,1,1); plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR HIGH PASS MAGNITUDE RESPONSE-HAMMING WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR HIGH PASS PHASE RESPONSE-HAMMING WINDOW METHOD');
SAMPLE INPUTS: Enter the passband Enter the stopband Enter the passband Enter the stopband Enter the sampling
AIM: To design an FIR filter using Kaiser window technique using MATLAB functions.
In the design of FIR filters using any window technique, the order can be calculated using the formula given by
where p is the passband ripple, s is the stopband ripple, fp is the passband frequency, fs is the stopband frequency and Fs is the sampling frequency.
KAISER Kaiser window: W = KAISER(N) returns an N-point Kaiser window in the column vector W. W = KAISER(N,BTA) returns the BETA-valued N-point Kaiser window. If omitted, BTA is set to 0.500.
FIR1 FIR filter design using the window method: B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter and returns the filter coefficients in length N+1 vector B. The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0 corresponding to half the sample rate. The filter B is real and has linear phase. The normalized gain of the filter at Wn is -6 dB. B = FIR1(N,Wn,'high') designs an N'th order highpass filter.You can also use B = FIR1(N,Wn,'low') to design a lowpass filter. If Wn is a two-element vector, Wn = [W1 W2], FIR1 returns an order N bandpass filter with passband W1 < W < W2. You can also specify B = FIR1(N,Wn,'bandpass'). If Wn = [W1 W2], B = FIR1(N,Wn,'stop') will design a bandstop filter.
CEIL Round towards plus infinity: CEIL(X) rounds the elements of X to the nearest integers towards infinity. MATLAB CODE %program for the design of FIR Low pass filter using Kaiser window clc; clear all; close all; rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f;
n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=kaiser(n1); %LOW PASS FILTER b=fir1(n,wp,y); [h,o]=freqz(b,1,256); m=20*log10(abs(h)); an=angle(h); subplot(2,1,1); plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR LOW PASS MAGNITUDE RESPONSE-KAISER WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR LOW PASS PHASE RESPONSE-KAISER WINDOW METHOD');
SAMPLE INPUTS: Enter the passband Enter the stopband Enter the passband Enter the stopband Enter the sampling
%program for the design of FIR High pass filter using Kaiser window clc; clear all; close all; rp=input('Enter the passband ripple'); rs=input('Enter the stopband ripple'); fp=input('Enter the passband frequency'); fs=input('Enter the stopband frequency'); f=input('Enter the sampling frequency'); wp=2*fp/f; ws=2*fs/f; num=-20*log10(sqrt(rp*rs))-13; dem=14.6*(fs-fp)/f; n=ceil(num/dem); n1=n+1; if(rem(n,2)~=0) n1=n; n=n-1; end y=kaiser(n1); %LOW PASS FILTER b=fir1(n,wp,'high',y); [h,o]=freqz(b,1,256); m=20*log10(abs(h)); an=angle(h); subplot(2,1,1); plot(o/pi,m); xlabel('Normalised frequency--->'); ylabel('Gain in dB--->'); title('FIR HIGH PASS MAGNITUDE RESPONSE-KAISER WINDOW METHOD'); subplot(2,1,2); plot(o/pi,an); ylabel('Phase in radians--->'); xlabel('Normalised frequency--->'); title('FIR HIGH PHASE RESPONSE-KAISER WINDOW METHOD');
10
SAMPLE INPUTS: Enter the passband Enter the stopband Enter the passband Enter the stopband Enter the sampling
11