Delphi-PRAXiS
Seite 9 von 11   « Erste     789 1011      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Goertzel Algorithmus (Frequenz + Phase) (https://www.delphipraxis.net/162396-goertzel-algorithmus-frequenz-phase.html)

stoxx 25. Aug 2011 22:30

AW: Goertzel Algorithmus (Frequenz + Phase)
 
oder kann es vielleicht sein, dass Dein Scilab beim ERZEUGEN der Frequenzen einfach immer nur volle Schwinungen erzeugt? und nicht bei der hälfte abbricht?
somit also gar keine Leakage Effekte auftauchen?

TiGü 25. Aug 2011 23:04

AW: Goertzel Algorithmus (Frequenz + Phase)
 
phreak fasst es im Beitrag 79 sehr gut zusammen.
Wenn du das drei Mal durchliest, verstehst du das vielleicht auch.
Vielleicht wären auch erstmal Mathematik-Grundlagen, Signalverarbeitung (Bücher wie Sand am Meer) und ein Internet-Grundkurs empfehlenswert. 8-)

Wenn du den Scilab Code mal ausführst und liest, wird dir auffallen, wie die Variable (array) t (für time) immer befüllt wird. Logischerweise werden dadurch die Sinusfunktionen immer mit y = 0 anfangen und enden.
Die Bedingung 1) die phreak genannt hat, wird also erfüllt.
Wenn man anfängt aus dem Array t Werte auf Null zu setzen, werden auch die Spektren logischerweise si-förmig (si = sin(x) / x).

Dahinter ist nichts magisches, sondern (physikalisch-mathematische) Grundgesetze der Signaltheorie.
Es geht einfach nicht anders. Glaube es einfach, oder lese es nach bis du es weißt. Und das ist wirklich fundamental unabhängig von Algo. Punkt!

Probiere es aus und lerne!

stoxx 25. Aug 2011 23:23

AW: Goertzel Algorithmus (Frequenz + Phase)
 
Zitat:

Zitat von TiGü (Beitrag 1119713)
Vielleicht wären auch erstmal Mathematik-Grundlagen, Signalverarbeitung (Bücher wie Sand am Meer) und ein Internet-Grundkurs empfehlenswert. 8-)
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.

stoxx 25. Aug 2011 23:45

AW: Goertzel Algorithmus (Frequenz + Phase)
 
Liste der Anhänge anzeigen (Anzahl: 1)
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)

TiGü 26. Aug 2011 18:35

AW: Goertzel Algorithmus (Frequenz + Phase)
 
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"?

Zitat:

Zitat von stoxx (Beitrag 1119716)
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.

stoxx 26. Aug 2011 21:05

AW: Goertzel Algorithmus (Frequenz + Phase)
 
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?

phreax 26. Aug 2011 21:59

AW: Goertzel Algorithmus (Frequenz + Phase)
 
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...

TiGü 27. Aug 2011 11:16

AW: Goertzel Algorithmus (Frequenz + Phase)
 
Zitat:

Zitat von stoxx (Beitrag 1119867)
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?

stoxx 27. Aug 2011 12:40

AW: Goertzel Algorithmus (Frequenz + Phase)
 
Zitat:

Zitat von phreax (Beitrag 1119874)
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

stoxx 27. Aug 2011 12:47

AW: Goertzel Algorithmus (Frequenz + Phase)
 
Zitat:

Zitat von TiGü (Beitrag 1119898)
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...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Seite 9 von 11   « Erste     789 1011      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz