Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Análisis de datos cíclicos con FFT

Puede utilizar la transformada de Fourier para analizar variaciones en datos, como un evento en la naturaleza durante un periodo de tiempo.

Durante casi 300 años, los astrónomos han tabulado el número y el tamaño de las manchas solares utilizando el número relativo de manchas solares de Zurich. Represente el número de Zurich aproximadamente entre los años 1700 y 2000.

load sunspot.dat
year = sunspot(:,1);
relNums = sunspot(:,2);
plot(year,relNums)
xlabel('Year')
ylabel('Zurich Number')
title('Sunspot Data')

Figure contains an axes object. The axes object with title Sunspot Data, xlabel Year, ylabel Zurich Number contains an object of type line.

Para observar más de cerca la naturaleza cíclica de la actividad de las manchas solares, represente los primeros 50 años de datos.

plot(year(1:50),relNums(1:50),'b.-');
xlabel('Year')
ylabel('Zurich Number')
title('Sunspot Data')

Figure contains an axes object. The axes object with title Sunspot Data, xlabel Year, ylabel Zurich Number contains an object of type line.

La transformada de Fourier es una herramienta fundamental en el procesamiento de señales que identifica los componentes de frecuencia en los datos. Utilizando la función fft, extraiga la transformada de Fourier de los datos de Zurich. Elimine el primer elemento de la salida, que almacena la suma de los datos. Represente el resto de la salida, que contiene una imagen reflejada de coeficientes complejos de Fourier sobre el eje real.

y = fft(relNums);
y(1) = [];
plot(y,'ro')
xlabel('real(y)')
ylabel('imag(y)')
title('Fourier Coefficients')

Figure contains an axes object. The axes object with title Fourier Coefficients, xlabel real(y), ylabel imag(y) contains a line object which displays its values using only markers.

Los coeficientes de Fourier por sí mismos son difíciles de interpretar. Una medida más significativa de los coeficientes es su magnitud cuadrada, que es una medida de potencia. Puesto que la mitad de los coeficientes se repite en magnitud, solo necesita calcular la potencia en la mitad de los coeficientes. Represente el espectro de potencia como una función de frecuencia, medido en ciclos por año.

n = length(y);
power = abs(y(1:floor(n/2))).^2; % power of first half of transform data
maxfreq = 1/2;                   % maximum frequency
freq = (1:n/2)/(n/2)*maxfreq;    % equally spaced frequency grid
plot(freq,power)
xlabel('Cycles/Year')
ylabel('Power')

Figure contains an axes object. The axes object with xlabel Cycles/Year, ylabel Power contains an object of type line.

La máxima actividad de las manchas solares tiene lugar menos de una vez al año. Para obtener una vista de la actividad cíclica más fácil de interpretar, represente la potencia como una función de periodo, medida en años por ciclo. La gráfica revela que los picos de actividad de las manchas solares se producen aproximadamente una vez cada 11 años.

period = 1./freq;
plot(period,power);
xlim([0 50]); %zoom in on max power
xlabel('Years/Cycle')
ylabel('Power')

Figure contains an axes object. The axes object with xlabel Years/Cycle, ylabel Power contains an object of type line.

Consulte también

| |

Temas relacionados