mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP csv in Matlab importieren


Autor: Benni Nori (benninori)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich hoffe Ihr könnt mir bei folgendem Problem weiter helfen, bin nämlich 
nicht so wirklich fit mit Matlab:

Ich hab Messungen als csv vorliegen und will diese durch nen Filter 
jagen. Jetzt bin ich über die Funktion 'csvread' gestolpert. Meine das 
sollte damit gehen. In Simulink habe ich schon die passende 
Übertragungsfunktion für meinen Tiefpass 4. Ordnung. Irgendwie muss das 
doch gehen.
Ich scheitere jetzt gerade schon an der Anzahl meiner Messwerte. Ich 
führe folgendes aus:
M = csvread('messung.csv', 6, 0)
Das funktioniert soweit auch erstmal, aber ich habe wohl zuviele 
Messwerte und er bricht bei 40.000 ab. Kann man dieses Problem irgendwie 
umgehen?

Und wie kann ich diese Messwerte dann in Simulink weiter verwenden?

Oder gibt es noch eine bessere Lösung?

Jetzt hab ich eine Quelle für Simulink gefunden die direkt '*.mat' 
verwenden. Aber wie bekomme ich meine *.csv' in dieses Format?

Autor: Anon Nymous (fuechslein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Bricht ab" ist wie immer eine super Fehlerbeschreibung. Da werden alle 
hier sofort wissen was los ist und dir die Loesung präsentieren...

Autor: Benni Nori (benninori)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, sorry. Ich bekomme zwar eine Matrix, aber Matlab hat wohl eine 
Grenze von 4000000 Datenpaaren. Ich bekomme die Meldung: 'Too many 
elements'

Für Simulink habe ich übrigens inzwischen eine passende Signalquelle 
gefunden. Jetzt muss ich nur noch alle Werte einlesen.

Autor: Anon Nymous (fuechslein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Limitierung waere mir neu. 4 Mio. is doch fast nix. 4 Mrd. waer a 
bisl was.

http://www.mathworks.com/support/tech-notes/1100/1107.html

Autor: Benni Nori (benninori)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, der Link ist super. Danke.
Nur leider benutze ich Win7 64-Bit. Das ist nirgends aufgeführt und ich 
hab Angst da was kaputt zu machen wenn ich jetzt in der boot.ini 
rumstocher. Aber wenn ich mir die Tabellen so betrachte sollte das bei 
einem 64-Bit-Betriebstsytem eh kein Problem sein, oder?

Ich probier es nachher nochmal und schreibe dann hier nochmal genau die 
Meldung, die ich bekomme.

Autor: Benni Nori (benninori)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, wenn ich die Importfunktion von Matlab nutze bekomme ich die 
Meldung:
Value: 4000001x2 double
Too many elements

Bei der jetzigen Messung bin ich da grad so über der Grenze. Das Problem 
ist aber, dass ich gleich noch Messungen mache die wohl noch mehr 
Messwerte beinhalten.

Im Import Wizard erzählt er mir noch was von 64000016 Bytes und Class 
double.

Hilft das weiter?

Autor: Benni Nori (benninori)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch was: meine Messwerte muss ich noch verschieben, d.h. zur Spalte 
1 der Matrix einen Wert addieren, bzw. subtrahieren. Habe es wie folgt 
probiert:

N = size(M);
for i=1:N(1)
    C(i,1)=A(i,1)+5;
end

bekomme aber nur eine Endlosschleife. Was mach ich falsch? Das muss doch 
irgendwie gehen.

Autor: Anon Nymous (fuechslein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite mit Arrays die vieel groesser sind als deine. Das sollte 
normal kein problem sein. In dem Link steht was von Daten importieren 
limierung. Hast du das gelesen? Du musst evtl. eine andere Funktion 
benutzen um deine Daten zu importieren...
"Textscan anstatt load". Steht aber im text... Wie schaut denn dein code 
aus?

Autor: Benni Nori (benninori)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin jetzt auf den Import Wizard umgestiegen. Taugt der nichts?

Autor: Anon Nymous (fuechslein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weis net, sollte alles dokumentiert sein bzw. probiers doch einfach aus. 
Net so faul sein! ;)

Autor: benninori (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, zu später stunde klappt jetzt alles. danke für deine unterstützung.

Autor: Anon Nymous (fuechslein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super. Glückwunsch. Noch eine Bitte: Kannst du posten was das Problem 
war und wie du es nun behoben hast. Grund ist dass es oft vorkommt das 
jemand anders das gleiche Problem hat (womöglich in ein paar Jahren in 
der Zukunft) und dann viell. auf diesen Thread per Google stößt. Dann 
wäre es gut das die Person hier die Lösung auch gleich sieht... So 
passiert das idealerweise immer damit wir die Datenbank "Internet" immer 
schön sinnvol erweitern. ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.