AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Goertzel Algorithmus (Frequenz + Phase)

Ein Thema von stoxx · begonnen am 20. Aug 2011 · letzter Beitrag vom 4. Okt 2011
Antwort Antwort
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#1

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 25. Aug 2011, 23:23
Vielleicht wären auch erstmal Mathematik-Grundlagen, Signalverarbeitung (Bücher wie Sand am Meer) und ein Internet-Grundkurs empfehlenswert.
Probiere es aus und lerne!
Das wollte ich eben nicht, daher meine Frage nach dem Görtzel.

es fängt schon an, jetzt hab ich die Unit probiert.
Scheint das zu machen, was sie soll, nur .. ich habe eine Frequenz von 175,5 reingetan, und er gibt mir 175,0 aus.

http://www.delphipraxis.net/87967-ff...gorithmus.html

Wie und wo kann ich also die Unit ändern, dass sie korrekt arbeitet?
... ohne gleich ganze Bücher durchlesen zu müssen?
Dann hätte ich ja hier auch nicht fragen brauchen.

Ich wollte etwas, was ich handhaben kann.
Die Unit soll nur mit 2000 Werten aufgerufen werden, warum nicht mehr?
ich will aber 100.000 da rein tun, was nun?

Rechnet sie dann nicht richtig?

(wenn Du nicht antworten möchtest, kann ich es verstehen, ich hoffe dann einfach, dass noch jemand anderes sich meinen Fragen erbarmt)
Ich hoffe, meine Fragen sind soweit nicht unverständlich.
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#2

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 25. Aug 2011, 23:45
der Grund warum ich frage, der Goertzel hat für tiefe Frequenzen unter 50 Hz leider eine Macke irgendwie. (siehe Bild)

Ich hab auch noch den Algorithmus von Reinsch programmiert, er liefert komischerweise das gleiche.

Aber so wie es aussieht, scheint die DFT gleich gar nicht das zu machen was sie soll (halbe Frequenzen)
Angehängte Grafiken
Dateityp: png 2011 (08) 26.Aug [00-42-32].png (41,7 KB, 23x aufgerufen)
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 26. Aug 2011, 18:35
1. Nicht immer die fachlichen Begriffe durcheinanderwürfeln!
2. Nach welchen Zusammenhang werden bei dir denn Wellenlängen gebildet?
f1 = 50 Hz und l1 = 60 m(?) und f1 = 33,33Hz und l1 = 30 m(?) -> kein gemeinsamer Umrechnungsfaktor erkennbar.
3. Was heißt macht nicht das was sie soll = halbe Frequenzen?
Soll das von dir gewünschte Programm das Signal "teilen"?

Wie und wo kann ich also die Unit ändern, dass sie korrekt arbeitet?
... ohne gleich ganze Bücher durchlesen zu müssen?
Dann hätte ich ja hier auch nicht fragen brauchen.
Wie und wo kann ich mich doof stellen, ohne selber überlegen und mich informieren zu müssen?

Du bist Hobbyprogrammierer, oder?
Ganz ehrlich, mach lieber irgendetwas anderes, etwas wobei du dich auskennst.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#4

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 26. Aug 2011, 21:05
Hallo TiGü, Vergiss es einfach, so schlimm ist es dann doch nicht, das hab ich das nötig hätte.

Du scheinst auch nur die Hälfte zu verstehen, was ist an einer halben Frequenz nicht verständlich?
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 26. Aug 2011, 21:59
Hi Stoxx,
Das Problem ist, dass du selbst den Algorithmus implementiert hast, wenn der jetzt plötzlich fehlerhafte Spektren ausgibt (so interpertiere ich jetzt mal die Aussage mit den "halben Frequenzen"), dann lässt das den Umkehrschluss zu dass deine Implementation einen Fehler enthält, da jeder dieser Algorithmen ein korrketes Fourierspektrum bilden kann, nur mehr oder weniger effizient. Welchen Fehler du gemacht hast können wir aus der Ferne nicht festellen.
Daher appelliere ich an dich den hier bereits verlinkten Code für eine DFT zu verwenden da er das gleiche kann wie der Goertzel, das klappt auch mit größeren Datenmengen als 2000 dauert eben nur länger und lässt sich beschleunigen in dem man Zweierpotenzen als Fenstergröße verwendet.

PS: und bitte unterlasst doch das wechselseitige infragestellen der Kompetenz, das bringt niemanden weiter...
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#6

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 27. Aug 2011, 12:40
Hi Stoxx,
Das Problem ist, dass du selbst den Algorithmus implementiert hast,
....

Daher appelliere ich an dich den hier bereits verlinkten Code für eine DFT zu verwenden da er das gleiche kann wie der Goertzel, das klappt auch mit größeren Datenmengen als 2000 dauert eben nur länger und lässt sich beschleunigen in dem man Zweierpotenzen als Fenstergröße verwendet.
von dem DFT Code sprach ich eigentlich, genau dieser Code gibt bei einer Frequenz von 175,5 nur das Ergebnis 175 zurück.
Mich hätte nur interessiert, ob das verfahrenstechnisch nicht anders geht, dann brauch ich mich auch nicht weiter drum kümmern. Oder ob das vom DFT Algorithmus abhängt?

http://www.delphipraxis.net/87967-ff...gorithmus.html
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 27. Aug 2011, 11:16
Du scheinst auch nur die Hälfte zu verstehen, was ist an einer halben Frequenz nicht verständlich?
Du formulierst wie eine Tarotkartenleserin, so dass man alles mögliche interpretieren kann!

Willst vom Ursprungssignal nur die halbe Frequenz?
Also bspw: f1(t) = 1/3 * sin(1000*x) + 2 * cos(600*x) wird zu f2(t) = 1/3 * sin(500*x) + 2 * cos(300*x)!
Wenn das sowas ist, was du willst, musst du dich mit hiermit beschäftigen:
http://de.wikipedia.org/wiki/Modulation_%28Technik%29
http://de.wikipedia.org/wiki/%C3%9Cb...empf%C3%A4nger

Genauer wirds hier:
http://books.google.de/books?id=Jel3...page&q&f=false

Wenn ja, wozu eigentlich?

Was ist mit den Wellenlängen? Hallo?
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#8

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 27. Aug 2011, 12:47
Du formulierst wie eine Tarotkartenleserin, so dass man alles mögliche interpretieren kann!

Willst vom Ursprungssignal nur die halbe Frequenz?
Also bspw: f1(t) = 1/3 * sin(1000*x) + 2 * cos(600*x) wird zu f2(t) = 1/3 * sin(500*x) + 2 * cos(300*x)!
Was ist mit den Wellenlängen? Hallo?

nein, ich hab sowas mit Deinem vorgeschlagenem FFT Algorithmus erzeugt:

f(t) = 3 * sin(2 * Pi * 175,5)

und gefunden hat die FFT 175,0

Die Frage ist, ob das verfahrenstechnisch nicht anders geht.

Frequenzen mit Nachkommastellen wäre der richtige Begriff dafür gewesen...
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 27. Aug 2011, 18:10
Ich denke mal, dass das Problem hier in der Frequenzauflösung liegt.
Die Frequenzauflösung deiner DFT hängt von der Anzahl der betrachteten Abstastwerte und der Abtstfrequenz ab:
Code:
n: Anzahl der transformierten Abtastwerte
fa: Abtastfrequenz
Frequenzauflösung: fr=fa/n
Dein Spektrum besteht dann aus verschiedenen Frequenzkörben (frequency bins) die im Abstand fr liegen.
Wenn du jetzt nicht genau einen Korb bei 175 Hz liegen hast, dann werden die zu 175,5 Hz gehörigen Spektralwerte eben in den 175 Korb sortiert. Eine höhere Frequenztauflösung bekommst du also nur wenn du längere Signalabschnitte betrachtest.

EDIT: Das Problem tritt übrigens unabhängig vom verwendeten Algorithmus auf.
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!

Geändert von phreax (27. Aug 2011 um 23:15 Uhr) Grund: Formel korrigiert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz