Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar Matlab para realizar la transformación FFT en un conjunto de datos para obtener el componente de onda fundamental? ¡Muchas gracias!

¿Cómo utilizar Matlab para realizar la transformación FFT en un conjunto de datos para obtener el componente de onda fundamental? ¡Muchas gracias!

x = load('data.dat'); %carga de datos

fs=10000; % de frecuencia de muestreo, configurada según la situación real

N= length(x); % x son los datos a analizar

n=1:N;

%1-FFT

X=fft(x) ; % FFT

X=X(1:N/2);

Xabs=abs(X);

Xabs(1) = 0; DC Establezca el componente en 0

para i= 1: m

[Amax,index]=max(Xabs);

if(Xabs(index- 1) > Xabs(índice+1))

a1 = Xabs(índice-1) / Xabs(índice);

r1 = 1/(1+a1);

k01 = índice -1;

else

a1 = Xabs(índice) / Xabs(índice+1);

r1 = 1 /(1 +a1);

k01 = index;

end

Fn = (k01+r1-1)*fs/N;

An = 2*pi*r1*Xabs(k01)/(N*sin(r1*pi)); % amplitud de onda fundamental

Pn = fase(X(k01) ) -pi*r1; %unidad de ángulo de fase fundamental radianes

Pn = mod(Pn(1),pi);

end