¿Por qué hay colinas en forma de peine en un periodograma?

8

Estoy jugando con el periodogramde MATLAB. Creé un script simple para observar cómo se comporta:

rng(1);  %# initialize the random number generator

Fs = 1000;  %# Sampling frequency
duration = 0.1; %# seconds

A = 1; %# Sinusoid amplitude
f = 150; %# Sinusoid frequency
eps = 0.01;

t = 0:1/Fs:duration;
x = A * sin(2*pi*f*t) + eps * randn(size(t));

periodogram(x,[],1024,Fs);

ingrese la descripción de la imagen aquí

No tengo ningún problema con el código y puedo escribir mi propia periodogramfunción utilizando los algoritmos que figuran en la documentación, pero me pregunto la razón teórica detrás de las colinas en forma de peine que no son de 150 Hz. ¿Qué obtengo en lugar de obtener un solo pico de más de 150 Hz? ¿Hay algo especial en las distancias de los picos de estas colinas?

petrichor
fuente

Respuestas:

5

No estoy completamente satisfecho con la respuesta de Itamar Katz, así que aquí está mi explicación.

La DFT de una señal compleja de longitud , esx [ n ] = e ı 2 π f n / NnorteX[norte]=miyo2πFnorte/ /norte

X[k]=F{X[norte]}=miyo2π(F-k)-1miyo2π(F-k)/ /norte-1

Entonces, la potencia o la respuesta al cuadrado de magnitud viene dada por

El |X[k]El |2=(pecado(π(F-k))pecado(π(F-k)/ /norte))2

Como puede ver, la expresión anterior es cero siempre que sea ​​un número entero. Puedes convencerte de que el denominador es cero en un solo punto, y en este punto, tomar límites te da un valor para la razón. Por lo tanto, no hay ningún punto en el que explote la expresión.F-knorte2

Ahora, cuando tomas el registro de la expresión anterior, es (o para el caso, en cualquier base) y, por lo tanto, obtienes valores nulos en todas partes donde tenías un cero. Esto es lo que resulta en el "peine como colinas" en su trama.losol10(0 0)-

Aquí hay una breve ilustración en Mathematica:

Clear@X
X[f_, n_] := (Sin[π (f - #)]/Sin[π (f - #)/n])^2 &
Plot[X[3, 10][k], {k, -5, 5}, PlotRange -> All]

ingrese la descripción de la imagen aquí

La frecuencia está en el eje xy la potencia (lineal) está en el eje y. Puedes ver que los ceros ocurren en valores enteros y el pico está en 3, que es la frecuencia que elegí. Ahora tomando de lo anterior, obtienes valores nulos que dan lugar a la estructura de peinelosol10

ingrese la descripción de la imagen aquí

Aquí hay otro ejemplo con una más grande , que muestra más nulos.norte

ingrese la descripción de la imagen aquí

Lorem Ipsum
fuente
12

Una sola espiga (como la llamas) aparece teóricamente solo para una sinusoide de longitud infinita. Como su señal tiene una longitud de 100 muestras, no es infinita. En realidad, multiplicó su señal infinita con una ventana que tiene un valor de 1 sobre 100 muestras, y 0 en otro lugar. Dado que la multiplicación en el dominio del tiempo es equivalente a la convolución en el dominio de la frecuencia, su espectro es una convolución del pico único y la respuesta de frecuencia de la ventana (por cierto se llama ventana rectangular). Esta es la función que tienes.

Le sugiero que lea sobre las ventanas: http://en.wikipedia.org/wiki/Window_function

Itamar Katz
fuente
+1 Oh, sabía sobre la ventana pero no pude hacer el enlace. ¡Gracias!
petrichor
1
Aparece un solo pico independientemente de la ventana utilizada, si la frecuencia se ajusta exactamente a la longitud de la ventana. gist.github.com/236567
endolith
1
Eso no es correcto. Para una ventana rectangular, esto es cierto, ya que muestra la función de la ventana en el dominio de frecuencia exactamente en sus ceros, por lo que está 'ciego' a los lóbulos laterales. Sin embargo, no es cierto para una función de ventana general.
Itamar Katz
ver ejemplo git: //gist.github.com/1403819.git
Itamar Katz
@ItamarKatz: Sí, tienes razón. Quise decir "sin ventana".
endolito el