Si haces un diagrama FFT de una señal simple, como:
t = 0:0.01:1 ;
N = max(size(t));
x = 1 + sin( 2*pi*t ) ;
y = abs( fft( x ) ) ;
stem( N*t, y )
1Hz sinusoide + DC
FFT de arriba
Entiendo que el número en el primer contenedor es "cuánto DC" hay en la señal.
y(1) %DC
> 101.0000
El número en el segundo contenedor debería ser "cuánto 1 ciclo en toda la señal" hay:
y(2) %1 cycle in the N samples
> 50.6665
¡Pero no es 101! Se trata de 50.5.
Hay otra entrada al final de la señal fft, igual en magnitud:
y(101)
> 50.2971
Entonces 50.5 de nuevo.
Mi pregunta es, ¿por qué la FFT se refleja así? ¿Por qué no se trata solo de 101 pulgadas y(2)
(lo que, por supuesto, significa que todos los 101 contenedores de su señal tienen una sinusoide de 1 Hz)?
¿Sería exacto hacer:
mid = round( N/2 ) ;
% Prepend y(1), then add y(2:middle) with the mirror FLIPPED vector
% from y(middle+1:end)
z = [ y(1), y( 2:mid ) + fliplr( y(mid+1:end) ) ];
stem( z )
Voltear y agregar la segunda mitad del vector FFT
Pensé ahora, la parte reflejada en el lado derecho se agregó correctamente, dándome el deseado "los 101 contenedores de la FFT contienen una sinusoide de 1Hz"
>> z(2)
ans =
100.5943
Respuestas:
Las señales reales se "reflejan" en las mitades reales y negativas de la transformada de Fourier debido a la naturaleza de la transformada de Fourier. La transformada de Fourier se define como la siguiente:
Básicamente, correlaciona la señal con un montón de sinusoides complejos, cada uno con su propia frecuencia. Entonces, ¿cómo son esos sinusoides complejos? La siguiente imagen ilustra una sinusoide compleja.
El "sacacorchos" es el sinusoide complejo giratorio en el tiempo, mientras que los dos sinusoides que le siguen son los componentes reales e imaginarios extraídos del sinusoide complejo. El lector astuto notará que los componentes reales e imaginarios son exactamente iguales, solo que están desfasados unos de otros 90 grados ( ) Debido a que están 90 grados fuera de fase, son ortogonales y pueden "atrapar" cualquier componente de la señal a esa frecuencia.π2
La relación entre el exponencial y el coseno / seno está dada por la fórmula de Euler.
Esto nos permite modificar la transformada de Fourier de la siguiente manera:
En las frecuencias negativas, la transformada de Fourier se convierte en la siguiente:
La comparación de la versión de frecuencia negativa con la versión de frecuencia positiva muestra que el coseno es el mismo mientras que el seno está invertido. Sin embargo, todavía están 90 grados fuera de fase entre sí, lo que les permite capturar cualquier componente de señal a esa frecuencia (negativa).
Debido a que las sinusoides de frecuencia positiva y negativa están desfasadas 90 grados y tienen la misma magnitud, ambas responderán a señales reales de la misma manera. O más bien, la magnitud de su respuesta será la misma, pero la fase de correlación será diferente.
EDITAR: Específicamente, la correlación de frecuencia negativa es el conjugado de la correlación de frecuencia positiva (debido al componente seno sinusoidal invertido) para señales reales. En términos matemáticos, esto es, como señaló Dilip, lo siguiente:
Otra forma de pensarlo:
Los componentes imaginarios son solo eso ... ¡Imaginario! Son una herramienta que permite el empleo de un plano adicional para ver las cosas y hace posible el procesamiento de señales digitales (y analógicas), ¡si no es mucho más fácil que usar ecuaciones diferenciales!
Pero no podemos romper las leyes lógicas de la naturaleza, no podemos hacer nada 'real' con el contenido imaginario † y, por lo tanto, debe cancelarse efectivamente antes de volver a la realidad. ¿Cómo se ve esto en la Transformada de Fourier de una señal basada en el tiempo (dominio de frecuencia complejo)? Si sumamos / sumamos los componentes de frecuencia positiva y negativa de la señal que cancelan las partes imaginarias, esto es lo que queremos decir al decir que los elementos positivos y negativos se conjugan entre sí. Observe que cuando se toma un FT de una señal de tiempo, existen estas señales conjugadas, con la parte 'real' de cada una compartiendo la magnitud, la mitad en el dominio positivo, la mitad en el negativo, por lo que, en efecto, la suma de los conjugados elimina el contenido imaginario y proporciona solo el contenido real.†
Lo que significa que no podemos crear una tensión que es 5 i voltios. Obviamente, podemos usar números imaginarios para representar señales del mundo real que tienen valores de dos vectores, como las ondas EM polarizadas circularmente.† 5i
fuente
MATLABi people will need to translate this to account for the fact that MATLAB arrays are numbered from1 upwards.
Turning to your actual data, yourx is a DC value of 1 plus
slightly more than one period of a sinusoid of frequency 1 Hz.
Indeed, what you are getting is
t
in your MATLAB program to havefuente
Note that an FFT result is mirrored (as in conjugate symmetric) only if the input data is real.
For strictly real input data, the two conjugate mirror images in the FFT result cancel out the imaginary parts of any complex sinusoids, and thus sum to a strictly real sinusoid (except for tiny numerical rounding noise), thus leaving you with a representation of strictly real sine waves.
If the FFT result wasn't conjugate mirrored, it would represent a waveform that had complex values (non-zero imaginary components), not something strictly real valued.
fuente