Engineering 12 Lab 2 Writeup

Ignatius, Ekua, Aron -- February 13, 2004


Abstract

In this laboratory exercise, three different techniques were used to eliminate a 400Hz signal from a captured speech signal. To begin with, the magnitude of the noise signal was subtracted from the magnitude of the corrupt voice data in the Fourier domain (based on the Discrete Fourier transform), to yield a resultant magnitude plot A. The phase of the corrupted signal was then added to A to yield a signal whose inverse Fourier transform comprised a cleaner/filtered speech signal. The second technique, the adaptive notch filter, cleaned up the corrupt voice data by first blurring the noise signal by convolving it with a 1-2-1 Gaussian filter. Points on the magnitude plots of the blurred noise data (in the Fourier domain) that exceeded a specified threshold were then used to determine the values of the corrupt signal that had to be multiplied by some factor to reduce noise. The third technique cleaned up the corrupt voice data by removing the specified frequency (400Hz) and its harmonies.

Introduction

This exercise was aimed at providing an introduction to the Fourier transform. The Fourier transform, a pervasive and versatile tool, is used in many fields of science as a mathematical or physical tool to alter a problem into one that can be more easily solved. Its utility in the analysis of linear systems, antenna studies, optics, random process modeling, probability theory, quantum physics, and boundary-value problems mainly stems from the fact that multiplication in the time domain is equal to convolution in the frequency domain.

In this exercise, the Fourier transform was used to remove repeating signals from a composite input signal. As aforementioned, a 400 Hz sinusoidal signal was eliminated from a captured speech signal. The Discrete Fourier Transform was used to process the voice data since the latter was a string of samples as opposed to a continuous signal.

Methods and Experiments

Methods used in this experiment were based on the instructions given in the set up and task sections of the E12 Lab #2 hand out with one main additional procedure. This addition was necessary because after executing task number 10, that is, suppressing the 400Hz frequency and its harmonics in the noise signal, there was an unwanted DC spike at 0 in the FFT plots. This DC component of the signal was eliminated by the subtraction of the average value from the signal (in the time domain). We did not do any of the extensions.

Results and Discussion

Data files:
Matlab Source Codes
Original Input Signals in Fourier Domain





Method 1 Processing Results
% Fighting Corrupt Speech: method1
% cleaned-data = method1( corrupt-data, noise-data )
%
% Attempts to clean up the corrupt voice data by subtracting
% the noise signal frequency magnitude in the Fourier domain
% and then recreates the phase information to regenerate the
% hopefully cleaner signal.
%
% This function takes the corrupt and noise signals, as read
% by the wavread function.  The function assumes 11.025 kHz 
% recording.



Method 2 Processing Results
% Fighting Corrupt Speech: method2
% cleaned-data = method2( corrupt-data, noise-data )
%
% Attempts to clean up the corrupt voice data by blurring the
% noise signal by convolving it with a 1-2-1 Gaussian filter.
% Then, if the magnitude of the frequency in the blurred noise data 
% (in the Fourier domain) is greater than some threshold (i.e. 10),
% the corresponding value in the corrupt signal is multiplied by some
% small number to reduce the noise.
%
% This function takes the corrupt and noise signals, as read
% by the wavread function.  The function assumes 11.025 kHz 
% recording.  



Method 3 Processing Results
% Fighting Corrupt Speech: method3
% cleaned-data = method3( corrupt-data, frequency )
%
% Attempts to clean up the corrupt voice data by simply
% removing the specified frequencies and its harmonics.
%
% This function takes the corrupt signal, as read
% by the wavread function, and the frequency (in Hz) to
% filter out.  The function assumes 11.025 kHz 
% recording. 




Discussion Questions

Generally, our overall final signal was an improvement on the corrupt signal As seen in the graphs.

Lab Extensions and Extra Work