EE473 ProjectReport UtkuÖzcan MusaFurkanÇelikkaya
EE473 ProjectReport UtkuÖzcan MusaFurkanÇelikkaya
Project Members:
UTKU ÖZCAN 2020401072
MUSA FURKAN ÇELİKKAYA 2020401234
Problem Statement
Digital audio processing has become more and more important for both consumer and
professional audio applications. The need for a tool that provides professionals and
everyday users control over audio signals has created a demand for a program that
gives the convenience of having control over different frequency bands. Our
motivation for this project stems from creating a user-friendly environment to give
users the flexibility to personalize audio according to their preferences and the
widespread application of equalizers in the music industry. In order to achieve graphic
equalization, a MATLAB-based solution with digital frequency selective filters was
used in the project. Besides the filtering part, our implementation also includes GUI
components with real-time visualization for users to adjust the corresponding gains of
the frequency selective filters to attenuate or amplify the corresponding frequency
bands. Overall, we aimed to give users the flexibility to have control over different
frequency bands for an audio signal using digital signal processing tools.
Introduction
This project presents the design of a graphic equalizer realized in MATLAB,
featuring a GUI and implementing Butterworth filters in a parallel structure. The aim
of the design is to provide an intuitive way for users to experiment with some of the
practical applications of DSP in music software. Vesa Välimäki et al. in (2016)
discuss various equalization methods, pointing out key issues such as the use of
parallel structures and octave-band frequency in implementing filters, which are
extremely important to this work [1]. Orfanidis et al. in (2005) discuss high-order
filter structures, and their work offers important insights into the selection criteria for
filters that will allow for appropriate equalization [2]. Furthermore, Geiner and
Schoessow (1983) discuss the basic design issues of graphic equalizers, thus laying
the basis for efficient filtering and frequency control in our implementation [3]. To
give a test for the performance of our design, a comparison with the integrated
MATLAB function GraphicEQ was performed, providing a standard for both
performance and ease of use [4,5]. With the resilient filter design combined with the
user-friendly interface, this project demonstrates a comprehensive approach to
modern graphic equalization.
Methodology
In order to achieve a graphic equalizer in MATLAB, we needed to use frequency
selective filtering to amplify and attenuate specific frequency ranges. In order to
achieve this, we searched different filter types that are widely used for digital filtering
such as Butterworth filter, Chebyshev filters of type 1 and type 2. However, due to the
frequency domain characteristics of Butterworth filter such as having a maximally flat
response in the passband, introducing minimal phase distortion to audio signals,
having no ripples in the passband and stopband, and having a good separation
between adjacent frequency bands, we chose Butterworth filters as our basis for
frequency band amplification or attenuation.
Having decided to use Butterworth filters as our frequency selective filters, we
created a filter bank by pre-computing the frequency responses of the filters for each
frequency band. These frequency responses are stored in the filter bank and are used
to directly modify the frequency spectrum of the input signal. The filter bank was
implemented using parallel structure in order to have a more precise gain control over
the frequency bands, achieve computational efficiency, and maintain stability with
minimal sensitivity to numerical errors.
To achieve a graphic equalizer using the filter bank and Butterworth bandpass filters,
we created an algorithm that accomplishes filtering in frequency domain. Our
algorithm starts with reading the input file into the code, which is originally a time
domain signal, and taking the Fourier transform of the whole audio signal. After that,
the frequency domain content of the audio signal is multiplied by the pre-computed
Butterworth frequency responses for different frequency ranges. In our
implementation, the gains for each band are chosen by the user and after selection,
these gains are converted from decibels to linear scale (using 10^(gain/20)) and
multiplied with the corresponding frequency responses. Since we are using a parallel
structure in our code, the resultant modified frequency components are added up in
the frequency domain and are taken back to the time domain by taking the inverse
Fourier transform. Finally, in order to prevent clipping for the audio signals so that
they can stay in the playable range and to maintain a consistent volume for the audio,
we normalize the filtered time domain signal by dividing by its maximum absolute
value (peak normalization), which is now ready for demonstration as filtered signal
and playable.
General Structure of Our Graphic Equalizer
Fig. 1.1
Screenshot of GUI program user interface with gains unchanged and plots of our graphic
equalizer
Fig 1.2
For the demonstration, we used three differently designed graphical
equalizers in order to adjust the gains of filters centered at bass (63 Hz),
presence (1000 Hz), and high (15,849 Hz) frequency bands by the same
amount. The first design was made using MATLAB's GraphicEQ function,
which is a good, professional music equalizer design tool (Fig. 1.3). The
second design used masks with values in [0,1] as filters (Fig. 1.4). Although
this configuration cannot be practical for realistic applications, it was
implemented to compare its performance to that of our design. The final
design was our custom implementation, designed as described implementation
part (Fig 1.5). After analyzing the results, MATLAB's graphicEQ provides an
impressively efficient and professional-grade way of audio processing with
well-optimized performance. On the other hand, the optimal sharp filter allows
precise band separation but suffers from ringing artifacts, therefore it is of
limited use in practice. In comparison, our method with the Butterworth filter
achieves smooth transitions between bands and minimal distortion, very close
to the performance of the MATLAB approach but with the added capability of
customization and interactive visualization.
The GUI greatly increased the project's robustness, enabling the users to adjust the
frequency bands with sliders, reset the settings to default, and perform a visual
analysis of the audio signals. Visualization features in both time and frequency
domains have resulted in an interactive, user-friendly system. This custom equalizer
was much more flexible and efficient than the in-built GraphicEQ and mask-based
filters provided by MATLAB and generated results comparable to professional
benchmarks.
While the success rate of the project is high, there are some limitations. The fixed
second-order Butterworth filters used are effective but may not be precise in some
cases. Moreover, the method employed to deal with the high-frequency bands at the
Nyquist frequency was through a high-pass filter that, to some extent, failed in
achieving the best octave partitioning.
Future improvements include the addition of adaptive filter orders, integration into
standalone applications, and advanced features such as presets or machine learning-
based recommendations for automatic equalization. Increasing compatibility and
refining the graphical user interface would go a long way toward improving usability.
Overall, this project demonstrates the effective application of digital signal processing
in audio equalization, offering a customizable and user-friendly system with great
potential for further development.
References
[1] V. Välimäki and J. D. Reiss, “All about audio equalization: ¨Solutions and
frontiers”, Appl. Sci., vol. 6, no. 129/5, May 2016.
[2] S. J. Orfanidis, “High-order digital parametric equalizer design,” J. Audio Eng.
Soc., vol. 53, no. 11, pp. 1026–1046, Nov. 2005.
[3] R. A. Geiner and M. Schoessow, “Design aspects of graphic equalizers,” J. Audio
Eng. Soc., vol. 31, no. 6, pp. 394–407, Jun. 1983.
https://www.mathworks.com/help/audio/ref/graphiceq-system-object.html [4]
https://www.mathworks.com/help/audio/ug/graphic-equalization.html [5]