Assignment 1
Digital Signal Processing
Fourier Transform
University of Glasgow, School of Engineering
Bernd Porr & Nick Bailey
This assignment is about the Fourier Transform.
Form groups of three-four, work together and submit one report. Enter your
team into the Wiki on moodle listing your names and matriculation numbers.
Use the moodle forum to find team mates.
Record the voice of one member of your group as uncompressed WAV. Say one
complete sentence. It can be any language. Make sure that you record at least
at 44kHz or at a higher sampling rate and that the audio is not clipping. The full
audio spectrum up to 20kHz needs to be available. Low quality MP3 downloads
from websites are not allowed. Reports based on recordings at sampling rates
below 44kHz or downloads will not be marked. If you do your research make
sure to use publications describing full range studio/professional audio (not
telephony or comms).
1. Load the audio samples into python.
1. plot the audio signal in the time domain (linear axis: normalised
amplitudes vs time) and
2. in the frequency domain (logarithmic axis for both frequency and
amplitude in dB) with proper axis labels.
2. Use a drawing program (Inkscape, Illustrator, drawio, …) and mark
1. the peaks in the spectrum which correspond to the fundamental
frequencies of the vowels spoken.
2. Mark up the frequency range which mainly contains the consonants up
to the highest frequencies containing them.
3. Mark up the whole speech spectrum containing the vowels,
consonants and harmonics.
Provide brief explanations. 20%
3. Use the speech audio from the previous steps and determine the region
of the highest harmonic voice frequencies in the spectrum and increase
their frequency amplitudes with the help of the Fourier Transform with
the goal to improve the voice quality. 30%
4. Write a simple program which is able to detect at least two different
vowels in your voice recording. Write a function which takes an audio file
as an input and outputs the vowel as a string. Call the function
voweldetector(wavfile) and call it twice (or more) in your program with
two different wav files. 50%.
The report should be brief, concentrating on the technical aspects and why you
have done the different steps. Do not add generic theory about voice or Fourier
Transform. Just describe the method and the result. Complete PYTHON code
must be included in the appendix and submitted via moodle alongside the
report. All figures inline in the report must be high quality graphics in vector
format. Blurry jpeg figures or screenshots will not be marked. Submission must
be PDF.
Upload your code, data/WAV files to moodle in form as a single zip file. Follow
exactly the naming conventions for all files as specified on moodle. The scripts
will be tested under Linux from the commandline (so not Spyder or Pycharm).
Make sure your code is platform independent and does not contain absolute
paths. Code that crashes will result in low marks. The same applies for code
which won’t display any plots. Your audio files must be original ones. No high
level python signal processing / filtering commands are allowed except of the
FFT and IFFT commands.
Deadline: 18th Oct, 3pm on moodle.