0% found this document useful (0 votes)
12 views9 pages

EE473 ProjectReport UtkuÖzcan MusaFurkanÇelikkaya

The project involves the design and implementation of a graphic equalizer using MATLAB, focusing on user-friendly audio signal control through digital signal processing techniques. It utilizes Butterworth filters for frequency selective filtering and features a GUI for real-time visualization and adjustment of frequency gains. The project successfully demonstrates a customizable and efficient audio equalization system, with potential for future enhancements and applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views9 pages

EE473 ProjectReport UtkuÖzcan MusaFurkanÇelikkaya

The project involves the design and implementation of a graphic equalizer using MATLAB, focusing on user-friendly audio signal control through digital signal processing techniques. It utilizes Butterworth filters for frequency selective filtering and features a GUI for real-time visualization and adjustment of frequency gains. The project successfully demonstrates a customizable and efficient audio equalization system, with potential for future enhancements and applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 9

PROJECT TITLE

Implementing a graphic equalizer for music

Project Members:
UTKU ÖZCAN 2020401072
MUSA FURKAN ÇELİKKAYA 2020401234

Project Members responsibilities:


Utku Özcan
 Design and implementation for frequency domain filtering algorithm using
frequency selective Butterworth filters and implementation of the main
algorithm in MATLAB
Musa Furkan Çelikkaya
 Design and implementation of the GUI in MATLAB, and review of the
literature for the project design and implementation
MATLAB programming language we used and built-in functions such as fft and ifft
for calculation while implementing the project. We used GraphicEQ built-in function
in a demonstration of the graphic equalizer with built-in function [4,5].

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

Implementation and Simulation Results


• In our code, we tried to implement the desired graphic equalizer algorithm
using the built-in functions of MATLAB and our digital signal processing
algorithm providing a GUI for controlling the gains of the frequency selective
filters. Our code begins with defining GUI sliders that range between -20 to 20
dBs to be used as gains of the filters. We have defined 10 different frequency
ranges and matched these frequency ranges with corresponding filter gains.
These frequency ranges were named as: 'Sub-Bass', 'Bass', 'Low-Mids', 'Mid',
'Upper-Mids','Presence', 'Brilliance', 'Low-High', 'Mid-High', 'High';
respectively. The range of 20-20,000 Hz was chosen for filtering since this
frequency range is the typical audible frequency interval for humans in
general. In order to divide this range into partitions, octave ranges were used
since our ears naturally perceive frequency changes logarithmically and octave
ranges provide a consistent bandwidth relative to its center frequency. In this
way, octave ranges match how we perceive frequency intervals. After
choosing octave ranging for partitioning, the chosen frequency bands are: 22-
45, 45-89, 89-178, 178-355, 355-708, 708-1413, 1413-2818, 2818-5623,
5623-11220, 11220-22387 Hz; respectively. Our implementation continued
with taking the audio signal as input and converting it to mono if the audio is
stereo. Since it is needed to filter the signal in frequency domain signals one
by one, we created a filter bank function to store the frequency response of
digital filters chosen. In the filter bank, 10 Butterworth filters were
implemented using MATLAB’s ‘butter’ function. This function takes input as
filter order, frequency band and filter type. Since we have different frequency
intervals to be attenuated or amplified, we used bandpass filters for different
ranges. Besides the last band, which is 11220-22387 Hz, we used 9
Butterworth bandpass filters with a filter order of 2. For the last frequency
band, we have encountered a problem since the upper corner of the frequency
band, 22387 Hz, is bigger than half of the sampling rate, which is 22050 Hz.
To resolve this issue, there was 2 options for us, either we need to set the
upper corner frequency of the last band as Fs/2, or we can use a high pass
filter centered at 15849 Hz. In order not to disrupt the octave ranges, we tried
the second method which is using a high pass filter for the last band. After
experimenting with this version, we observed that almost no error has been
introduced compared to using 10 different bandpass filters, so we decided to
continue with this algorithm. In the end, our filter bank has 9 bandpass
Butterworth filters of order 2 and a high pass filter for the last frequency range
of order 2. In the final step of our implementation, we took the Fourier
transform of the input image, and using the filter frequency responses obtained
from filter bank and gains obtained from the users’ preferences (in dB,
afterwards converted to linear scale by calculating 10^(gain/20)), we filter the
same audio signal 10 times with 10 filters and their corresponding gains. The
filtered signals were then added up and converted back to time domain.
Finally, we normalized the output signal to prevent the clipping effect and
maintain a consistent volume for audio. In addition to graphic equalization
algorithm, we created a GUI system for the users to interact with. Our graphic
equalizer needs gains in dB, which are taken from the users by sliders ranging
from -20 to 20 dB. The users can also reset all the gains by clicking ‘Reset
EQ’ button at the left bottom of the GUI figure. We also provided an option to
play-stop the audio signal to listen to the filtered signal and observe the
differences between the signal after filtering. On the right side of our GUI
figure, we created 5 different plots for our graphic equalizer. In this part, we
created the plots of original signal in time domain, frequency spectrum of the
original signal, equalized signal in time domain, frequency spectrum of the
equalized signal, and to observe the overall effect of the filters without input
signal, we created the plot of overall frequency spectrum of the filters in the
filter bank.

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.

Screenshot of graphic equalizer with GraphicEQ


Fig 1.3
Screenshot of graphic equalizer with masks valued with [0,1]
Fig 1.4

Screenshot of graphic equalizer with our design


Fig 1.5
 Finally, we demoed three different cases in our graphic equalizer:
 We increased the gain of the filter bands centered at Sub-Bass (32 Hz) and
Bass (63 Hz) by 20 dB in our equalizer (Fig 1.6). By doing this, the amplitude
of the music signal in these frequencies will increase significantly in the
equalized signal-time domain plot and the magnitude at these frequency bands
will rise in the frequency spectrum plot.
Screenshot of our graphic equalizer in case 1
Fig 1.6
 We increased the gain of the filter bands centered at Low-High (3981 Hz),
Mid-High (7943 Hz), and High (15849 Hz) by 20 dB in our equalizer (Fig
1.7). By doing this, the amplitude of the music signal in these frequencies will
increase significantly in the equalized signal-time domain plot and the
magnitude at these frequency bands will rise in the frequency spectrum plot.

Screenshot of our graphic equalizer in case 2


Fig 1.7
 We increased the gain of the filter bands centered at Mid (251 Hz), Upper-
Mids (501 Hz), Presence (1000 Hz), Brillance (1995 Hz), and Low-High
(3381 Hz) by 20 or -20 dB in our equalizer (Fig 1.8). By doing this, the
amplitude of the music signal in these frequencies will change significantly in
the equalized signal-time domain plot and the magnitude at these frequency
bands will change in the frequency spectrum plot.

Screenshot of our equalizer in case 3


Fig 1.8
Conclusion
In a nutshell, the present project has succeeded in implementing a design for a graphic
equalizer using MATLAB, one that combines digital signal processing techniques
with an emphasis on being practically feasible. To begin with, the foundation of the
system was achieved by using Butterworth filters because of their ability to show a
smooth frequency response and their very minimal distortion characteristics. Parallel
architecture in the filters allows for computational efficiency and stability, and
segmentation of the frequency spectrum into octave bands allows for intuitive and
user-centered sound modifications, faithful to human auditory perception.

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]

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy