FIR Filter Example: Difference between revisions

From Class Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
h_m = { T } \int_{-{1\over 4T}}^{{1\over 4T}} H(f)e^{j2\pi m f T}\,df
h_m = { T } \int_{-{1\over 4T}}^{{1\over 4T}} H(f)e^{j2\pi m f T}\,df
</math>
</math>
where H(f) is the desired frequency response. See the notes at for October 31, 2005. As an example of this filter we will make a Matlab script that will computer the frequency response for a low pass filter having a cutoff frequency of 1/(4T), and using 2M+1 coefficients.
where H(f) is the desired frequency response. See the notes at for October 31, 2005. As an example of this filter we will make a Matlab script that will computer the frequency response for a low pass filter having a cutoff frequency of 1/(4T), and using 2M+1 coefficients. Note that it is periodic with period 1/T. This is the case with all digital filters.


Here is the plot the Matlab code produces:
Here is the plot the Matlab code produces:

Revision as of 14:50, 9 November 2005

The filter coefficients are given by: where H(f) is the desired frequency response. See the notes at for October 31, 2005. As an example of this filter we will make a Matlab script that will computer the frequency response for a low pass filter having a cutoff frequency of 1/(4T), and using 2M+1 coefficients. Note that it is periodic with period 1/T. This is the case with all digital filters.

Here is the plot the Matlab code produces:

Frequency Response Pict.png

The Matlab code to see the frequency response is given below:

% This shows how to find the frequency response for an FIR filter with cutoff 1/4/T and 2M+1 coefficients.

clf;

sum=0;

T=1;

fs=1/1000/T;

f=-2/T:fs:2/T

M=100;

for m=-M:M;

if m==0

h=1/2;

else

h=sin(pi*m/2)/(pi*m);

end

sum=sum+h*exp(-i*2*pi*f*m*T);

end

plot(f,20*log10(abs(sum)))

title('Frequency Response of Our FIR Filter')

xlabel('Frequency (1/T)')

ylabel('Response (db)')

text(-1.5,-5,'M = 100')

% End of Matlab code.