Por que existem montanhas em pente em um periodograma?

8

Estou brincando com o periodogramMATLAB. Eu criei um script simples para observar como ele 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);

insira a descrição da imagem aqui

Não tenho nenhum problema com o código e posso escrever minha própria periodogramfunção usando os algoritmos fornecidos na documentação, mas me pergunto a razão teórica por trás das colinas em forma de pente que não são 150 Hz. O que eu recebo em vez de obter um único pico acima de 150 Hz? Existe algo de especial nas distâncias dos picos dessas colinas?

petrichor
fonte

Respostas:

5

Não estou totalmente satisfeito com a resposta de Itamar Katz, então aqui está minha explicação.

O DFT de um sinal complexo de comprimento , x [ n ] = e ı 2 π f n / N éNx[n]=eEu2πfn/N

X[k]=F{x[n]}=eEu2π(f-k)-1 1eEu2π(f-k)/N-1 1

Portanto, a potência ou a resposta ao quadrado da magnitude é dada por

|X[k]|2=(pecado(π(f-k))pecado(π(f-k)/N))2

f-kN2

euog10(0 0)-

Aqui está uma pequena ilustração no Mathematica:

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

insira a descrição da imagem aqui

euog10

insira a descrição da imagem aqui

N

insira a descrição da imagem aqui

Lorem Ipsum
fonte
12

Um único pico (como você chama) aparece teoricamente apenas para um sinusóide de comprimento infinito. Como seu sinal tem 100 amostras de comprimento, ele não é infinito. Na verdade, você multiplicou seu sinal infinito por uma janela com um valor de 1 a 100 amostras e 0 em outro lugar. Como a multiplicação no domínio do tempo equivale à convolução no domínio da frequência, seu espectro é uma convolução do pico único e a resposta de frequência da janela (btw é chamada de janela retangular). Esta é a função que você tem.

Eu sugiro que você leia sobre janelas: http://en.wikipedia.org/wiki/Window_function

Itamar Katz
fonte
+1 Ah, eu sabia sobre a janela, mas não conseguia fazer o link. Obrigado!
Petrichor
11
Um único pico aparece independentemente da janela usada, se a frequência for um ajuste exato para o comprimento da janela. gist.github.com/236567
endolith
11
Isso não está correto. Para uma janela retangular, isso é verdade, já que você experimenta a função da janela no domínio da frequência exatamente em seus zeros, portanto, fica "cego" para os lobos laterais. No entanto, isso não é verdade para uma função geral da janela.
Itamar Katz
veja o exemplo git: //gist.github.com/1403819.git
Itamar Katz
@ItamarKatz: Sim, você está certo. Eu quis dizer "sem janela".
endolith