program程序讲解、python语言编程辅导、讲解data留学生

- 首页 >> Java编程
Assignment 1, Digital Signal Processing:
Fourier Transform
University of Glasgow, School of Engineering
2020
This assignment is about the Fourier Transform.
Form groups of two, 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.
1. 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 20 kHz 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.
2. Load the audio samples into python and plot the audio signal in the
time domain (linear axis) and in the frequency domain (logarithmic
axis for both frequency and amplitude) with proper axis labels (time,
frequency, amplitude, dB). [10%]
3. Explain which peaks in the spectrum correspond to the fundamentals
of the vowels spoken. Explain which frequency range mainly contains
the consonants. [20%]
4. Improve the quality of your voice by increasing the amplitudes of the
base of your voice and the region around 6 − 10 kHz by using the Fast
∗bernd.porr@glasgow.ac.uk
1
Fourier Transform: transform the time domain signal into the frequency
domain, then manipulate the spectrum and then transform it back to
the time domain. Make sure that the audio is not clipping or distorted.
Save the resulting time domain signal as a WAV (16 bit) and include
it in your submission. [30%]
5. We have dialled numbers on a touch tone telephone and uploaded the
files to moodle. There are different files depending on your matric
number and class. Make sure you download the right one. Your task
is to use the Fourier Transform to determine which numbers have been
dialled. The Python program should be written in a way that it can
detect all numbers automatically and prints them on the screen. For
that purpose write
(a) a python function which detects one digit from a chunk of the
recording and then
(b) write the main program as a loop which detects the key presses
and then feeds them into the python function in 5a).
[40%]
The report should be brief, concentrating on the technical aspects and
why you have done the different steps. Complete PYTHON code must be
included in the appendix and submitted via moodle. All figures 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. 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: 19th Oct, 3pm on moodle.

站长地图