Warum gibt es in einem Periodogramm kammartige Hügel?


8

Ich spiele mit dem periodogramvon MATLAB. Ich habe ein einfaches Skript erstellt, um zu beobachten, wie es sich verhält:

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

Geben Sie hier die Bildbeschreibung ein

Ich habe kein Problem mit dem Code und kann meine eigene periodogramFunktion mit den in der Dokumentation angegebenen Algorithmen schreiben, aber ich frage mich, welchen theoretischen Grund die kammartigen Hügel haben, die nicht 150 Hz betragen. Was bekomme ich, anstatt eine einzelne Spitze über 150 Hz zu bekommen? Gibt es etwas Besonderes in den Entfernungen der Gipfel dieser Hügel?

Antworten:


5

Ich bin mit der Antwort von Itamar Katz nicht ganz zufrieden, daher hier meine Erklärung.

Die DFT eines komplexen Signals mit Länge istNx[n]=eı2πfn/N

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

Die Leistung oder die quadratische Antwort der Größe ist also gegeben durch

|X.[k]]|2=(Sünde(π(f- -k))Sünde(π(f- -k)/.N.))2

Wie Sie sehen können, ist der obige Ausdruck Null, wenn eine ganze Zahl ist. Sie können sich selbst davon überzeugen, dass der Nenner nur an einem Punkt Null ist. Wenn Sie an diesem Punkt Grenzen setzen, erhalten Sie einen Wert für das Verhältnis. Daher gibt es keinen Punkt, an dem der Ausdruck explodiert.N 2f- -kN.2

Nun , wenn Sie das Protokoll des obigen Ausdrucks nehmen, ist (oder was das betrifft, in jedem Untergrund) und damit Sie nulls bekommen überall eine Null hatte. Dies führt zu den "kammartigen Hügeln" in Ihrer Handlung.- lÖG10(0)- -

Hier ist eine kurze Illustration in Mathematica:

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

Geben Sie hier die Bildbeschreibung ein

Die Frequenz liegt auf der x-Achse und die Leistung (linear) auf der y-Achse. Sie können sehen, dass die Nullen bei ganzzahligen Werten auftreten und der Peak bei 3 liegt, was die von mir gewählte Frequenz ist. Wenn Sie nun der obigen Werte nehmen, erhalten Sie Nullen, die zu der kammartigen Struktur führenlÖG10

Geben Sie hier die Bildbeschreibung ein

Hier ist ein weiteres Beispiel mit einem größeren , das mehr Nullen zeigt.N.

Geben Sie hier die Bildbeschreibung ein


12

Eine einzelne Spitze (wie Sie es nennen) erscheint theoretisch nur für eine Sinuskurve unendlicher Länge. Da Ihr Signal 100 Samples lang ist, ist es nicht unendlich. Sie haben Ihr unendliches Signal tatsächlich mit einem Fenster multipliziert, das einen Wert von 1 über 100 Samples und 0 an anderer Stelle hat. Da die Multiplikation im Zeitbereich der Faltung im Frequenzbereich entspricht, ist Ihr Spektrum eine Faltung der einzelnen Spitze und des Frequenzgangs des Fensters (übrigens wird es als rechteckiges Fenster bezeichnet). Dies ist die Funktion, die Sie haben.

Ich schlage vor, Sie lesen über Fenster: http://en.wikipedia.org/wiki/Window_function


+1 Oh, ich wusste von der Fensterung, konnte aber den Link nicht herstellen. Vielen Dank!
Petrichor

1
Unabhängig vom verwendeten Fenster wird eine einzelne Spitze angezeigt, wenn die Frequenz genau zur Fensterlänge passt. gist.github.com/236567
Endolith

1
Das ist nicht richtig. Für ein rechteckiges Fenster gilt dies, da Sie die Fensterfunktion im Frequenzbereich genau in ihren Nullen abtasten, sodass Sie für die Nebenkeulen "blind" sind. Dies gilt jedoch nicht für eine allgemeine Fensterfunktion.
Itamar Katz

siehe Beispiel git: //gist.github.com/1403819.git
Itamar Katz

@ItamarKatz: Ja du hast recht. Ich meinte "ohne Fenster".
Endolith
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.