EE 643 Project #4 Spring 1999

Assigned: 5/19/99     Due: 5/26/99

## FIR Filter Design

This project will investigate three methods for FIR filter design --- windowing, frequency sampling, and the Parks-McClellan algorithm.

Exercises

1. Design a length-23 linear-phase FIR lowpass filter to approximate an ideal response with a passband edge of . Design a filter using each of the following windows:
• rectangular (boxcar)
• triangular (triang)
• Hanning (hanning)
• Hamming (hamming)
• Blackman (blackman)

Plot the impulse response, magnitude response, and zero-pole locations of the five filters. (Use `freqz` and `zplane` for magnitude response and pole-zero plots.) Compare the characteristics of the magnitude response.

2. Design a length-23 linear-phase FIR lowpass filter using a Kaiser window with = 4, 6, and 9. Plot the impulse response, magnitude response, and zero-pole locations. Compare the characteristics of the magnitude response with each other and with the filters from the first exercise. How does the trade-off of transition bandwidth and overshoot vary with ?

3. Use frequency sampling to design a length-23 FIR lowpass filter with cutoff . Determine the desired DFT sample values from the specified cutoff and then take the inverse FFT (`ifft`) file:/opt/matlab.v5.3/help/techdoc/ref/ifft.html. Keep in mind that the DFT coefficients must be symmetric to yield a real impulse response. For example, a cutoff of and a length of 9 would yield a DFT coefficient vector [1 1 1 0 0 0 0 1 1] corresponding to the frequency values 2*pi*[0 1/9 2/9 3/9 4/9 5/9 6/9 7/9 8/9]. Plot the impulse response, magnitude response, and zero-pole locations. Compare the characteristics of the magnitude response to the other designs.

4. Design an optimal 23-point lowpass FIR filter using the Parks-McClellan algorithm (remez). Use a passband cutoff of and a stopband cutoff of . Plot the impulse response, magnitude response, and zero-pole locations. Compare the characteristics of the magnitude response to the other designs.

5. Design a 12th-order elliptic lowpass filter with a passband ripple of 1 dB, a passband cutoff of , a stopband cutoff of , and the largest possible stopband attenuation. (Use ellipord by trial and error to determine this.) Compare the magnitude response to the Parks-McClellan filter. Note that a 12th-order IIR filter requires approximately the same number of multiplies per output point as a 23rd order FIR filter.

6. Read in the file /opt/demo/audio/doorbell.au using `auread`. Using the `fft` function, determine the frequencies of the upper and lower tone of the doorbell. Using trial-and-error, design a filter using any of the FIR techniques above such that the lower tone is attenuated no more than 3 dB while the upper tone is attenuated as much as possible. Describe how you designed your filter. `auwrite` the resulting signal as the file newdoor.au. Email the file to me as an attachment. The best result gets a gold star and a certificate suitable for framing. ;-)

Write a short report describing your findings. The report should contain a concise description of your results. Include listings of your function. Be sure to answer all questions. You are not expected to include in the report all plots which you were required to do; instead, you should summarize in your report the important features of the unincluded plots.

For further help: