Forum: Digitale Signalverarbeitung / DSP / Machine Learning Spezielle Frequenzsuche


von Michi (Gast)


Lesenswert?

Guten Abend,

ich habe ein kleines Problem. Ich habe zusammen mit meinem Professor 
eine Formel hergeleitet, womit man speziell nach Frequenzen suchen kann. 
Jedoch ist dies schopn 5 Wochen her und ich kann ihn gerade nicht 
erreichen.

Ich will nun diesen Ansatz umsetzen, in Java.

Die Formel lautet:

z(n)= (1-alpha)zn-1(f)+alpha xn*e^(-2Pi j *frequenz delta t *n)

alpha gibt an wie sehr vergangene Werte gewichtet werden
n ist die ANzahl der berechenten Werte
xn ist der aktuelle Abtastwert

Jetzt ist aber meine Frage in wiefern interpretiere ich das delta t? 
Weil ich verstehe es nicht in welcher maßeinheit ich es setzen soll. Und 
kann ich dies noch ersetzen?

Mein Ziel ist es die Phase und den Amplitude des gesuchten SIgnals zu 
finden. Ebenso will ich mittels Betragsspekrtrum die gewichtung der 
Frequenz ermitteln.

Fall jemand einen kurzen Code abschnitt senden kann, wäre ich auch sehr 
dankbar.

Mfg

Michi

von Gerrit B. (gbuhe)


Lesenswert?

Hallo Michi,

ich füge meine Kommentare ein:

> Die Formel lautet:
> z(n)= (1-alpha)zn-1(f)+alpha xn*e^(-2Pi j *frequenz delta t *n)

Bitte überprüfe die genaue Syntax Deiner Formel. Hier sind einige Fehler 
drin. Eine Suche nach "Goertzel-Algorithmus" wird Dich hier weiter 
bringen. Den gibt es 1. und 2. Ordnung.


> Jetzt ist aber meine Frage in wiefern interpretiere ich das delta t?

Das "delta t" ist der Kehrwert der verwendeten Abtastrate. Aus der 
kontinuierlichen Zeit t wird bei diskreter Signalverarbeitung nun mal 
ein delta_t * {0,1,2,3,4,5,6,...}, wobei delta_t = 1/f_abtast ist und 
das n die Zahl der Abtastung darstellt.


> Weil ich verstehe es nicht in welcher maßeinheit ich es setzen soll.

delta_t muß in Sekunden angegeben werden, damit es sich mit der Einheit 
von "frequenz", Hertz=1/s, aufhebt.


> Fall jemand einen kurzen Code abschnitt senden kann, wäre ich auch sehr
> dankbar.

Tu' Dir den Gefallen und verstehe erst was Du machen willst und wie es 
funktioniert. Dann schreibst Du Dir die paar Zeilen selbst.

Die Suchergebnisse nach "Goertzel-Algorithmus" werden aber auch genügend 
Implementierungsbeispiele geben.

Viel Erfolg!

Gerrit, DL9GFA

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ich finde die Beschreibung des Goertzel-Algorithmus von Kevin Banks sehr 
praxisnah, fast ein Kochrezept:
http://www.embedded.com/story/OEG20020819S0057
oder druckerfreundlicher formatiert:
http://www.embedded.com/story/OEG20020819S0057?printable=true
Am Ende des Artikels ist ein Zahlenbeispiel, wo man die 
"Filter-Durchlasskurve" an den Zahlenwerten schön sieht.

Interessant auch die dort verlinkte Beschreibung
http://www.numerix-dsp.com/goertzel.html
in der der Goertzel-Algorithmus als zweistufiges IIR-Filter erklärt 
wird.

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.