Designing an FIR Digital Filter with Desired Amplitude-Frequency Characteristics Using MATLAB

First, write out a normalized frequency vector and its corresponding amplitude vector, where the amplitude vector represents the desired amplitude-frequency characteristics data. Set the order of the FIR digital filter, call fir2() to design the FIR digital filter, and use freqz() to view the filter’s amplitude-frequency characteristics. %%FIR digital filter meets expected frequency characteristics%%

fir2();freqz();

%%%%%%%%%%%

clear all;close all;clc;

%%%%%%%%%%%%%%%

filter_order1=40;%%frequency space
freq1=0:0.01:1;
Len=length(freq1);
mag1=zeros(1,Len);
mag1(floor(0.3*Len):floor(0.5*Len))=1.0;
mag1(floor(0.7*Len):floor(0.8*Len))=1.0;
figure(1);plot(freq1,mag1,'b');title('Filter Characteristics');hold on;

%%%%%%%%%%%%%%%%%%%%

% Digital filter
firD1=fir2(filter_order1,freq1,mag1);[h2,w2]=freqz(firD1);f2=w2./pi;
plot(f2, abs(h2), 'r');legend('Desired Characteristics','Designed Characteristics');

%%%%%%%%%%%%%%%%%%%%%%

filter_order2=80;firD2=fir2(filter_order2,freq1,mag1);[h3,w3]=freqz(firD2);f3=w3./pi;
figure(2);plot(freq1, mag1, 'b');title('Filter Characteristics');hold on;plot(f3, abs(h3), 'r');legend('Desired Characteristics','Designed Characteristics');
disp('Finished.');

Leave a Comment