fft
This commit is contained in:
parent
296d5649ae
commit
a95c8aaf4d
|
|
@ -0,0 +1,52 @@
|
||||||
|
#Date: 19/07/2023
|
||||||
|
#Author: Adrien COMBE
|
||||||
|
#Description: Retake exam Signal Processing
|
||||||
|
|
||||||
|
% Load the CSV file containing the signal
|
||||||
|
signal = csvread('unknownsignal.csv');
|
||||||
|
|
||||||
|
% Given sampling frequency Fs = 650 Hz
|
||||||
|
Fs = 650;
|
||||||
|
|
||||||
|
% Time vector
|
||||||
|
t = (0:length(signal)-1) / Fs;
|
||||||
|
|
||||||
|
% Plot the signal in the time domain
|
||||||
|
figure;
|
||||||
|
plot(t, signal);
|
||||||
|
xlabel('Time (s)');
|
||||||
|
ylabel('Amplitude');
|
||||||
|
title('Mysterious Signal in Time Domain');
|
||||||
|
|
||||||
|
% Compute the length of the signal
|
||||||
|
N = length(signal);
|
||||||
|
|
||||||
|
% Perform the Fast Fourier Transform (FFT)
|
||||||
|
fft_result = fft(signal);
|
||||||
|
|
||||||
|
% Compute the frequency axis for the FFT plot
|
||||||
|
f = (0:N-1) * Fs / N;
|
||||||
|
|
||||||
|
% Plot the magnitude spectrum of the signal
|
||||||
|
figure;
|
||||||
|
plot(f, abs(fft_result));
|
||||||
|
xlabel('Frequency (Hz)');
|
||||||
|
ylabel('Magnitude');
|
||||||
|
title('Magnitude Spectrum (FFT) of Mysterious Signal');
|
||||||
|
|
||||||
|
% Identify the dominant frequencies (sine wave components)
|
||||||
|
% Set a threshold to filter out noise
|
||||||
|
threshold = 50;
|
||||||
|
|
||||||
|
% Find the indices of dominant frequencies above the threshold
|
||||||
|
dominant_indices = find(abs(fft_result) > threshold);
|
||||||
|
|
||||||
|
% Extract the dominant frequencies and their magnitudes
|
||||||
|
dominant_frequencies = f(dominant_indices);
|
||||||
|
dominant_magnitudes = abs(fft_result(dominant_indices));
|
||||||
|
|
||||||
|
% Display the dominant frequencies and their magnitudes
|
||||||
|
disp('Dominant Frequencies (Hz):');
|
||||||
|
disp(dominant_frequencies);
|
||||||
|
disp('Magnitudes:');
|
||||||
|
disp(dominant_magnitudes);
|
||||||
Loading…
Reference in New Issue