Forum: Digitale Signalverarbeitung / DSP / Machine Learning Größte Spektrallinie finden; FFT + Goertzel?


von Chris S. (p41145)


Lesenswert?

Hallo,

Ich hab eine Frage zu einer bestimmten Messaufgabe:

Ich will bei einem Signal mit ein ATMega1284 die höchste
Spektrallinie zwischen 10 und 100Hz finden und messen.
Es kann mit ~8kHz gesamplet werden.

Mein Ansatz:
aus 8kSPS auf 1kSPS per Oversampling (Werte aufsummieren)
mit 512er FFT und Hamming-Fenster in Spektralbereich wandeln
Höchste Spektrallinie suchen, und mit dem benachbarten Spektrallinien
eine Parabelfunktion anlegen und Scheitelpunkt berechnen.
Der x-Anteil des Scheitelpunktes ist dann eine relativ präzise Frequenz
wo der höchste Wert liegt.
Zuletzt mit Goertzel-Algorithmus die Amplitude an der Frequenz 
ermitteln.

Ziel ist halt die Amplitude möglichst genau zu messen.
Kann mir jemand sagen ob der Ansatz so funktionieren wird,
oder besser noch jemand hat ein simpleren Weg, der vielleicht
Rechenzeit spart.

von Anja (Gast)


Lesenswert?

Hallo,

was meinst Du mit Spektrallinie.
Realanteil oder Betrag (oder Quadrat des Betrages) der Amplitude?

Bei Parabel denke ich am ehesten an "Quadrat des Betrages"

exakt siehe auch:

Beitrag "Re: Genaue Frequenzbestimmung nach FFT"

die Wenzel-Artikelserie ist hier noch zu finden:

http://www.gunthard-kraus.de/DSP/Dsp_CD/DSP_Application_Notes_and_Books_and_Tutorials/DSP-Artikelreihe%20%28Elektronik%29/

In der Praxis wirst Du durch Rauschen öfters mal auch auf der falschen 
Seite der maximalen Spektrallinie aufwachen.

Gruß Anja

von Detlef _. (detlef_a)


Lesenswert?

Hallo Chris,

nach der Bestimmung der Frequenz und der Amplitude wird des öfteren 
gefragt. Dazu habe ich hier:

Beitrag "Frequenz, Amplitude und Phase eines Sinussignals bestimmen"

was gesagt und ein Matlab script angehängt.

Das scheint mir für Deine Belange geeignet.

HTH.
Cheers
Detlef

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.