¿Por qué obtengo un pico alto en mi gráfica FFT de una onda sinusoidal de 50 Hz?

1

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

La señal:

gráficodeFFT:

EDIT:

He cambiado una línea del código, y ahora está normalizado:

gráfico (f, mx ./ (max (abs (X)));

    

1 respuesta

0

Todo me parece normal. Por el teorema de Parseval, la suma de cuadrados de las muestras de la función de entrada es igual a la suma de cuadrados de los valores transformados. Un comentario indica "da el poder", pero la suma cuadrada de esos valores NO es el poder, es la energía. El poder, en la transformación, es la altura máxima cuadrada es multiplicada por el ancho de banda (es decir, un área bajo un pico). Al tomar múltiples ciclos, el ancho de banda disminuye y el pico la altura sube.

    
respondido por el Whit3rd

Lea otras preguntas en las etiquetas