|
|
| nikky |

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 11.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.06.2012, 18:03
Titel: Interpolationsproblem
|
 |
| |
 |
|
Hallo Zusammen,
Vorweg mit CSV und TXT meine ich eigentlich *.mat Dateien die entweder aus einer CSV oder TXT importiert wurden.
meine Aufzeichnungsdateien bestehen aus proprietären Dateien.
Diese kann man entweder mit einer mitgelieferten Software per Hand in txt umwandeln, oder mit einem weiteren Tool der Firma automatisch in csv umwandeln lassen.
Anfangs habe ich die paar Dateien per Hand in txt umgewandelt und mein Programm hierauf abgestimmt. Jetzt mit steigender Anzahl an Dateien wird das sehr nervig. Also bin ich auf csv umgestiegen, funktioniert auch alles sehr gut soweit. Zumindest dachte ich das.
Im nachhinein ist mir aufgefallen, dass die csv Dateien Informationen verlieren.
Ich habe 2 Unterschiedliche Abtastfrequenzen einmal 4000 Hz und einmal 2.962963e+002 Hz
Die Daten mit der geringeren Frequenzabtastung werden in den Txt irgendwann als NaN gespeichert.
Deshalb habe ich bisher mit isNan gearbeitet und anschließend interpoliert.
In den CSV Dateien werden die NaN aber als 0 gespeichert.
Ok kein Problem habe ich gedacht. Nehm ich find(...,1,'last') um die Letzte Zahl zu finden die nicht 0 ist.
Problem:
In den Txt dateien sind die Werte die mit 2.962963e+002 abgetastet werden, bevor sie NaN werden bereits 0.
Wenn ich jetzt interpoliere führt das zu falschen Ergebnissen.
Was kann ich da machen?
komme ich irgendwie mit meiner Abtastfrequenz weiter?
//edit
wenn ich die Anzahl meiner Datenpunkte (76000) durch meine Abtastfrequenz1 (4000) teile und anschließend mit Abtastfrequenz2(2.962963e+002 ) Multipliziere, komme ich auf den ersten Wert, der mit NaN in der "Txt" bezeichnet wird.
Jetzt ist mir hier aber gerade ein weiter Fehler? aufgefallen. Und zwar werden die Daten die mit 4000 Hz abgetastet werden eben falls vor Ende der Aufzeichnung zu null bei 75492.
wenn ich diesen Wert nun durch 4000 Teile und anschließen mit Abtastfrequenz2(2.962963e+002) multipliziere komme ich tatsächlich auf die erste 0 die in meiner CSV datei angegeben wird.
Jetzt weiß ich nicht so recht wie ich interpolieren soll??
soll ich dann nur bis 75492 interpolieren und anschließend mit 0en auffüllen? Kann man das ?
Irgendwie ist mir das nicht ganz klar wie das gehen soll. Also Interpolation bis zu einem bestimmten Wert und anschließendes füllen mit 0 bis Datei Ende.
//edit 2
Oder berechne ich doch 76000/4000 * Abtastfrequenz2.
In der CSV Dateien sind ja eh nur Nullen die entsprechend richtig mitinterpoliert werden sollte?
Gruß nikky
|
|
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|