70 lines
1.7 KiB
Matlab
70 lines
1.7 KiB
Matlab
pkg load signal
|
|
|
|
%load & plot audio file modulator
|
|
[audio_data sampling_freq]= audioread('modulator22.wav');
|
|
|
|
figure;
|
|
plot(audio_data);
|
|
xlabel('Time in [s]');
|
|
ylabel('Amplitude in [dB]');
|
|
title('Speech data in time domain');
|
|
|
|
%FFT vs DFT comparison
|
|
if (0)
|
|
t = 5;
|
|
%average
|
|
for i=1:t
|
|
%FFT
|
|
|
|
[power, duration]=frequencySpectrum(audio_data,sampling_freq,1);
|
|
duration_fft(i) = duration;
|
|
|
|
%DFT
|
|
|
|
[power, duration]=frequencySpectrum(audio_data,sampling_freq,0);
|
|
duration_dft(i) = duration;
|
|
|
|
sum_fft =0;
|
|
sum_dft =0;
|
|
|
|
sum_fft = sum_fft + duration_fft(i);
|
|
sum_dft = sum_fft + duration_dft(i);
|
|
|
|
endfor
|
|
|
|
%estimate the duration of FFT
|
|
average_fft = sum_fft/t
|
|
average_dft = sum_dft/t
|
|
end
|
|
|
|
%Spectrogram
|
|
frequencySpectrum(audio_data,sampling_freq,1);
|
|
|
|
%Compute and display spectrogram
|
|
if(0)
|
|
spectrogram(audio_data,sampling_freq,5,5);
|
|
%spectrogram(audio_data,sampling_freq,30,5);
|
|
wan = audio_data(0.37*sampling_freq:1.17*sampling_freq);
|
|
tu = audio_data(1.24*sampling_freq:1.75*sampling_freq);
|
|
tri = audio_data(1.84*sampling_freq:2.19*sampling_freq);
|
|
|
|
frequencySpectrum(wan,sampling_freq,1);
|
|
frequencySpectrum(tu,sampling_freq,1);
|
|
frequencySpectrum(tri,sampling_freq,1);
|
|
end
|
|
|
|
%downsampling
|
|
audio_downsampled = downsample(audio_data, 2);
|
|
audiowrite('downsampled_audio.wav',audio_downsampled ,4000);
|
|
|
|
%down_deci = decimate(audio_data, 2);
|
|
%audiowrite('decimate_audio.wav',down_deci,4000);
|
|
|
|
%low-pass filter
|
|
lp = fir1(30,1000/sampling_freq,'low');
|
|
y = filter(lp,1,audio_data);
|
|
frequencySpectrum(y,sampling_freq,1);
|
|
|
|
lp_butter = butter(8,1000/sampling_freq,'low');
|
|
y_butter = filter(lp_butter,1,audio_data);
|
|
frequencySpectrum(y_butter,sampling_freq,1); |