diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 797d900..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/Code/chanvocoder_execution.m b/Code/chanvocoder_execution.m index 0dcb644..b550db4 100644 --- a/Code/chanvocoder_execution.m +++ b/Code/chanvocoder_execution.m @@ -1,5 +1,5 @@ modfile = 'Sound/modulator22.wav'; -carfile = 'Sound/carrier22.wav'; +carfile = 'Sound/white.wav'; outfile = 'Sound/vocodedsound.wav'; [modul, sr1] = audioread(modfile); @@ -12,3 +12,34 @@ end y = chanvocoder(carrier, modul, 512, 16, 0.2); audiowrite(outfile, y, sr1); +% Plot temporal variations of modulator, carrier, and output signals +t_mod = (0:length(modul)-1) / sr1; +t_car = (0:length(carrier)-1) / sr1; +t_out = (0:length(y)-1) / sr1; + +figure; +subplot(3,1,1); +plot(t_mod, modul); +title('Modulator Signal'); +xlabel('Time (s)'); +ylabel('Amplitude'); + +subplot(3,1,2); +plot(t_car, carrier); +title('Carrier Signal'); +xlabel('Time (s)'); +ylabel('Amplitude'); + +subplot(3,1,3); +plot(t_out, y); +title('Output Signal'); +xlabel('Time (s)'); +ylabel('Amplitude'); + +% Compute spectrogram of modulator, carrier, and output signals +spectrogram(modul, sr1, 5, 30); + +spectrogram(carrier, sr1, 5, 30); + +spectrogram(y, sr1, 5, 30); + diff --git a/Code/speech_analysis_complete_sampling_part.m b/Code/speech_analysis_complete_sampling_part.m index 2087418..71e1ca7 100644 --- a/Code/speech_analysis_complete_sampling_part.m +++ b/Code/speech_analysis_complete_sampling_part.m @@ -70,8 +70,11 @@ cutoff_freq_iir = 1000; % in Hz [b, a] = butter(iir_order, cutoff_freq_iir / (Fs/2), 'low'); % Check IIR filter stability +poles = roots(a); % Compute poles iir_stable = all(abs(roots(a)) < 1); % Check if all poles are inside the unit circle fprintf('IIR filter stability: %d\n', iir_stable); +fprintf('Poles of the IIR filter: '); +disp(poles'); % Apply IIR filter to the original signal filtered_signal_iir = filter(b, a, signal); @@ -185,6 +188,6 @@ ylabel('Amplitude'); title('IIR Filtered Signal (Downsampled)'); % Write downsampled signals to audio files -audiowrite('downsampled_signal1.wav', downsampled_filtered_signal_fir, 4000); -audiowrite('downsampled_signal2.wav', downsampled_filtered_signal_iir, 4000); +audiowrite('downsampled_signal1_fir.wav', downsampled_filtered_signal_fir, 4000); +audiowrite('downsampled_signal2_iir.wav', downsampled_filtered_signal_iir, 4000); diff --git a/Sound/downsampled_signal1_fir.wav b/Sound/downsampled_signal1_fir.wav new file mode 100644 index 0000000..e186802 Binary files /dev/null and b/Sound/downsampled_signal1_fir.wav differ diff --git a/Sound/downsampled_signal2.wav b/Sound/downsampled_signal2.wav index 6dfbcb4..ffd4e55 100644 Binary files a/Sound/downsampled_signal2.wav and b/Sound/downsampled_signal2.wav differ diff --git a/Sound/downsampled_signal2_iir.wav b/Sound/downsampled_signal2_iir.wav new file mode 100644 index 0000000..6dfbcb4 Binary files /dev/null and b/Sound/downsampled_signal2_iir.wav differ diff --git a/Sound/vocodedsound.wav b/Sound/vocodedsound.wav index fd619ff..748c837 100644 Binary files a/Sound/vocodedsound.wav and b/Sound/vocodedsound.wav differ