¿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); p>
k01 = índice -1;
else
a1 = Xabs(índice) / Xabs(índice+1);
r1 = 1 /(1 +a1);
k01 = index;
end
Fn = (k01+r1-1)*fs/N; p>
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