Commit Graph

5 Commits

Author SHA1 Message Date
Nicolas TRAGLIA 6df6f80d0f updated main to plot signals 2023-04-20 11:52:08 +02:00
NicolasTraglia f5d26c7def updated main
%Signal Processing exam
%
% Task: process and analyse an unknown signal "unknownsignal.csv"
%
% Traglia Nicolas
% nicolas.traglia@ecam.fr
%20/04/2023
%%%%%%%%%%%%%%%%%%
clc;
clear;

SignalRaw = csvread("unknownsignal.csv"); #The signal to process
N = length(SignalRaw); #Length of the signal
Fs = 300; # Hz; the sampling frequency
RoI=[30,40]; #Region of interest, in Hz.
FFTSIGNAL=fft(SignalRaw,N);
power = abs(FFTSIGNAL).^2/N;

if false #Plot raw signal
plot(1:length(SignalRaw), SignalRaw);
title('Raw unknown signal');
xlabel('Time (s)');
ylabel('Amplitude (a.u.)');
endif

if false #Plot raw signal in frequency domain
  plot(1:length(power),power);
title('Raw unknown signal');
xlabel('Frequency (Hz)');
ylabel('Amplitude (dB)');
endif
if false #Bandpass filtered signal, Work In Progress (Does not work, returns error filter order N must be a positive integer)
pkg load signal;
BPSignal = butter(power, [RoI(1),RoI(2)]);
plot(1:N, SignalRaw);
title('Raw unknown signal');
xlabel('Time (s)');
ylabel('Amplitude (a.u.)');
subplot(3,1,2);
plot(1:N, BPSignal);
title('Filtered signal');
xlabel('Frequency (Hz)');
ylabel('Amplitude (dB)');
endif

if false #Moving Average filter, Work In Progress
SignaMA = zeros(size(SignalRaw));
A=20;
for i =A:N
  SignalWMA(i)=sum(SignalRaw(i-A+1:i))/A; #average
endfor

figure
subplot(3,1,1);
plot(1:N, SignalRaw);
title('Raw unknown signal');
xlabel('Time (s)');
ylabel('Amplitude (a.u.)');
subplot(3,1,2);
plot(1:N, SignalWMA);
title('MAF signal');
xlabel('Time (s)');
ylabel('Amplitude (a.u.)');
endif
2023-04-20 11:50:01 +02:00
NicolasTraglia 6ec745a30e added spectal plot 2023-04-20 11:39:03 +02:00
NicolasTraglia 65f4d96b6c added main.m and unknownsignal.csv 2023-04-20 10:37:11 +02:00
NicolasTraglia a4dd43d880 first commit 2023-04-20 10:07:34 +02:00