Signal_Final_TikeaTE/main.m

61 lines
1.6 KiB
Matlab

function main()
%{
function main()
Main function to analyze the unknown signal
Tasks:
- Load signal
- Plot raw signal
- Perform and plot power spectrum
Author: Tikea TE
Date: 16/04/2025
%}
% ==== Load signal ====
load unknownsignal.mat
Fs = 200; % given sampling frequency (Hz)
% ==== Plot the raw signal ====
plotRawSignal(X, Fs);
% ==== Analyze frequency spectrum ====
[f, power] = frequencySpectrum(X, Fs, 1); % set 1 to plot
% ======== Apply a bandpass filter ==============
% [filteredSignal, Z, P] = iirFilter(10, [5 20], X, Fs, 1);
% ======== Apply FirFilter ===============
filteredSignal = firFilter(30, [5 20], X, 200); % for a 30th-order bandpass FIR filter
% ============ plot the filtered signal ============
plotFilteredSignal(filteredSignal, Fs);
plotRawVsFiltered(X, filteredSignal, Fs);
% ==== Power spectrum of the filtered signal ====
[f_filtered, power_filtered] = frequencySpectrum(filteredSignal, Fs, 1);
% === Create time vector for windowing ===
t = (0:length(filteredSignal)-1) / Fs;
% === Choose window duration ===
duration_signal = length(filteredSignal) / Fs;
win_duration = 2; % seconds
% === Create and apply Hanning window ===
win_hanning = createtemporalWindow(t, duration_signal, win_duration, Fs, 2);
x_hanning = applyTemporalwindow(filteredSignal, t, win_hanning);
% === Plot raw vs windowed ===
figure;
plot(t, filteredSignal, 'r'); hold on;
plot(t, x_hanning, 'b');
legend('Filtered signal', 'Hanning-windowed');
xlabel('Time (s)');
ylabel('Amplitude');
title('Windowing Effect on Filtered Signal');
grid on;
end