First, write out a normalized frequency vector and its corresponding magnitude vector, where the magnitude vector represents the desired amplitude-frequency characteristics. Set the order of the FIR digital filter, or use remezord() to calculate the order of the digital filter, and call remez() to design the FIR digital filter, which exhibits equiripple behavior in the passband. Use freqz() to view the filter’s amplitude-frequency characteristics. %%Example of designing an optimal equiripple FIR digital filter%%remezord();remez();filter();%%%%%%%%%%%clear all;close all;clc;%%%%%%%%%%%%%%%filter_order1=40;%%Frequency domain: corresponding frequency freq1=[0, 0.3, 0.4, 0.6, 0.7, 1];mag1= [1, 1, 0, 0, 1, 1];Len=length( freq1 );figure(1);plot(freq1,mag1,'b');title('Filter Characteristics');hold on;%%%%%%%%%%%%%%%%%%%%firD1=remez(filter_order1,freq1,mag1);[h2,w2]=freqz( firD1 );f2=w2./pi ;plot( f2, abs(h2), 'r' );legend('Expected Characteristics','Designed Characteristics');%%%%%%%%%%%%%%%%%%%%%%order2=80;firD2=remez(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('Expected Characteristics','Designed Characteristics');%%%%%%%%%%%%%%%%%%%%%%fs1=1.0e4 ;%%Frequency sampling interval freq1=[600,1200,1500,1800,2100,2400,2800,3200];%%Level values%%freq1=[0 600;1200,1500;1800,2100;2400,2800;3200 fs1/2];%%Each segment frequency interval expected values mag1= [ 1, 0, 0, 1, 0];kp1=0.01; %%Ripple coefficient ks1=0.1; %%Maximum ripple ripple1=[kp1,ks1,kp1,ks1, ks1];[n1,f1,m1,w1]=remezord(freq1,mag1,ripple1,fs1);firD4=remez(n1,f1,m1,w1);figure(3);plot(f1,m1,'b');hold on;<code>[h4,w4]=freqz( firD4 );f4=w4./pi;plot(f4,abs(h4));figure(4);freqz( firD4 );%%%%%%%%%%%%%%%%%%%%%%%%%Sampling interval deltaTime=1/fs1 ; numD=firD4;denD=1;t1=0:deltaTime:40;Len=length( t1);noise1=2.0*rand(1,Len);noise2=noise1-mean(noise1);x1=5*sin(2*pi*1300*t1)+5*sin(2*pi*2600*t1)+noise2;y2=filter(firD4,1,x1) ;%%sysD=tf(numD,denD,deltaTime);%%[y2,t2]=lsim(sysD,x1,t1);figure(5);plot(t1,y2);grid on;title('Digital Filter Output');y3=fftshift( fft(y2) );y4=fftshift( fft(x1) );figure(6);w4=1./deltaTime*[-Len/2+1:1:Len/2]/Len;plot(w4,abs(y3));grid on;title('Digital Filter Output Spectrum');figure(7);plot(w4,abs(y4));grid on;title('Original Signal Spectrum');disp('End.');