Digital Systems EEE4084F

                              
Home Videos Slides Assignments & Resources Tests Exams YODA Topics Hall of Fame
                              

Welcome to EEE4084F

  An EEE4084F Hall of Fame winning project

Hof


PADAWAN

Parallel Accelerator for Digitising Audio With Attenuation of Noise


By: Lloyd Hughes, Ross Engers, and Stephen Jermy  (Project P17, 2012)


Defining the problem and suggested solution:

The problen to be solved is performing filtering and processing on audio in near real-time using a FPGA

Real-time filtering can be achieved in software, however when many filters are cascaded one after the other there will be a delay between audio input and output.  For many applications this is an undesireable side-effect, stopping the system from being real time.

Some types of filters that can implemented are: Low-pass, high-pass, band-pass and band-stop.
Some effects that can be implemented are: Echo, flange, chorus, reverb, vibrato, phaser, delay  and distortion.

A low-pass filter can be represented using the following sinc function:

                                                 

The filtering is done by convolving this function with the input audio signal.  Convolving translates to adding and multiplying signals which is a highly parallelisable operation as there is no need for communication between tasks.

Identified lists/design questions to solve

All filters and effects that will we use are linear functions and we will use a linear approximation for any non-linear functions.
The linearity property of these filters allows us to take several cascaded filters and apply them simultaneously to the audio signal, this is due to the property of linear function known as superposition.  The superposition principle tells us that the filtered sum of the input signals is equal to the sum of the filtered signals.

Certain effects may require that they performed in a specific order, for instance if an effect transforms high frequency components to low frequency we may want to low-pass filter the signal first to remove this high frequency noise.  This limits the extent to which we can parallelise the system.

Ideally our system is designed to perform multiple filter and effect functions which are chronologically independent, i.e. the ordering is irrelevant.  However it will still be able to function with these previously mentioned operations, it will however reduce the speed up factor of the system.

Our project will involve receiving an audio signal and spliting it into multiple channels, with each channel able to perform any of the above functions. The channels are then summed together to produce the output filtered signal.

                                                                                          
                                                                                          Possible block diagram implemenation of an audio equalizer

Identify suitable criteria for an acceptable solution:

A suitable solution should ideally perform 20% faster than the equivalent software solution.  Or alternatively to perform 20% more filtering operations while still maintaining pseudo real-time response. This figure was based on software running on a quad core computer, where on average 6 filtering operations are performed. An acceptable solution will also require dynamic choice for filter types and parameters.

The solution will be analyzed against a golden standard using matlab or equivalent software. This analysis will include a mathematical correlation test as well as a comparison of the two outputs by the human ear.


References:

Schultz, R, 2003. FPGA Implementation of Audio Effects. Canada: University of Alberta.
http://www.globalspec.com/reference/81798/203279/8-5-application-digital-audio-equalizer
http://www.free-hdwallpapers.com
http://en.wikipedia.org/wiki/Low-pass_filter
(Wikipedia page used simply for understanding purposes)




Download the project (.zip)


                                                             
                                                                                                                       
                                                                            This site uses the Creative Common License: Attribution 3.0 Unported
Creative Commons License