[SOLVED] algorithm GUI html math matlab graph University of Nottingham

$25

File Name: algorithm_GUI_html_math_matlab_graph_University_of_Nottingham.zip
File Size: 574.62 KB

5/5 - (1 vote)

University of Nottingham
Faculty of Engineering
Department of Electrical and Electronic Engineering
Digital Signal Processing
Coursework 1- Filtering of Music
1.Introduction
This document covers the first coursework for this module.This coursework contributes to 25% of the module assessment.
The coursework makes use of MATLAB to process sound signals which have been corrupted by noise and interference.
There are Workshops that take place each week where you have access to computers running MATLAB but you can of course work on this project outside this slot. MATLAB is available for download for all registered students.In addition, MATLAB is also run on computers in both the Tower and other communal computer rooms in the University.
The learning outcomes for Coursework 1 are as follows:
Introduction to applying digital spectral and filtering techniques to noisy signals
Appreciation of design issues when filtering signals reduction of noise versus distortion of underlying signal
You will have the opportunity to apply a wide variety of filters and other signal processing techniques and you should, by the end of the coursework, have a better understanding of these techniques.
Please note that this coursework is worth just 5 credits, so you should spend no more than 50 hours in total on this project. If you find yourself having to work longer than this, or have any other problems, then please feel free to contact me.
2.Background to the Project
2.1Data Files
You are provided with the following MATLAB files containing a clip of music:
clean.wav music clip
corrupt.wav corrupted version of the music clip
Information about reading and writing sound waves in MATLAB can be found at:
http://uk.mathworks.com/help/matlab/import_export/read-and-get-information-about-audio-files.html(last accessed 2/9/19).
You should first make sure that the files are in the current Workspace. Alternatively you could use the mouse to drag the files into the MATLAB window.
For example, if you want to read an audio file, then you use the command audioread:
e.g. [y, fs] = audioread(corrupt.wav)
The array y will contain the data values. fs will give you the sampling frequency (Hz).
If you want to hear the signal, then you should use the sound command:
sound(y,fs)
Hearing the signal after processing may give you an indication of how close to the clean signal is the processed signal.However, if loudspeakers are not available, comparing the plots of the variations with time of the clean and processed signals is just as good a procedure for comparison.
After having processed the data, if you want to write it to a file with *wav format then you should use the audiowrite command:
e.g. audiowrite(processed.wav,y,fs)
Note: in this example the chosen filename is processed.wav, but any name can be chosen as long as the suffix .wav is used.
2.2Aim of the Project
The aim of the project is to process the data in corrupt.wav in order to recover as much as possible the original signal contained in clean.wav.Please note: clean.wav is provided for your reference information from this file must not be used to process the signal in corrupt.wav.
Initially, you are recommended to use the signalAnalyzer GUI provided by MATLAB see under Section 6 below for further details.You can, if you wish, subsequently write your own programs using standard MATLAB functions to filter signals and some of these are described in Section 6.3 below.
3.Deliverables
You should produce a report, approximately 10-15 pages in length, which should be word processed.See below for more details of the format of the report.
Submission of the coursework is online using the Moodle page for Digital Signal Processing.
You should submit your report and MATLAB program files in a single *zip file. Please use the Windows *zip facility and not any other compression program (such as *.rar) as I will not be able to open these files.
The report should be saved as a PDF file.Please do not submit any data files as these will be very large I should be able to reproduce the signals you have obtained by running your programs.
The submission deadline will be given to you at the start of the project

4.Report
The report is to be structured as follows:
(1)Methods and Results
This is a major section of the report and should describe the following:
The signal processing methods you have used and how you have implemented them using MATLAB.

Justification for using specific choice of input parameters.

Results shown in graphical form

You should try up to four different methods to filter the data; this could be different combinations of digital filters (lowpass, bandpass, etc), or using a Wiener filter in combination with a digital filter or using an FFT filter or any other method you can find.
Please note: you must submit any programs that you use to obtain your results along with input parameters that you have used.If you have used the signalAnalyzer or any other GUI you shouldgive in the report all input parameters that you have used and save the session into a file that should be contained in the *zip file and referenced in the report.
(2)Discussion of Results
This is another major part of the report
If a particular combination of signal processing methods worked well, then explain why that is the case.

If a particular combination of signal processing methods worked badly, then explain why that is the case?

(3)Conclusions
The Conclusions should contain:
(i)Recommendation of the best combination of signal processing methods to be used
(ii)Detailed justification for this recommendation
(iii)Optimal input parameters for the recommended method

5.Assessment
The assessment of the report will be as follows:
(1)Methods and Results 40%
Choice of Methods
Comparing at least four different methods[15 marks]
Comparing three different methods[12 marks]
Comparing two different methods[9 marks]
One method applied[6 marks]
No methods chosen [0 marks]
Justifications for choice of signal processing methods used
Detailed justification [10 marks]
Fairly detailed justification[8 marks]
Some justification [6 marks]
Very little justification [4 marks]
No justification [0 marks]
Details given of input parameters for each method and detailed justification for the choice of these parameters.
Input parameters given for each method and detailed justification for the choice of these parameters.[5 marks]
Input parameters given for each method and justification for the choice of these parameters.[4 marks]
Input parameters given for each method with some justification for the choice of these parameters.[3 marks]
Input parameters given for each method with little or no justification for the choice of these parameters.[2 marks]
No input parameters given.[0 marks]

Presentation of Results: Clarity, labelling of graphs, impact to reader
Clearly presented results. [10 marks]
Clearly presented results for the most part [8 marks]
Results sometimes presented clearly[6 marks]
Only some results are clear[4 marks]
Unclear results[0 marks]
(2)Discussion of Results 40%
Detailed reasons given as to why each particular method or combination of methods works well or works badly.[40 marks]
Some detailed reasons given as to why each particular method or combination of methods works well or works badly.[32 marks]
Some reasons given, with limited depth, as to why each particular method or combination of methods works well or works badly. [24 marks]
A few reasons given as to why a particular method or combination of methods works well or works badly. [16 marks]
No discussion [0 marks]
(3)Conclusions 20%
Excellent Depth of Conclusions[20 marks]
Good depth of Conclusions[16 marks]
Some depth of Conclusions[12 marks]
Basic Conclusions[8 marks]
No Conclusions[0 marks]
Note on assessment:
You will not be penalised for trying out a method that does not work this happens all the time with research!You will be given credit for explaining why a method does not work (or works well).You will not receive much credit if you present a lot of results with no explanation.Try using a variety of combinations of processing methods comparing the advantages and disadvantages of each combination.
6.Processing Suggestions
6.1Reducing spikes using median filtering
Listen to corrupt.wav using the sound command.You should hear a crackling sound.You may have heard similar problems with old recordings, particularly if the original recording was on vinyl and there has been a deterioration of the records surface.This is a problem that can be solved by digital signal processing. To solve this problem, try preprocessing the data using the median filter before applying any other digital signal processing methods.The MATLAB command for one-dimensional median filtering is medfilt1.The data has been corrupted with random noise spikes and the median filtering is a good method to reduce the effects of these spikes.
Further details of the median filter can be found at:
http://fourier.eng.hmc.edu/e161/lectures/smooth_sharpen/node2.html
and
https://uk.mathworks.com/help/signal/ref/medfilt1.html
(both last accessed September 2nd2019)

6.2Spectral Analysis and Digital Filtering using signalAnayzer
When you have processed the signal in this way, then you may find it useful to use the MATLAB GUI signalAnalyzer.This is a convenient way to apply filtering methods to signals. Further details are given below.
Use of signalAnalyzer in digital filter design.
Make sure that your filename is in the MATLAB workspace.Suppose that your data is saved in the local name data.
The environment should look something like:

Drag the array name to the Filter Signals window as shown below

To plot the signal drag the variable name from the Filter Signals window to the plotting screen and select the box next to the filename in the window. The display should look like below. Note: the data shown below has not been prefiltered with a median filter you are recommended to do this first.

The x-axis shows the number of samples. To convert this to time, right click on the variable name in the Filter Signals box, select Time Values then under Time Specification select sample rate and start time.For sample rate put in 8000 Hz and put in 0 for start time.
The x-axis for the figure will now be converted to seconds.
To obtain the amplitude spectrum, select Display (if not already done so)click on the Spectrum in the top panel and the amplitude spectrum will be displayed in the panel below; if you have specified that the signal is plotted in time then the spectrum will be plotted against the frequency in Hz as shown below:

Note that the y-axis of the spectrum is in decibels.
The value in plotting the amplitude spectrum is that you can then design filters to eliminate any interference effects and reduce high frequency noise.
You can use the Analyzer option on the top panel to process the data using various types of filter.In the Analyzer mode, select the signal in the Filter Signals window, and you will see certain options available to you : Smooth, Lowpass, HighPass etc.For example select LowPass.
Passband Frequency : this gives the 3 dB cut-off .Try putting in 1000 Hz for example. Leave Steepness and Passband attenuation as they are for the moment. Now press the green arrow which says Low Pass.Note that you are overwriting the original variable in the workspace dont worry about this, you are not overwriting your original data file.You can read it in later if you wish to process it again.
The filtered signal and its spectrum will now be displayed.
Press Close Lowpass.You can then apply further processing steps to this filtered signal.
Under Analyzer you can save the session to file and open it again later.You should include these files in your coursework submission if you are using the signalAnalyzer app and also give any input parameters in the report.You can also save your processed signals to either the MATLAB workspace or to file using the Export button in the Analyzer panel.
The above gives you a basic overview of the facilities offered by signalAnalyzer.You are recommended to read the following link from MathWorks for details of further facilities of this App:
https://uk.mathworks.com/help/signal/ug/using-signal-analyzer-app.html
(last accessed September 2nd 2019)
6.3Other Suggestions
In the lectures, we cover the application of the FFT to filtering.The simplest way is to compute the FFT amplitude spectrum of the noisy signal and then put to zero unimportant frequency components.Try seeing if this method works better than using the digital filters offered by signalAnalyzer. You will need to write your own program to do this.
Wiener filtering is also covered in the lectures.Try to think about how you would apply the Wiener filter to this problem.How would you estimate the amplitude spectrum of the noise?How would you estimate the amplitude spectrum of the signal without using the clean signal that is given?Again you would need to write a program to do this
There are other Apps offered by MathWorks:
filterDesigner you can design constant coefficient digital filters using this app, more details are at:
https://uk.mathworks.com/help/signal/examples/introduction-to-filter-designer.html
(last accessed : September 2nd 2019)
sptool this app combines spectral analysis with filter design.It is very useful but MathWorks reports that sptool is not recommended and will be removed in a future release of MATLAB; further information at
https://uk.mathworks.com/help/signal/ref/sptool.html
(Last accessed September 2nd 2019)
During the course of the lectures, various MATLAB commands will be noted in the lectures try reading up on these in the MathWorks web site to see if they could be useful.
Spectral Analysis
Demonstrations: fftdemo
DFT: fft ifft
Windows: bartlett triang hanning hamming blackman chebwin kaiser
JTFA: spectrogram
PSD (Welch) : pwelch (used to be called psd)
Digital Filtering
fir1 truncation +weighting for common filters (LP etc)
fir2 truncation + weighting for a sampled magnitude response
firls least square design
firpm chebyshev design
Filter properties grpdelay freqz impz zplane
7.Help with project
The methods you use are entirely up to you.Please feel free to discuss any ideas you may have with me or if you require more help.I would be interested in listening to your ideas.You can come to my office if you like or you may wish to check my availability by email first.
Remember there are a large number of algorithms that you could come up with each with their own advantages and disadvantages.
Malcolm Woolfson, September 17th 2019

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] algorithm GUI html math matlab graph University of Nottingham
$25