Compare commits
2 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
5612854dd5 | |
|
|
7300e4270e |
|
|
@ -0,0 +1,76 @@
|
|||
clear all
|
||||
close all
|
||||
clc
|
||||
|
||||
%%%%%%%%%%%%%%%%%%
|
||||
%function power = frequencySpectrum(signal, fs)
|
||||
%
|
||||
% Task: Display the power spectrum (lin and log scale) of a given signal
|
||||
%
|
||||
% Input:
|
||||
% - signal: the input signal to process
|
||||
% - fs: the sampling rate
|
||||
%
|
||||
% Output:
|
||||
% - power: the power spectrum
|
||||
%
|
||||
%
|
||||
% 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)
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue