In this project we will examine several simple audio processing techniques. High quality audio is sampled at 44.1kHz with 16 bits of linear resolution. Due to the need for constant phase delay (linear phase) to avoid distorting the audio content, filtering is commonly done with FIR filters. In this project you willYou may NOT use any routine from the Matlab Signal Processing toolbox (e.g. fir1, fir2, fft, filter, blackman, kaiser, hamming, etc.) for the design, implementation, or analysis of your filters.
- design and build an audio equalizer
- design and build an unit for artificial reverberation, and
- test your designs with provided audio signals.
Design and build in Matlab an 8-band audio equalizer. The frequency range of the bands are:You should be able to adjust each band +/- 10dB linearly on a dB scale. Design a user interface to make band adjustments easy to make. For example my GUI looks like
Band # Low Frequency (Hz) High Frequency (Hz) 1 0 200 2 200 400 3 400 800 4 800 1,600 5 1,600 3,200 6 3,200 6,400 7 6,400 12,800 8 12,800 22,050 Here is my matlab code for generating this GUI, equalizer.m You should design a linear phase FIR filter with no more then 256 taps (this would allow a real-time implementation of a stereo equalizer with a single typical DSP chip). ![]()
The sounds we hear are strongly affected by the acoustics of the listening environment. Acoustic energy injected into a space is reflected from the various boundary surfaces so that the listener experiences the results of a multitude of reflections from different directions, which die away as the energy is gradually absorbed. An anechoic chamber makes listeners uncomfortable because of the complete absence of reverberation, whereas a large cathedral gives a satisfying sensation of overwhelming space because of the very high reverberation energy. The reverberation is a very important aspect of the auditory experience; the difference between an excellent concert hall and a mediocre auditorium is almost exclusively related to reverberation.
The need for artificial reverberation normally arises because of the close microphone placement used in recording the original performance. the use of multitrack recording with each instrument or group of instruments having its own microphone, allows for an adequate separation between the signals and yields an improvement in signal-to-noise ratio, but also prevents the natural room reverberation from being recorded.
Sound emitted in a room will be partially reflected from the room boundaries until all the energy has been absorbed. Because the reflection coefficient of these surfaces is always less than 1, the energy in the acoustic wave is reduced with each reflection. In theory, the reverberation process could be completely described by the echo pattern or impulse response of the room. However, the detailed echo pattern is sufficiently complex and difficult to measure that a complete description is not possible.
However, The perception of the reverberation process does not appear to depend on the detailed fine structure of the process but only on its general properties. Thus we need not simulate a specific reverberation process, but only those physical properties that have important correlation to perception.
As the reverberation process continues, the energy should normally decay exponentially. The time for the energy to decay to -60dB is defined as the reverberation time (RT). This variable is probably one of the most important in determining the perceived character of the acoustic environment. A cathedral, for example, might have a reverberation time of about 5 seconds; for a typical home living room the value is usually less then 1 second. The best concert halls have an RT value around 1.9 seconds. Perceptually, however, it has been found that the sense of reverberation time is essentially determined by the energy decay in the first 160ms. However the entire decay process must exist or the "turning off" of the decay is noticeable.
To characterize the reverberation process we therefore need two variables, the reverberation time (RT) (in seconds) and the reverberation density (RD) (in echos/second)
So to build a reverberation unit we need a box with 2 knobs (sliders). One to vary RT (between 0 and 5 seconds) and the other to vary RD (between 10 and 1000, log scale). These knobs will control parameters of a linear system (matlab program) which will filter the signal with the appropriate impulse response. The system is made up of both an FIR filter section (for the important early echos) and an IIR filter section (for the not so important later sections. ![]()
The order of the FIR filter is dependent on the density of the echos (as set by the knobs) and the filter coefficients on the decay rate. A first order IIR filter can be used for the late echos. the value of the coefficient is dependent on the decay rate. ![]()
Design and built in Matlab and artificial reverberation unit as described above. Provide a user interface for ease of use.
To turn in your report put all of the files for the report (should be 1 html file, several .au files, and several .m files for this project) in a directory in your file system. Make sure I can read the files (if you don't know about AFS file access, check out this FAQ) in the directory and then send me the pathname of this directory (e.g. ~rls/www/ee598D/project1). Do not link up your project page from you main page until after they are graded (you don't want anyone taking your hard work do you). Your files will be copied at 5pm on the due date to my disk space. You can make changes to your report anytime up until then.Your project report should have the following organization
- Title
- Introduction
- Discuss the intended use of the project.
- Include derivation of equations needed to implement the project.
- Discuss how important parameters were chosen.
- Presentation of Results
- Present the results obtained when running the experiments described above.
- Provide links to the necessary .au files
- Discussion of Results
- Discuss the properties of the realization.
- How close does the theory predict what was measured.
- What were the problems encountered in the implementation?
- Can you think of other, possibly better ways, of designing this project.
- Conclusion
- Summarize what was learned in this project.
- Program Listing
- Link to the matlab code which realizes this project.
- Briefly comment on the structure of the program and how it implements the project.
For the Audio Equalizer make sure you provide sample input and output signals for several cases (e.g. high-frequency rolloff, cutout of voice frequencies, etc.). It doesn't have to sound good, just demonstrate the effectiveness of your filtering. Make sure to plot your set of filter coefficients, the ideal response, and the response obtained with your filter coefficients. You will need to record (or obtain off the internet) some music samples. Use music so that there is some energy in all frequency bands (i.e. a recorded voice sample will not work). Sample at 44.1KHz mono.
For the artificial reverberation unit add reverberation to an acoustically dead voice sample (e.g. record your own voice). Adjust RT and RD until you get something that sounds good. Provide the output signal and a plot of the impulse response of the reverberation unit.