Assignment 1, Digital Signal Processing: Fourier Transform University of Glasgow
School of Engineering
Bernd Porr∗ 2018
Form groups of two, work together and submit one report.
- Record your voice (biomeds: Korotkoff sounds and heartbeat) with one of the supplied headsets / microphones. Make sure that you record at least at 44kHz or higher sampling rates.
- Load the audio sample into python and plot the audio signal in the time domain and in the frequency domain with proper axis lables (time,frequency,amplitude). Plot the spectrum in logarithmic units. [10%]
- Reduce or increase certain frequencies so that your voice sounds better. For example, check out the frequency response of the SM58 microphone (biomeds: investigate the frequency spectrum of Korotkoff or heartbeat sounds). [40%]
- Speech detection: Your task is to detect different speech events such as the word “hello” vs “action”. In order to achieve this you need to record audio and then chop the audio into consecutive chunks for example 200ms each. Then you do Fourier Transforms on these chunks and analyse the amplitudes of different frequencies in the different chunks to determine which word has been said. You achieve this by putting thresholds on the frequencies in the different chunks which identify a certain word. Your program should read a sound file (or do a live recording) and then displays on the screen what has been said or detected. A minimum of two words need to be detected and identified in a proven / documented way. Of course you can also trigger playing music or doing other interesting actions. This is an investigative project and it is expected that you develop a high degree of initiative here and come up with an interesting demo. Any team which is able to present a realtime version which is able to detect sound as it happens and films a YouTube clip will get 200%. [50%]
The report should be brief concentrating on the technical aspects and why you have done the different steps. Complete PYTHON code must be included as an appendix and optionally on github as a fork. All figures in the report need to be high quality graphics in vector format which stay sharp when zoomed into them. Blurry jpeg figures or screenshots will result in zero marks. Upload your original wave files and the results on moodle. All data needs to be originally recorded by the group and a different image needs to be chosen. If the same data/image is found in two groups all reports will get zero marks. Also any download from the web will result in zero marks. No high level python commands are allowed except of the fft and ifft commands. In particular for the 2nd part structure and comment your code so that it’s easy to read. Write your code object oriented as shown in the example.
Deadline: 22nd Oct, 3pm, Hand in your reports at the teaching office in the James Watt building and upload a zip with all files (see moodle for naming conventions).
∗bernd.porr@glasgow.ac.uk
1