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
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 23. Aug 2011, 01:26
Was meinst Du mit Frequenzantwort eines Rechtecksignals?
Die beiden Bilder rechts: Die Fourier-Transformierte Rechteckfunktion ist (im Realanteil) sinc(x), und abs(sinc(x)) schaut deiner "dreckigen" Funktion extrem ähnlich. Daher scheinen deine "Hügel" schlicht das Ergebnis des mit ältesten Problems der Signalanalyse zu sein: Aliasing. Lösung: Fenstern! Tut mir ja leid. Sinc-ähnliche Spektren sind täglich Brot in der Analyse, und sicherlich schon für viele ein Ärgernis gewesen. Ich spreche da aus Erfahrung . Fenster sind einfach dein Freund - wobei es da leider eben kein "gut oder schlecht" gibt, sondern nur "der Anforderung entsprechend günstig".

Daher insbesondere, aber auch mal so generell: Du schreibst viel, aber nicht was du überhaupt erreichen willst. Deine Kombi aus ungenauer Beschreibung und Neuheit in Sachen Signalverarbeitung (bzw. der daraus resultierenden Ambivalenzen in der Terminologie) machen das alles hier etwas schwierig. Was genau willst du am Ende haben, und was kommt rein? Bisher scheint mir ja nach wie vor eine günstig gefensterte FFT auf dem gesamten Signal mit anschließender lokaler Maximasuche eine gute Sache zu sein, aber wirklich bewerten kann man das aufgrund deiner Ausführungen nicht so in echt
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

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

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 23. Aug 2011, 01:38
Fenstern! Tut mir ja leid. Sinc-ähnliche Spektren sind täglich Brot in der Analyse, und sicherlich schon für viele ein Ärgernis gewesen. Ich spreche da aus Erfahrung . Fenster sind einfach dein Freund - wobei es da leider eben kein "gut oder schlecht" gibt, sondern nur "der Anforderung entsprechend günstig".
da werde ich wohl noch zu tun haben.
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.

Geändert von stoxx (23. Aug 2011 um 12:40 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 23. Aug 2011, 02:39
Du bleibst schwammig. Du willst einen Nulldurchgang? Nicht? Wann? Wo? Was genau willst du tun!? Feststellen, ob eine ganz bestimmte Frequenz in einem Signal vorliegt? Feststellen, zu welchem Anteil eine bestimmte Frequenz in einem Signal vorliegt? Feststellen, welche Frequenz in einem Signal maximal vorliegt? Feststellen, welche Frequenzen in einem Signal dominieren? Frequenzen suchen, die in bekannter Phase sind? Phasen suchen, in denen eine Frequenz im Signal vorliegt? WAS!? Ein Nulldurchgang ist einfach*, das weisst du ja. Aber was willst du mit diesem anfangen? Ich glaube, du bist so tief in deinem Problem, dass dir das verständliche Erklären des Gesamtproblems für Aussenstehende abhanden gekommen ist. Geht mir selbst öfter als mir lieb ist auch so, aber allein dies zu tun ist oft ja schon 50% der Lösungsfindung - oft dann sogar schon von allein.
Aber ich weiss, trotz Verfolgung des Threads, grad echt nicht, wo bei dir die Glocken hängen. Oder wo sie hängen sollten. Oder klingen sollten

*) Eben bei Sign(Signal(t)) <> Sign(Signal(t-1)) bzw. Signal(t) = 0; bei komplexen Signalen (lies: von sin(t) verschieden) aber wird es halt doch scho nwieder ekelig, da dir ein Berg bzw. Tal einer Frequenz den eigentlichen Nulldurchgang einer anderen ins Positive bzw. Negative verschubsen kann (und wird). Und da liegt ja der Hund begraben. Wenn das so einfach wäre, gäb es das sicherlich schon. Für einfache Sinusschwingungen langt doch das Merken ob man einen pos/neg Wechsel hatte, und der Nulldurchgang danach ist's. Aber nochmals: Was für Signale hast du, und was für eine Aussage willst du über dieses treffen?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

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

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 23. Aug 2011, 03:12
Du bleibst schwammig. Du willst einen Nulldurchgang? Nicht? Wann? Wo? Was genau willst du tun!? Feststellen, ob eine ganz bestimmte Frequenz in einem Signal vorliegt? Feststellen, zu welchem Anteil eine bestimmte Frequenz in einem Signal vorliegt? Feststellen, welche Frequenz in einem Signal maximal vorliegt? Feststellen, welche Frequenzen in einem Signal dominieren? Frequenzen suchen, die in bekannter Phase sind? Phasen suchen, in denen eine Frequenz im Signal vorliegt? WAS!? Ein Nulldurchgang ist einfach*, das weisst du ja. Aber was willst du mit diesem anfangen? Ich glaube, du bist so tief in deinem Problem, dass dir das verständliche Erklären des Gesamtproblems für Aussenstehende abhanden gekommen ist. Geht mir selbst öfter als mir lieb ist auch so, aber allein dies zu tun ist oft ja schon 50% der Lösungsfindung - oft dann sogar schon von allein.
Aber ich weiss, trotz Verfolgung des Threads, grad echt nicht, wo bei dir die Glocken hängen. Oder wo sie hängen sollten. Oder klingen sollten



Was ich möchte? .. Freqenzen finden, bestimmte .. die wichtigsten Frequenzen.
Rauschen rauschschneiden (Tiefpassfilter) und Signalrekonstruktion aus den übriggebliebenen und gewählten Frequenzen.
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.

Geändert von stoxx (23. Aug 2011 um 12:38 Uhr)
  Mit Zitat antworten Zitat
TiGü

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

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 23. Aug 2011, 08:49
Was ich möchte? .. Freqenzen finden, bestimmte .. die wichtigsten Frequenzen.
Rauschen rauschschneiden (Tiefpassfilter) und Signalrekonstruktion aus den übriggebliebenen und gewählten Frequenzen.
1. Welche Bandbreite hat das Signal?
2. Welche Frequenzen sind gesucht?
3. Kann man das konkretisieren, also weißt du welche Frequenzen GENAU gesucht werden?
4. Willst du den Phasenunterschied zwischen zwei oder mehr Frequenzen wissen?
5. Wenn ja, wozu?
6. Gibt es Einschränkungen für die Abtastrate?
7. Mit welchen SNR ist zu rechnen?
8. Ist das Rauschen frequenzmäßig immer kleiner als die gesuchten Frequenzen?

Mich beschleicht das Gefühl, dass du dich in einer Lösung verrannt hast und nicht mehr das große Ganze siehst bzw. dich auf den Goertzel-Algorithmus versteift hast.

Am besten wäre es, wenn du mit MATLAB bzw. Scilab erstmal eine funktionierende Lösung bastelst.
So kannst dich voll und ganz auf das Problem konzentrieren, ohne dich mit den Feinheiten der Delphi-Programmierung bzw. der verwendeten Algorithmen auseinandersetzen zu müssen.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

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

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 23. Aug 2011, 10:32
doch noch kurz zu Deinen Fragen ...

1. Welche Bandbreite hat das Signal?
das möchte ich ja herausfinden

1. Welche Bandbreite hat das Signal?
das sehe ich erst dann, im Moment sehe ich nur per "Auge" eine zyklik, die ich näher bestimmen möchte.

4. Willst du den Phasenunterschied zwischen zwei oder mehr Frequenzen wissen?
ja, sehr wichtig.

7. Mit welchen SNR ist zu rechnen?
darf ich fragen, was das ist?

8. Ist das Rauschen frequenzmäßig immer kleiner als die gesuchten Frequenzen?
nicht unbedingt ..


der korrekte Goertzel Algo, der auch den korrenten imaginär und realteil liefert, steht überigens auf der Buchseite, die ich hier schon gepostet habe vor ein paar Tagen
man muss nur lesen können ..
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.

Geändert von stoxx (23. Aug 2011 um 12:05 Uhr)
  Mit Zitat antworten Zitat
TiGü

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

AW: Goertzel Algorithmus (Frequenz + Phase)

  Alt 23. Aug 2011, 12:52
1. Welche Bandbreite hat das Signal?
das möchte ich ja herausfinden
Nein, sowas weiß man vorher!

Hast du es mit Audiofrequenzen zu tun? Seismische Wellen? Hoch- Höchst- oder Mikrowellensignalen?
Hast du ein Tiefpasssignal oder musst du erst was von einer Trägerfrequenz demodulieren?

Ich nehme an, zumindest interpretiere ich so die vorigen Posts, du hast Audiosamples als Dateien bzw. direkt von der Soundkarte.
Hier wäre eine Abtastrate von min. 44,1 kHz zu empfehlen

1. Welche Bandbreite hat das Signal?
das sehe ich erst dann, im Moment sehe ich nur per "Auge" eine zyklik, die ich näher bestimmen möchte.
Ist wohl die Antwort auf Frage zwei.
Was möchtest du da näher bestimmen?

4. Willst du den Phasenunterschied zwischen zwei oder mehr Frequenzen wissen?
ja, sehr wichtig.
Warum ist das sehr wichtig?

7. Mit welchen SNR ist zu rechnen?
darf ich fragen, was das ist?
Du darst, und zwar Mr. Google.
Hör mal, wir können dir nicht die Grundlagen von (digitaler) Signaltheorie und -Verarbeitung beibringen, dass musst du schon selber tun.
Das Internet ist voller Informationen dazu.
Bspw. http://books.google.de/books?id=_Ep5...page&q&f=false
Seite 160 würde ich mir mal an deiner Stelle genauer anschauen.

8. Ist das Rauschen frequenzmäßig immer kleiner als die gesuchten Frequenzen?
nicht unbedingt ..
Was heißt das, dass klingt sehr schwammig! Aber die Frage korrespondiert mit Frage eins und zwei.

der korrekte Goertzel Algo, der auch den korrenten imaginär und realteil liefert, steht überigens auf der Buchseite, die ich hier schon gepostet habe vor ein paar Tagen
man muss nur lesen können ..
Das ist sehr schön für dich, bringt dich aber keinen Deut weiter.

Soweit ich das deinen spärlichen Erklärungen entnehmen kann, hast du ein Signal mit unbekannter Bandbreite, daher auch keine Information über die notwendige Abtastfrequenz, so dass du diese so hoch wie möglich ansetzen musst.
Des Weiteren weißt du nicht die konkreten Werte der gesuchten Frequenzen, diese scheinen zufällig zu sein.
Du willst aber diese finden, über deren SNR.
Wenn irgendwelche Frequnzen über einen Peak sichtbar werden, also deutlich über dem allgemeinen Rauschen liegt, dann hast du die von dir gewünschte "Zyklik", richtig?

Wenn du die gesuchten Frequenzen nicht genau weißt, dann hast du mit den Goertzel-Algorithmus das falsche Werkzeug gewählt.
Dieser wurde entwickelt, um BESTIMMTE und VORHER BEKANNTE Frequenzen aus einen Signal zu filtern.
Das hätte aber durch ein aufmerksames Lesen bei der deutschen und englischen Wikipedia eigentlich klar sein müssen.

Ich hoffe du machst das nicht für eine Diplomarbeit oder ähnliches, denn dann hättest du ziemlich viel Zeit verplempert!

Geändert von TiGü (23. Aug 2011 um 13:44 Uhr)
  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 06:44 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