Forum: Digitale Signalverarbeitung / DSP / Machine Learning Görtzel-Algorithmus Simulink


von Levy (levo2322)


Angehängte Dateien:

Lesenswert?

Hallo liebe Community,

Folgende Parameter sind gewählt:
Abtastrate: 3000Hz
Pufferlänge: 64
Frequenzen: 100Hz, 200Hz, 300Hz

Ich möchte eine Zeit-Frequenezbereichswandlung mittels 
Görtzelalgorithmus in Simulink durchführen. Allerdings existiert kein 
entsprechender Block, daher nutze ich einen Matlab-Function Block.

Die Funktion ist simpel aufgebaut: Die Die Anzahl der samples N ist 
gleich der Eingangswerte u.

Beim Görtzel Algorithmus werden die Eingangsfrequenzen über die 
Abtastrate und die Anzahl der samples normiert (wie im ersten Beispiel 
der Dokumentation)

https://de.mathworks.com/help/signal/ref/goertzel.html#mw_497d20c5-6e25-4c3a-9dd7-a4b61b8dd383

Als Eingangssignal dient ein zusammengesetztes Sinussignal aus drei 
Sinuswellen mit den den Frequenzen 100,200 und 300 Hz, die Amplitude 
beträgt 1.

Wenn ich den Scope anschaue, sehe ich jedoch, dass sich die Amplitudem 
(Betrag der Zeit-Frequenzwandlung) sich verändert haben.

Zusätzlich scheint die puffer-range von 60 bis 70 zu sein, da ansonsten 
die Imaginäranteile 0 sind.

Mir ist leider nicht klar, wie dies zustande kommt.

von Martin K. (mkmannheim) Benutzerseite


Lesenswert?

Levy schrieb:
> Als Eingangssignal dient ein zusammengesetztes Sinussignal aus drei
> Sinuswellen mit den den Frequenzen 100,200 und 300 Hz, die Amplitude
> beträgt 1.

Die Summe oder jede der Komponenten? Abweichungen bei G kommen nach 
meiner Erinnerung dann zustande, wenn die Frequenzen nicht exakt 
stimmen, die einlaufen im Vergleich zu den untersuchten und die Periode 
kurz ist. Auch das Fenster kann wirken.

von Levy (levo2322)


Lesenswert?

> Die Summe oder jede der Komponenten?

Die einzelnen Komponenten. Die Summe der Amplituden wäre dann 3.

> Abweichungen bei G kommen nach
meiner Erinnerung dann zustande, wenn die Frequenzen nicht exakt
stimmen, die einlaufen im Vergleich zu den untersuchten

Die zu untersuchenden Frequenzen sind im Vektor f = [100,200,300] 
enthalten, das ist schon korrekt. Das zusammengesetzte Sinussignal 
besitzt die Frequenzen 100, 200 und 300Hz, es sei denn, der Buffer, der 
vorgeschaltet ist verändert aus irgendeinem Grund die Frequenzen.

Wenn die Frequenz einer Komponente im Signal ein Zehntel der Abtastrate 
(Fs) beträgt, verringert sich die Amplitude dieser Frequenz im Signal um 
die Hälfte. In anderen Worten, wenn eine Frequenz im Signal 1/10 der 
Abtastrate entspricht, wird ihre Amplitude halbiert im Vergleich zu 
anderen Frequenzkomponenten im Signal. Dieses Verhalten könnte auf 
Interaktionen zwischen der Abtastrate und der Signalfrequenz 
zurückzuführen sein.

>Auch das Fenster kann wirken.
Ich verstehe leider nicht, was mit diesem Satz gemeint ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.