mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Spezielle Frequenzsuche


Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gerrit Buhe (gbuhe)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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?pri...
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.