Repeat 2) above, but instead of using ``clean" TEST utterances, use TEST utterances which have added white Gaussian
noise (AWGN) at a global SNR of 20 dB. ``Global" SNR is defined over an entire utterance, as opposed to ``Local" SNR,
where each frame of speech is set to the same SNR - high-energy frames have more noise added than low-energy frames
(unrealistic since noise level is now speech-dependent which violates the assumption that the noise and utterance
are independent). Report your recognition results on the noisy TEST data and clean TRAIN data as well as your
confusion matrices. Below is code you can use to add AWGN to each utterance:
% Create random sequence of normal distribution (zero mean, unity variance):
noise = randn(size(x)); % x is the "clean" time-domain utterance (whole word)
% Find energy of each utterance and noise:
energyX = sum(x.^2);
energyNoise = sum(noise.^2);
% Find amplitude for noise:
noiseAmp = sqrt(energyX/energyNoise*10^(-SNR/10)); % SNR is in dB
% Add noise to utterance:
x = x + noiseAmp*noise;