68 lines
1.6 KiB
Matlab
68 lines
1.6 KiB
Matlab
pkg load signal;
|
|
|
|
signal = csvread('unknownsignal.csv');
|
|
fs = 640;
|
|
t = linspace(0, length(signal)/fs, length(signal));
|
|
|
|
#Create a window for the domain we want to study
|
|
domainStart = 1;
|
|
domainEnd = 1300/2;
|
|
domainEnd2 = 1300;
|
|
|
|
lengthDomain = domainEnd - domainStart +1;
|
|
lengthDomain2 = domainEnd2 - domainEnd +1;
|
|
#window the signal
|
|
signal_window1 = zeros(size(signal));
|
|
signal_window1(domainStart:domainEnd) = signal(domainStart:domainEnd) .* blackman(lengthDomain)';
|
|
t1 = linspace(0, length(signal_window1)/fs, length(signal_window1));
|
|
signal_window2 = zeros(size(signal));
|
|
signal_window2(domainEnd:domainEnd2) = signal(domainEnd:domainEnd2) .* blackman(lengthDomain2)';
|
|
t2 = linspace(0, length(signal_window2)/fs, length(signal_window2));
|
|
specgram(signal', 256, 650);
|
|
# making of the FFT
|
|
F = (0:length(signal)-1)*(fs/length(signal));
|
|
fft_signal_window1 = fft(signal_window1);
|
|
fft_signal_window2 = fft(signal_window2);
|
|
|
|
plot(t, signal);
|
|
title('first part');
|
|
xlabel("Time");
|
|
ylabel("Amplitude");
|
|
figure;
|
|
plot(F, fft_signal_window1');
|
|
title('first part FFT');
|
|
xlabel("Frequency");
|
|
ylabel("Amplitude");
|
|
figure;
|
|
plot(F, fft_signal_window2');
|
|
title('second part FFT');
|
|
xlabel("Frequency");
|
|
ylabel("Amplitude");
|
|
|
|
figure;
|
|
|
|
subplot(2,2,1);
|
|
plot(t1, signal_window1');
|
|
title('first part');
|
|
xlabel("Time");
|
|
ylabel("Amplitude");
|
|
|
|
subplot(2,2,2);
|
|
plot(t2, signal_window2');
|
|
title('second part');
|
|
xlabel("Time");
|
|
ylabel("Amplitude");
|
|
|
|
subplot(2,2,3);
|
|
plot(F, fft_signal_window1');
|
|
title('first part FFT');
|
|
xlabel("Frequency");
|
|
ylabel("Amplitude");
|
|
|
|
subplot(2,2,4);
|
|
plot(F, fft_signal_window2');
|
|
title('second part FFT');
|
|
xlabel("Frequency");
|
|
ylabel("Amplitude");
|
|
|