FIR Filter Example: Difference between revisions
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. |
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. |
||
The Matlab code to see the frequency response is given below: |
The Matlab code to see the frequency response is given below: |
Revision as of 14:35, 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.
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.