44 lines
742 B
Matlab
44 lines
742 B
Matlab
clc;
|
|
close all;
|
|
clear all;
|
|
|
|
% semestralka
|
|
rawText = fileread('data6.dat');
|
|
nums = regexp(rawText, '[-+]?\d+', 'match');
|
|
data = int16(str2double(nums));
|
|
|
|
X = DFT_priama(double(data));
|
|
n = length(X);
|
|
Fs = 200;
|
|
freq = (0:n-1)*Fs/n;
|
|
|
|
figure;
|
|
plot(double(data));
|
|
figure;
|
|
plot(freq, X)
|
|
%3
|
|
figure;
|
|
magX = abs(X);
|
|
plot(freq, magX)
|
|
% freq shift pre -Fs/2 po Fs/2
|
|
freq_shift = (-n/2:n/2-1)*(Fs/n);
|
|
%4
|
|
figure;
|
|
subplot(2,1,1);
|
|
plot(freq_shift, real(fftshift(X)), 'b');
|
|
subplot(2,1,2);
|
|
plot(freq_shift, imag(fftshift(X)), 'r');
|
|
%5
|
|
figure;
|
|
plot(freq, imag(X), 'r');
|
|
%6
|
|
figure;
|
|
plot(freq, real(X), 'r');
|
|
figure;
|
|
plot(freq, angle(X))
|
|
|
|
[pks, locs] = findpeaks(magX, 'NPeaks', 10, 'SortStr', 'descend');
|
|
f0 = freq(locs)
|
|
f0b = f0(f0 < 100);
|
|
f0_ohranicene = f0b
|