Signalanalyse mit Python???

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Hallo,

ich habe die Aufgabe bekommen, mehrere Messkurven zu analysieren.
Schwerpunkt ist hier die zeitliche Korrelation von jeweils 2 Messkurven.
Kennt ihr Tools, die man aus Python heraus nutzen kann, die für Signalanalysen hilfreich sind???
Wäre über Anregungen und Tipps sehr dankbar.

greets george
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

für flexible aber statische Analyse: scipy (mit diversen "Fourier-Werkzeugen" bereits implementiert). Allerdings ist das u. U. sehr aufwendig, weil es eben nur eine Library ist, kein fertiges Tool. Mein Vorschlag: Fasse doch mal sehr spezifisch zusammen, was Du gerne machen möchtest und sende Deine Frage an die scipy-user Mailingliste: scipy-user@scipy.org (English only!)

Hier im Forum wirst Du u. U. ein paar Links bekommen, aber auf der Mailingliste tummeln sich diejenigen rum, die Dir den besten Rat geben können! Allerdings nur, wenn Du spezifische Fragen stellst: Online- oder Offline-Analyse? Physikalisch/Mathematischer Hintergrund? Und was Dir sonst noch so einfällt ... "zeitliche Korrelation" finde ich etwas zu vage, denn u. U. hat jemand genau dasjenige wonach Dein Herz verlangt - keine Gewähr :wink: .

HTH
Christian
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

PS Du kennst diesen Link? http://www.scipy.org/Topical_Software
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Hallo CM,

danke für deine Antworten. Werde deinen Ratschlag mit der Scipy-Mailingliste befolgen.
An dieser Stelle nur noch einmal eine kurze Erklärung was ich machen möchte.

Die Analyse wird offline erfolgen
Wie bereits einleitend gesagt habe ich zwei Messkurven, die jeweils betrachtet werden müssen. Die Messkurven sind zwei Messsignale(Spannung und Druck), welche über eine definierte Zeitspanne gecaptured wurden.
Was ich mit zeitlicher Korrelation meine, möchte ich anhand von Sinus und Cosinus erklären. Betrachtet man in einem Diagramm eine Cosinus- mit einer Sinuskennlinie, so erkennt man, dass die eine Kennlinie um 1/4 Periode(90°)
nach bzw. voreilt(je nach Betrachtung). Diese Verschiebung ist für mich interessant. Im Gegensatz hierzu, betrachtet man zwei Sinus-Kennlinien, hat man eine absolute Deckungsgleichheit, also keinen Phasenversatz.

So jetzt zu den reallen, praktischen Kennlinien. Die sind natürlich nicht so sauber wie die mathematischen Sinus/Cosinus-Kennlinien, sondern sind verrauscht. Wahrscheinlich muss ich vorher eine Frequenzanalyse machen. Mich interessiert aber auch hier der Versatz der beiden Kennlinien.
Da ich mich mit der Thematik noch nicht so sehr auseinander gesetzt habe, fällt es mir zu diesem Zeitpunkt noch etwas schwer, mein Anliegen auf den Punkt zu bringen. Ich hoffe aber, dass der "Rote Faden" erkennbar ist.

Danke.
greets george
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi

Ja, also, wenn Du nur "ganze" Datensätze vergleichen möchtest und nicht Teile davon würde ich folgenden - leicht mit scipy zu verwirklichenden - Algorithmus vorschlagen:
- Bandpassfilter zum Glätter der Daten (Vorsicht, falls Hochfreqentes "Rauschen" tatsächlich zu den Daten gehören kann)
- Korrelation und peaksearch - bei 1D-Daten eigentlich kein Problem.
Alles vorausgesetzt es handelt sich
a) um ganze Datenblöcke, die man direkt einfüttern kann (schwierig wäre es, wenn man "nur mit dem Auge" sehen kann, welche Blöcke verglichen werden sollen)
b) die Daten besitzen ausreichend hohes Sampling
c) das Signal ist ausreichend stark
d) es gibt nicht zu viele Frequenzen

U. U. kann man so etwas auch mit multivariater Statistik angehen - aber dafür kennen wir hier zu wenig von Deinen Daten.

Gruß,
Christian
PS Ein "schwieriger Fall", wie ich ihn meinte, findet sich z. B. hier: http://www.worldscinet.com/jbs/14/1404/ ... 02008.html
Antworten