47 lines
873 B
Matlab
47 lines
873 B
Matlab
%%%%%%
|
|
%main code
|
|
%
|
|
%LY Pechvattana
|
|
%
|
|
%%%%%%
|
|
|
|
pkg load signal
|
|
|
|
%load data
|
|
signal = csvread('unknownsignal.csv');
|
|
|
|
%input data
|
|
fs = 300; %Sampling freq (Hz)
|
|
fc = 100; %Cut-off Freq (Hz)
|
|
n = 4; % Filter order
|
|
|
|
samplingDuration = length(signal);
|
|
window_size = samplingDuration/2;
|
|
|
|
%plotting signal in time domain
|
|
figure;
|
|
plot(signal);
|
|
xlabel('Time in [s]');
|
|
ylabel('Amplitude');
|
|
title('Signal data in time domain');
|
|
|
|
%frequency Spectrum
|
|
frequencySpectrum(signal,fs);
|
|
|
|
%spectrogram
|
|
%spectrogram(signal, samplingFreq, 30, 5)
|
|
|
|
%low pass filter
|
|
[b, a] = butter(n, fc/(fs/2), 'low');
|
|
signal_filtered = filter(b, a, signal);
|
|
t = 0 : length(signal) - 1;
|
|
subplot(2,1,1);
|
|
plot(t, signal);
|
|
title('Original Signal');
|
|
xlabel('Time (samples)');
|
|
ylabel('Amplitude');
|
|
subplot(2,1,2);
|
|
plot(t, signal_filtered);
|
|
title('Low-pass Filtered Signal');
|
|
xlabel('Time (samples)');
|
|
ylabel('Amplitude'); |