Estoy trazando el FFT de mi señal que se almacena en formato "Array" obtenido de la simulación. La señal es una onda sinusoidal de 50 Hz, así que obtengo un pico a 50 Hz. El problema es que el valor es demasiado alto. ¿Cuál es el problema en mi código, alguien puede verlo?
figure
plot(data1(2534947:2898217,1),data1(2534947:2898217,2))
Ydata1 = data1(2534947:2898217,2);
tstart = data1(2534947);
tend = data1(2898217);
t_stop = tend-tstart;
Ts = data1(2534940,1)-data1(2534939,1);
Fs = 1/Ts; % Sampling frequency
t = 0:Ts:t_stop-Ts;
nfft = length(Ydata1); % Length of FFT
nfft2 = 2^nextpow2(nfft); % Make it to the power 2
X = fft(Ydata1,nfft2); % Take FFT
X = X(1:nfft2/2); % FFT is symmetric, throw away second half
mx = abs(X); % Take the magnitude of fft of x
f = (0:nfft2/2-1)*Fs/nfft2;% Frequency vector
figure
plot(f,mx); % Generate plot
gráficodeFFT:
EDIT:
He cambiado una línea del código, y ahora está normalizado:
gráfico (f, mx ./ (max (abs (X)));