diff --git a/midterm.m b/midterm.m index 9a8413a..fecced7 100644 --- a/midterm.m +++ b/midterm.m @@ -18,3 +18,59 @@ clc % Thomas Périn, thomas.perin@ecam.fr % 20/04/2023 %%%%%%%%%%%%%%%%%% + +signal = csvread('unknownsignal.csv'); +fs = 300; %Sampling frequency +n = length(signal); +t = 0:1/fs:(n-1)/fs; +windowDuration = 1; + +figure; +plot(t, signal); +title('Original Signal'); +xlabel('time (s)'); +ylabel('amplitude (a.u.)'); + +%%%% Windowing %%%% +rectangularWin = zeros(1, n); +for l_sample=1:windowDuration*fs + rectangularWin(l_sample) = 1; +end + +% plot rectangular window +figure; +plot(t, rectangularWin); +title('Rectangular Window'); +xlabel('time (s)'); +ylabel('amplitude (a.u.)'); + +% apply the rectangular window +for l_sample=1:n + signal_rect(l_sample) = signal(l_sample) * rectangularWin(l_sample); +end + +% plot rectangular signal +figure; +plot(t, signal_rect); +title('Signal with Rectangular Windowing'); +xlabel('time (s)'); +ylabel('amplitude (a.u.)'); + + +%%%% Spectral Analisis %%%% +% compute DFT of input signal +y = fft(signal_rect, n); +% power of the DFT +power = abs(y).^2/n; + +figure; +f = (0:n-1)*(fs/n); % frequency range +plot(f,power); +title('Frequency Plot'); +xlabel('frequency (Hz)'); +ylabel('amplitude (a.u.)'); + +idx = find(power(61:81) == max(power(61:81))); +f(idx+60) + +