part 01a, b, c:

Speak your name (first and last) continuously and create a digital version of it using sampling rate of fs = 16 kHz and 16 bit linear quantization. Plot the time waveform, wideband spectrogram, and narrowband spectrogram.

approach:

Here, all that needed to be done was to apply pre-defined parameters for wideband and narrow spectrograms into code.

code:

function project_03_part01abc()

[signal,fs,nbits] = wavread('eliot_peng.wav');

subplot(311), plot(signal), grid on, axis tight;
title('input signal'), xlabel('time (samples)'), ylabel('amplitude');

f = linspace(0,8000,500);

%C) Narrowband Spectrogram
%Window type: Hamming
%Window size: 20 to 25 ms
%Window overlap: 97%
nb_window_size = round(0.0225*fs);
nb_window_overlap = round(nb_window_size*0.97);
subplot(313), spectrogram(signal,nb_window_size,nb_window_overlap,f,fs,'yaxis'), grid on, axis tight;
title('narrowband spectrogram'), xlabel('time (s)'), ylabel('frequency (Hz)');

%B) Wideband Spectrogram
%Window type: Hamming
%Window size: 1/4 of narrowband case
%Window overlap: 90%
wb_window_size = round(nb_window_size/4);
wb_window_overlap = round(wb_window_size*0.90);
subplot(312), spectrogram(signal,wb_window_size,wb_window_overlap,f,fs,'yaxis'), grid on, axis tight;
title('wideband spectrogram'), xlabel('time (s)'), ylabel('frequency (Hz)');

%soundsc(signal,fs);
%print project_03_part01_r100 -dpng -r100;
%print project_03_part01_r150 -dpng -r150;
        

graphs:

project_03_part01abc_r100.png

files:

eliot_peng.wav
project_03_part01abc.m
project_03_part01abc_r150.png