SLIFER

Overview

Slifer is a MATLAB-based software tool aimed at hand-crafted design of FIR digital filters which arise from the frequency-sampling technique [1, p.112]. Such filters utilize the inverse DFT of N ideal filter samples to obtain N time-domain coeffients which define the FIR filter (in Type 1 frequency sampling) or an offset version of the usual DFT frequency grid (where the offset amounts to half the grid spacing) for Type 2 frequency sampling. Thus, Type 1 has a dc sample, while Type 2 straddles dc. Another factor of enormous practical importance is whether N is even or odd.

Filters obtained in Slifer can be substantial modifications of their initial frequency-sampling counterparts. They can result from arbitrary manual interventions in the time-domain or more disciplined time-domain modifications, such as standard windowing. Frequency-domain interventions range from simple altitude departures from the ideal target gain (always shown in red) to complete grid-free design through Vandermonde matrix solution for arbitrary frequency placement and altitude of the N frequency-domain hard constraint points. Intermediate modes permit locking to a non-equispaced frequency grid or tracking the red ideal target at arbitrary frequency locations.

Moreover, design by manipulation of zero locations in the Pole-Zero Pattern can be effected.

Linear-phase and nonlinear-phase filters (including fractional-delayed versions of traditional linear-phase conditions) can be designed. In addition, complex-valued filter coefficients can readily be obtained.

 

Filters which have been designed using other starting strategies (such as the popular equiripple approach [1]) can easily be imported, and subsequently hand-nudged to take on some alternative desirable behaviour. Although in principle any size filter can be designed, Slifer is at its most effective when N is below a hundred or so.

Main Visible Components of the GIU

Figure 1 shows Slifer at startup (simply type slifer in the MATLAB command line):


 

The largest GUI object, which always retains its identity, is the lower-left axes plot of the current filter gain. This display has by default linear scaling, as asserted by the popup GUI object located at the upper right corner of the plot. Scaling in dB is also selectable from that popup (in which case two editable dB scale delimiters appear at the left side of the gain plot).

 

Another editable control pertinent to the kind of filter under display is situated along the bottom left area of the gain plot. For a default lowpass filter (LPF) nu1 is the normalized frequency of the left edge of the transition band, while nu2 is its right edge (a linear gain rundown from passband to stopband is assumed).

  The stemplot on the smaller axes above shows the filter impulse response sequence (that is, the set of FIR filter coefficients - b in MATLAB terminology). The impulse response depiction on this narrow upper axes can, however, be replaced by any cameo plot brought onto the small cameo axes located midway down on the right edge of the GUI. This is done by selecting among various choices on the nearby cameo popup list (initially Error Plot) and clicking in the cameo plot zone.

 

The prevailing Pole-Zero Plot (PZP) always resides in the lower right corner of Slifer’sGUI.

 The default impulse response plot can be modified through windowing (enacted via the upper-left popup menu object). A viewing-only modification happens when the Real Part popup is surrendered in favour of Imaginary Part (which is by default all zeros for our real-filter startpoint).

 

Remaining Visible Components of the GUI

So far we have not talked about the cluster of GUI objects in the upper right corner of Slifer (which we can loosely denote time-domain parameter controls), or of that cluster at the right edge, separating the cameo plot from the PZP which forms the frequency-domain parameter control cluster.

 

Taking the first of these clusters, there is at the top a popup menu setting the startpoint for our design as Type 1 (default) or Type 2. Below that is a popup with a large range of standard selections named with very short identifiers. Most of these are reasonably self-evident, particularly when seen in conjunction with the red target ideal gain line that activates with each selection. See Section 7 below for a fuller description of these mnemonics. Two of these choices permit adoption of non-standards: one allows importation of any arbitrary ideal target line shape; the other takes in any arbitrary dB design template. Any modification which takes place can be re-set; the two Set buttons take the design back to the Type and filter kind originally chosen at the launch of the design.

 The means of modification might be to type in a specific value or values for the time-domain coefficients. The Coeff, k edit box focuses attention on a particular coefficient index (note that k starts at 0 and goes to N-1). The Value edit box displays the current coefficient value (corresponding to the Coeff, k index) and allows that to be changed by keyboard.

 

The number of coefficients, N, can be chosen in the edit box. Single steps in this valye are often instructive, and can be seen by button clicking +1 or -1.

 Finally, Fractional Delay (usually set to 0) can be changed by edit box or by the associated slider. In this manner, conventional linear-phase filter can effectively be interpolated to give non-integer/non-integer-plus-half values which are so useful in many applications [2]-[4]. The extra fractional delay (over and above the customary alpha=(N-1)/2) can be affixed to any filter we design in Slifer.

 

The second cluster of controls permits frequency-domain specification of a Gain value through typing. Here the indexing is done by m. The prevailing m numbering is best discovered by clicking on a pearl (that is, a circle in the gain plot and moving it). [Note that potentially confusing crossovers in m positioning are allowed in Slifer]. Desired values for the corresponding Gain values may be typed as inputs.

Standard Filter Mnemonics

Differentiator

Root Nyquist filters

Raised Cosine filters

Lowpass filters

Highpass

Bandpass

Bandstop

Hilbert

Vee filters

Square Root filters

References

[1]  Rabiner, L. R. and B. Gold, Theory and Application of Digital Signal Processing, Englewood Cliffs, N.J.: Prentice-Hall, 1975.

[2]  Cain, G.D., N. P. Murphy and A. Tarczynski,Evaluation of several variable FIR fractional-sample delay filters, Proc. ICASSP 94, Adelaide, Australia, vol. 3, pp.621-624, 19-22 April 1994.

[3]  Laakso, T.I., et al, Splitting the unit delay tools for fractional delay filter design, IEEE Signal Processing Magazine, vol. 13, no. 1, pp. 30-60, January 1996.

[4]  Hermanowicz, E., M. Rojewski, G. D. Cain and A. Tarczynski, Special discrete-time filters having fractional delay, Signal Processing, vol. 67, no.3, pp. 279-289, June 1998.