Investigate the role of signal conditioning and to design


Objectives

The aims of this assignment are:

1. To investigate the role of signal conditioning (course objective 6);

2. To design, implement and use signal processing algorithms (course objectives 4 and 7);

Students are expected to communicate their findings and ideas in a clear and logical manner.

Data Files

The data files required for this assignment may be downloaded from the course Study Desk. Before starting, you should do some research on DTMF signalling.

Question 1

The audio files dial0.wav, dial1.wav, ..., dial9.wav contain telephone dial (signalling) tones for the numbers 0 through 9. Use the code provided in wavproc.m to read the .wav files. Play through the PC speakers using MATLAB's sound function.

Part (a)

Each number is signalled using two simultaneous tones (see the web page cited above for further information). Note that the sample rate is 8kHz. Write code to calculate and plot the Fourier Transform magnitude for each of the ten individual digits, with a correctly scaled frequency axis. In your report, include:

1. Two representative time-domain waveforms. 2.Two representative frequency-domain waveforms.

Part (b)

Show the frequency of the components, explain how you derived them from the FFT, and compare them to what is expected from the standard DTMF frequency pair allocation.

(a) Waveforms correct & plotted correctly

(b) Frequencies correct & compared

Question 2

This question asks you to determine a sequence of keys dialled - firstly clean, then noise- corrupted.

Part (a)

By reading the wave file in blocks and calculating the Fourier Transform of each block, design an algorithm and construct the code to determine the particular key sequence dialled from the wave file alone. Test your code using the file dial0123. The determination must be fully automatic, and must not rely on each digit's tone waveform being an exact length, or exact amplitude. In your report, show the output of your code, clearly indicating that it has correctly determined the sequence of keys.

Include your MATLAB coding, and give a brief description of how you designed it, how it works, and the salient (important) features.

Part (b)

A further set of longer dial tones is provided, according to the naming convention:
dialu.wav

where

dialu signifies "unknown dial sequence"
d is a single digit signifying the unknown file number
c|n is either "c" for "clean signal" or "n" for noisy signal

For example, dialu2n.wav is the third1 noise-corrupted unknown dial sequence. Note, however, that the "n" file does not correspond to the "c" file - in other words, dialu3n.wav does not necessarily contain the same key sequence as dialu3c.wav. Note also that the keys dialled includes digits as well as the standard star (*) and hash (#) keys.

Test your code, unaltered, from the previous question for the case of a noise-corrupted signal. For the digit "d", use the last digit of your student number. For example, if your student number is 0123456789, use the file dialu9n.wav. In your report, show the output of your code, clearly indicating what your code has determined the sequence of keys to be.

(a) Determine waveform & explain operation
(b) Determine longer noisy waveform

Question 3

This question requires you to estimate how much noise can be tolerated in your algorithm as determined in the previous question.

Starting with the clean signal, as we increase the amount of noise added, we expect that the algorithm would work satisfactorily up to a point, after which the performance will degrade (only some of the keys will be detected, not all). At some point, with enough noise, the algorithm will not be able to detect any of the keys correctly (or, more correctly, the algorithm will produce what amounts to random results). In order to test the performance, we need to generate some "artificial" noise, with a controllable power level.

Let the noise-free signal (the ‘c' wave file) be x(n). Add a quantity of noise to it, according to y(n) = x(n) + αv(n), where v(n) is white Gaussian noise and α is a constant controlling how much noise is added.

For a given α, you can calculate the Signal-to-Noise ratio (SNR) in decibels (dB) using

SNR = 10log10 ΣN x2(n) ΣN(αv(n))2

from a data vector of reasonable length N , given the signal x(n) and noise αv(n).

Starting at α = 0 (that is, no noise), increase the amount of noise and test the performance of your key-detection algorithm. The detection algorithm must use as input the observed signal y(n). Assume that the clean signal is not available to the detection algorithm2.

Determine how many keys can be recovered using your algorithm from the previous question, and create a table containing α, SNR (in dB), and number of keys recovered. When the signal power equals the noise power, the SNR is 0 dB. Will your algorithm work at this SNR?

Given the results of your testing, suggest and investigate some methods by which the per- formance of your algorithm could be improved.

SNR Result Table

Performance Improvement & Discussion

Attachment:- haudio.zip

Request for Solution File

Ask an Expert for Answer!!
Other Engineering: Investigate the role of signal conditioning and to design
Reference No:- TGS01645977

Expected delivery within 24 Hours