ピリオドグラムに櫛のような丘があるのはなぜですか?


8

私はperiodogramMATLABのと遊んでいます。簡単なスクリプトを作成して、その動作を観察しました。

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);

ここに画像の説明を入力してください

私はコードに問題はなくperiodogram、ドキュメントに記載されているアルゴリズムを使用して独自の関数を記述できますが、150 Hzではないくしのような丘の背後にある理論的な理由が気になります。150 Hzを超える単一のスパイクを取得する代わりに、何を取得しますか?これらの丘の山頂の距離に特別なものはありますか?

回答:


5

Itamar Katzの答えに完全に満足しているわけではないので、ここで説明します。

Nバツ[]=e2πf/N

バツ[k]=F{バツ[]}=e2πfk1e2πfk/N1

したがって、パワーまたはマグニチュード2乗応答は、

|バツ[k]|2=πfkπfk/N2

fkN2

log100

これがMathematicaの短いイラストです:

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

ここに画像の説明を入力してください

log10

ここに画像の説明を入力してください

N

ここに画像の説明を入力してください


12

理論的には、単一のスパイク(いわゆる)は、無限長の正弦波に対してのみ現れます。信号は100サンプル長なので、無限ではありません。あなたは実際にあなたの無限の信号に100以上のサンプルの1と他の場所では0の値を持つウィンドウを掛けました。時間領域での乗算は周波数領域でのたたみ込みと等価であるため、スペクトルは単一スパイクとウィンドウの周波数応答(長方形ウィンドウと呼ばれます)のたたみ込みです。これはあなたが得た機能です。

ウィンドウ処理について読むことをお勧めします:http : //en.wikipedia.org/wiki/Window_function


+1ああ、私はウィンドウ処理について知っていましたが、リンクを作成できませんでした。ありがとう!
ペトリコ

1
周波数がウィンドウの長さに正確に適合している場合、使用されているウィンドウに関係なく、単一のスパイクが表示されます。gist.github.com/236567
endolith

1
不正解です。長方形のウィンドウの場合、これは当てはまります。周波数領域のウィンドウ関数をそのゼロで正確にサンプリングするため、サイドローブに対して「ブラインド」になります。ただし、一般的なウィンドウ関数には当てはまりません。
Itamar Katz

例git://gist.github.com/1403819.gitを参照してください
Itamar Katz

@ItamarKatz:そうだね。「窓なし」という意味です。
endolith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.