Forum: Digitale Signalverarbeitung / DSP / Machine Learning Gibt es eine FT die die Anzahl Frequenzkomponenten minimiert?


von DPA (Gast)


Lesenswert?

Bei einer FT muss man ja immer fundamental zwischen Zeit und 
Frequenzauflösung entscheiden.

Bei der DFT hat man ja am Anfang eine Anzahl Samples, Intensität zu 
Zeitpunkt, und danach eine davon abhängende Anzahl Frequenzen. Und man 
kann das auch wieder umkehren.

Nehmen wir nun an, ich habe eine Frequenz, die zwischen 2 angrenzenden 
Ausgabefrequenzwerten liegt, dann schlagen ja mehrere Frequenzen im 
Resultat aus, am stärksten die 2 direkt daneben liegenden.

Ich frage mich gerade, gibt es auch eine FT, die keine Ausgabefrequenzen 
an Fixpunkten ausgibt, sondern quasi eine Liste, beginnend mit der 
lautesten Frequenz, so dass wenn man daraus das Ursprungssignal wieder 
ableitet, dies maximal schnell konvergiert?

Also in dem Beispiel oben, mit nur einer Sinusfrequenz, will ich eine 
Liste mit nur einem Wert, denn mehr braucht es nicht. Bei 2 Signalen 
will ich 2 Werte.

Ich weiss das mir das nicht mehr Informationen bringt, und auch andere 
Nachteile bringt, aber gibt es eine FT die mir das liefern kann?

von Rechenfreund (Gast)


Lesenswert?

DPA schrieb:
> Nehmen wir nun an, ich habe eine Frequenz, die zwischen 2 angrenzenden
> Ausgabefrequenzwerten liegt, dann schlagen ja mehrere Frequenzen im
> Resultat aus, am stärksten die 2 direkt daneben liegenden.
Das ist so nicht richtig. Der Wert, den die DFT / FFt liefert beinhalter 
immer den Einfluss mehrerer Frequenzen. Letztlich wird ja der Eingang 
nur mit einem Sinus multipliziert. Damit lappt auch eine benachbarte 
Frequenz sehr gut hinein.

Und: Die FFT ist nichts anderes als eine konkretisierte DFT.

Dein Vorschlag mit der Liste ist also abwegig. Du musst immer mindestens 
2 Frequenzen angeben, oder einen Bereich mit Spannweite. Diese 
Unsicherheit ist es auch, welche die Dualität von Frequenz und Auflösung 
bedingt. Mit einer beliebig hohen Auflösung bekommst du auch eine sehr 
genaue Ampltitude.

von Grummler (Gast)


Lesenswert?

DPA schrieb:

> Ich frage mich gerade, gibt es auch eine FT, die keine
> Ausgabefrequenzen an Fixpunkten ausgibt, sondern quasi
> eine Liste, beginnend mit der lautesten Frequenz, so
> dass wenn man daraus das Ursprungssignal wieder ableitet,
> dies maximal schnell konvergiert?

Du meinst, so eine Art Singulärwertzerlegung (Hauptkompo-
nentenanalyse)?

von Daniel A. (daniel-a)


Lesenswert?

Grummler schrieb:
> Du meinst, so eine Art Singulärwertzerlegung (Hauptkomponentenanalyse)?

Ich bin mir nicht sicher, ich muss mich erst einlesen, was genau das 
ist.

von Grummler (Gast)


Lesenswert?

Daniel A. schrieb:

> Grummler schrieb:
>> Du meinst, so eine Art Singulärwertzerlegung
>> (Hauptkomponentenanalyse)?
>
> Ich bin mir nicht sicher, ich muss mich erst einlesen,
> was genau das ist.

Arghl... vergiss' meinen Vorschlag -- ich habe die Frage
nicht genau genug gelesen. Du wolltest ja keine diskreten
Frequenzen.

Ich glaube nicht, dass das, was Du willst, ohne zusätzliche
Annahmen (bzw. zusätzliches a-priori-Wissen) machbar ist.

Die FT geht ja davon aus, dass der Abschnitt, der ihr
vorgelegt wird, sich immer periodisch wiederholt. Bei
"krummen" Frequenzen ist ja aber genau das nicht der
Fall...

von Term-Jongleur (Gast)


Lesenswert?

DPA schrieb:
> Ich frage mich gerade, gibt es auch eine FT, die keine Ausgabefrequenzen
> an Fixpunkten ausgibt, sondern quasi eine Liste, beginnend mit der
> lautesten Frequenz, so dass wenn man daraus das Ursprungssignal wieder
> ableitet, dies maximal schnell konvergiert?

Schau nach Görtzrl, auch wenn das nicht ganz das ist was Du Dir hier in 
deiner Einfalt wünschst:
Beitrag "Görtzel Algorithmus einfach erklärt"

von A. S. (rava)


Lesenswert?

ich hab das mal versucht, mithilfe von Simulated Annealing zu bauen:

"Nimm ein kurzes Audiosample, 26ms wie bei mp3 und versuche, das aus 
komplett frei wählbaren Frequenzbestandteilen zwischen 20Hz und 20kHz 
zusammenzubauen."

Hat nicht wirklich funktioniert. Da es sehr viele lokale Minima gibt, 
tut sich der Algo ziemlich schwer, die erste korrekte Frequenz 
herauszufinden.

Man muss vermutlich erstmal mit einer FFT anfangen, um eine 
Initialisierung für den Algo zu finden, dann auf gut Glück ein paar der 
größten Frequenzen heraus picken und tunen, bis man eine "beste 
fp32-Frequenz" gefunden hat. Als nächstes wird das Ganze auf dem 
Residuum wiederholt, bis eine gewünschte Genauigkeit erreicht ist.

: Bearbeitet durch User
von Lila Rauschen (Gast)


Lesenswert?

Welches Ergebnis soll bei Rauschen herauskommen?

von Tom (Gast)


Lesenswert?

Burg's method geht WIMRE grob in die Richtung. (Orthogonal) matching 
pursuit kann man sich auch mal ansehen.

von Tom (Gast)


Lesenswert?

Korrektur: Burg ist wahrscheinlich fehl am Platz, OMP müsste passen. Das 
Thema ist etwas zu lange her.

von Daniel A. (daniel-a)


Lesenswert?

Danke. OMP scheint mehr oder weniger zu sein, was ich suche. Jetzt muss 
ich es noch ausprobieren / umsetzen.

von A. F. (chefdesigner)


Lesenswert?

DPA schrieb:
> eine Liste, beginnend mit der
> lautesten Frequenz,

Mich würde interessieren, ob das überhaupt funktionieren kann. Was ist, 
wenn die nächsten Frequenzen völlig andere sind und einige davon 
zusammen ein viel größeres Gewicht haben, als diese "lauteste"?

Kann man so ohne Weiteres auf Komponenten verzichten und trotzdem eine 
Näherung bekommen?

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.