Fpe = 0.2; Fse = 0.22;
eps_p = 0.01; As = 40;
eps_s = 10^(As/-20);
if (eps_s > eps_p)
eps_s = eps_p;
As = -20*log10(eps_s);
end;
DeltaF = Fse - Fpe;
M=(As-8)/(2.285*(2*pi*DeltaF));
M=ceil(M);
w = kaiserwindow(M,As);
Fc = (Fse+Fpe)/2;
n = 0:(M-1);
hi = 2*Fc*sinc(2*Fc*(n - (M-1)/2));
hw = w.*hi;
[Hw,F] = iirfreqresp(hw);
figure,plot(F,abs(Hw)),title('example 1');
Hstop = Hw(abs(F)>=Fse);
fprintf(1,'Example 1 results...\n');
fprintf(1,'Number of coefficients used = %4d\n',M);
fprintf(1,'Min Stopband Attenuation (dB)=%8.5f\n',min(-20*log10(abs(Hstop)+eps)) );
fprintf(1,'Target was=%8.5f (dB)\n',As);
Hpass = Hw(abs(F)<=Fpe);
fprintf(1,'Max Passband Variation =%8.5f\n',max(abs(abs(Hpass)-1)) );
fprintf(1,'Target was=%8.5f (dB)\n',eps_p);
Fpe=100/400; Fse=120/400;
eps_p = 0.01; As = 60;
eps_s = 10^(As/-20);
if (eps_s > eps_p)
eps_s = eps_p;
As = -20*log10(eps_s);
end;
DeltaF = Fse - Fpe;
M=(As-8)/(2.285*(2*pi*DeltaF));
M=ceil(M);
M=M+1;
w = kaiserwindow(M,As);
Fc = (Fse+Fpe)/2;
n = 0:(M-1);
hi = 2*Fc*sinc(2*Fc*(n - (M-1)/2));
hw = w.*hi;
[Hw,F] = iirfreqresp(hw);
figure,plot(F,abs(Hw)),title('example 2');
Hstop = Hw(abs(F)>=Fse);
fprintf(1,'Example 2 results...\n');
fprintf(1,'Number of coefficients used = %4d\n',M);
fprintf(1,'Min Stopband Attenuation (dB)=%8.5f\n',min(-20*log10(abs(Hstop)+eps)) );
fprintf(1,'Target was=%8.5f (dB)\n',As);
Hpass = Hw(abs(F)<=Fpe);
fprintf(1,'Max Passband Variation =%8.5f\n',max(abs(abs(Hpass)-1)) );
fprintf(1,'Target was=%8.5f (dB)\n',eps_p);