From a1062222df02fca7cef7e60e91514802b575b85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BUSSIERE?= Date: Wed, 19 Jul 2023 15:59:17 +0200 Subject: [PATCH] Ajouter 'signal_analysis.m' --- signal_analysis.m | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 signal_analysis.m diff --git a/signal_analysis.m b/signal_analysis.m new file mode 100644 index 0000000..3f94e92 --- /dev/null +++ b/signal_analysis.m @@ -0,0 +1,59 @@ +pkg load signal + +file_path = 'part1.wav'; + +[x, Fs] = audioread(file_path); + +t = (0:length(x)-1) / Fs; + + + +subplot(2,2,1); +plot(t, x); +title('Time Domain - Original Signal'); +xlabel('Time (s)'); +ylabel('Amplitude'); + +window = blackman(length(t)); +windowed_part = x .* window; + +subplot(2,2,2); +plot(t, windowed_part) +xlabel('Time (s)') +ylabel('Amplitude') +title('Blackman Window Applied') + + +Nfir = 5; +cutOffFrequency = 50; + +[B, A] = butter(Nfir, cutOffFrequency/(Fs/2)); + +filteredSignal = filter(B, A, windowed_cosine); + + + +subplot(2,2,3); +plot(t, filteredSignal); +xlabel('time (s)'); +ylabel('amplitude (a.u.)'); +title('IIR-Filtered signal') + +X = fft(filteredSignal); % Compute FFT +freq = (0:N-1) * (Fs/N); % Frequency axis + +subplot(2,2,4); +stem(freq, abs(X)); +title('Filtered Signal (Frequency Domain)'); +xlabel('Frequency (Hz)'); +ylabel('Magnitude'); + +Z=roots(B); +P=roots(A); +figure +zplane(Z,P); +title ('Zeros and poles of the transsamplingFreqr function'); +legend('zeros','poles'); +grid on; + +frequencySpectrum(filteredSignal,Fs);