Forum: Digitale Signalverarbeitung / DSP / Machine Learning DFT mit nicht-periodischer Abtastung


von Carsten (Gast)


Lesenswert?

Hallo zusammen!

Ich arbeite zur Zeit an einem Programm, mit dem ich aus der Lösung einer 
CFD-Rechnung Rückschlüsse auf die akustischen Effekte in der Strömung 
ziehen kann. Ausgehend von diskreten Messwerten möchte ich zur 
spektralen Analyse meines "Signals" DFT einsetzen.

Das Problem besteht nun darin, dass die Messwerte nicht gleichförmig 
über die Zeit verteilt sind. Es liegt also in dem Sinne keine 
periodische Abtastung vor.

Meine Frage: Kennt jemand Literaturstellen, die sich mit dieser 
Problematik befassen? Oder gibts da evtl. eine ganz einfache Lösung, in 
dem man zwischen den Messwerten z. B. linear interpoliert und dieses 
"Signal" dann wiederum periodisch abtastet?

Es sei dazu gesagt, dass ich kein Eletroniker bin, sondern nur Luft- und 
Raumfahrttechnik studiert habe.

Vielen Dank für die Hilfe
Carsten

von Maximilian (Gast)


Lesenswert?

Ich würde das Siganl durch eine lineare Interpolation herstellen und 
danach die fft durchführen.
Falls aber eine Regelmäßigkeit vorliegt, z.B. eine immer schneller 
werdende Abtastung kann man vieleicht etwas schlaueres machen.

von Carsten (Gast)


Lesenswert?

Vielen Dank für deine schnelle Antwort Maximilian.

Bzgl. der Regelmäßigkeit kann ich nur sagen, dass die in keinster Weise 
vorliegt.

Wenn ich linear interpoliere, bekomm ich zwangsläufig einen Fehler in 
meinem Spektrum. Gibts da Möglichgeiten diesen abzuschätzen?

Gruß
Carsten

von Maximilian (Gast)


Lesenswert?

Die Aussage " in keinster Weise " macht eine fehlerabschätzung schon 
sehr schwierig.

Aber stelle dir einen Sinus vor, der 100 mal abgetastet ist.

Falls Du jeden zweiten Wert nicht als Originalwert einsetzt, sondern 
einen interpolierten Wert, wird die Grundschwingung praktisch gleich 
auftreten und eine 50 mal höhere Frequenz als Störung zu sehen sein.

von Maximilian (Gast)


Angehängte Dateien:

Lesenswert?

Vielleicht noch zue Ergänzung.

Im Bild:
Ein labVIEW-Programm.

Sinus mit 100 Punkten
Interpolation jeden 2. Wertes
FFT
Ausgabe der Frequenz - Auchtung y-Skala ist "log"

Bewertung:
Es treten sehr gringe Störungen auf, da die fehlenden Punkte unter weit 
unter der Periodendauer vom Sinus sind.

Vielleicht findet jeman einen Gefallen an der einfachen Art wie
man in LabVIEW programmiert.

von Carsten (Gast)


Lesenswert?

Vielen Dank Maximilian!!

Echt super so schnelle und aussagekräftige Anworten. Normalerweise würd 
ich sowas auch in LabVIEW machen, aber leider muss es diesesmal komplett 
auf einer Unix Konsole laufen.

Wenn mein Programm das tut was es soll, werd ich mich nochmal melden.

Gruß
Carsten

von Chapmy (Gast)


Lesenswert?

Alternative zum Interpolieren: Lomb-Algorithmus
http://www.nrbook.com/a/bookcpdf.php Kapitel 13.8

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Sind die zeitlichen Abstände zwischen den Samples bekannt?

von Carsten (Gast)


Lesenswert?

Hallo T.H.!

Ja, die zeitlichen Abstände zwischen den Samples kenne ich.

Gruß
Carsten

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Ich würde dann sinusoidale Regression versuchen. Oder man betrachtet das 
Signal als lückenhaft und verwendet (G)APES (Gapped-Data Amplitude and 
Phase Estimation) um die Lücken "aufzufüllen":

  http://www.iop.org/EJ/article/1538-3881/120/4/2163/200187.web.pdf

Funktioniert sehr ordentlich, ist aber iterativ und somit 
vergleichsweise rechenaufwändig.

Keine Ahnung ob das nicht auch wesentlich eleganter geht mittels einer 
DFT die auf ungleichmäßig gesampelte Signale angewendet werden kann - 
gehört habe ich davon noch nie.

von Gast (Gast)


Lesenswert?

Einfach mal nach nonuniform sampling DFT googeln, da findet man genug.

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.