ECE561 DIGITAL SIGNAL PROCESSING
Graphic Equalizer Project
Dr. Russell Hardie
1. The Problem
This problem entails the design and implementation of a digital 5 channel equalizer for audio signals in MATLAB. The input signal can be any .wav file sampled at CD rate (44.1kHz). The reconstruction (D/C) is to be done using the soundsc() command in MATLAB. The equalizer design will have 5 linear phase FIR bandpass filters in parallel, each followed by a gain constant (the band weight). The output of the 5 filters is then summed to form the final output. Note that since these filters are in parallel, the overall impulse response is simply a weighted sum of the individual impulse responses. This, way the input signal can be filtered once by this overall system impulse response.
2. The Filters
The CD sampling rate is 44.1 kHz (T=1/44100 seconds). With this in mind the effective continuous frequency responses of your five filters should have center frequencies ranging from 0 to 22.05kHz. Choose your center frequencies on a logarithmic scale, since this is way in which we perceive frequency. From these center frequencies, determine the appropriate cutoff frequencies for each of the 5 filters. Map these frequencies to the discrete frequency domain using the effective continuous filter relationship (and ).
Use the windowing filter design
method to approximate these ideal discrete-time frequency response filters.
Design the 5 FIRs to have length of at least M=301. Use both a rectangular window and any other window of your
Compute the DFT of each impulse response (samples of the DTFT,) and plot these for each of the filters for your own benefit (not to submit). Make sure these all look reasonable. The rectangular window should have the most ripple, but the sharpest transition band.
Once your impulse responses are in your MATLAB workspace, you are ready to use the MATLAB function I created called 'equalizer'. This function creates a graphic equalizer display and overall effective frequency response. The inputs are a 1D input array (sound data), five impulse response arrays, and the sampling frequency. This function and its necessary related files can be found at:
Copy the entire Equalizer directory. You can use 'runequalizer' to see how to load a .wav file and process it with 'equalizer'. Experiment with 'equalizer' to find a setting you like. Does this seem to match your expectations?
Note the slider values range from 0 to 1. Try setting them to [1, 2/3, 1/3, 2/3, 1] and listen to the output and note the overall effective frequency response. Now, write your own script file to process the signal with the fixed settings above. Here you must manually combine the 5 impulse responses into a single one by performing a weighted average of the individual impulse responses. Then use the 'conv' command to process the signal with this overall impulse response. Use the 'soundsc' command to verify the output sounds like that produced by 'equalizer'.
3. What to Include
You should include the following in your report:
4. Write Up
This may be submitted as an informal project report. Make sure to include all of the results above. All figures should have a figure number and a short caption describing it. All figures must be labeled completely and have proper legends as needed. The body of your text should be contiguous (approximately 1-2 pages). It should refer to each figure by number and explain it clearly. Capitalize the work “figure” when referring to a specific figure by number. You must also integrate the calculations and equations required above into the body of your text (in complete sentences). Enter equations using the equation editor. See the notation convention page.