next up previous
Next: Wiegner filter Up: Signal Processing Previous: IIR filter design

Minimax FIR filter design

//Low pass filter (length 33, cut-off in [.23,.27], weight 1/.1)
   hn=eqfir(33,[0 .23;.27 .5],[1 0],[1 .1]);
   [hm,fr]=frmag(hn,256);
   plot2d(fr',hm'),
   title_c=['Minimax FIR filter';
 	  'low pass  cut-off in [.23,.27]';
          'length 33'];
   xtitle(title_c);
\fbox{\epsfig{file=foo0_66.eps,width=3.75in}}
//Triangular filter created using remezb
   nc=21;
   ngrid=nc*16;
   fg=.5*(0:(ngrid-1))/(ngrid-1);
   ds(1:ngrid/2)=(0:-1+ngrid/2)*2/(ngrid-2);
   ds(ngrid/2+1:ngrid)=ds(ngrid/2:-1:1);
   wt=ones(fg);
   [an]=remezb(nc,fg,ds,wt);
   hn(1:nc-1)=an(nc:-1:2)/2;
   hn(nc)=an(1);
   hn(nc+1:2*nc-1)=an(2:nc)/2;
   [hm,fr]=frmag(hn,maxi(size(ds)));
   plot2d(fr',hm'),
   xtitle('Remez Triangular filter','frequency','magnitude');
\fbox{\epsfig{file=foo0_67.eps,width=3.75in}}
   plot2d(fr',(hm-ds)'),
   xtitle(' ','frequency','magnitude error');
\fbox{\epsfig{file=foo0_68.eps,width=3.75in}}

Scilab group