LabVIEWForum.de
Array/Matrixoperationen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array/Matrixoperationen (/Thread-Array-Matrixoperationen)



Array/Matrixoperationen - JanL - 07.04.2011 23:22

Guten Abend,

ich versuche zur Zeit aus meinem MatLab-Script ein Labview-VI für die "Inverse Nonuniform Extended Discrete Fourier Transform" zu schreiben. Wenn ich meinen MatLab Code in die Scriptumgebung von LabView reinpacke, funktioniert das ganze selbstverständlich. Jedoch äußerst langsam und RAM fressend.
Beim jetzigen Schritt versuche ich den MatLab Code in LabView nachzuprogrammieren und komme an einer Stelle nicht weiter. Leider kann ich mein bisheriges soweit komplettes VI imo nicht hochladen, da auf meinem Heimrechner eine ältere Labview Version installiert ist, als in der Uni.

Code: Auszug aus dem Gesamtcode
Code:
F=F'; %1D array aus z.B. 3000 Messdaten
tn=tn'; %1D zuvor errechnetes array für die neue Zeitachse gleicher Länge
fn; %1D array aus 3000 Frequenzkomponenten

N=length(F);

    E=exp(1i*tn(:,1)*fn(1,:));
    Y(:,l)=E*F(:,1)/N;

Y=Y.';

Die letzten drei Zeilen bekomme ich nicht zusammengereimt.

Falls jemand das auf die Schnelle zusammenstecken kann (am besten mit Erklärungen, falls etwas nicht über die Hilfe Selbsterklärend ist) würde ich mich darüber sehr freuen. Ansonsten kann ich morgen Vormittag von meinem Unirechner auch mal das bisher zusammengeschusterte hochladen.

Zusatzfrage: Macht LabView beim "Transpond" einen unterschied, zwischen Realen Matrizen oder Complexen? Bei MatLab muss ich eine Complexe mit einem "." vorm Complex konjugieren retten. Muss man bei LabView ähnliches machen?


Beste Grüße,
und Danke für jegliche Hilfe.
JanL

@Home: Labview 8.6
@Uni: 2009


RE: Array/Matrixoperationen - Martin Heller - 08.04.2011 13:21

Hallo

habe schon 2-3 Jahre keine MatLAB-Code mehr gesehen, aber ich denke dies könnte ein Ansatz sein.....



lg Martin


RE: Array/Matrixoperationen - Lucki - 09.04.2011 08:14

..und ich verstehe gar nichts von Matlab. Aber muß nicht der Divisor in der For-Schleife an das N links oben angeschlossen werden, und nicht an den Index i ?


RE: Array/Matrixoperationen - Martin Heller - 11.04.2011 07:10

hmmmm, die Grauen Zellen

Vermutlich schon...


RE: Array/Matrixoperationen - JanL - 11.04.2011 10:32

Danke soweit schonmal. Ich habe es inzwischen auf einem anderen Weg gelöst. Habe im moment nur kleine Performance Probleme, die ich in den Griff bekommen muss. Werde euren Ansatz mal genauer unter die Lupe nehmen, da ich mir ziemlich sicher bin, dass ich auf meinem Weg unnötig Rechenleistung benötige. (Habe 4 (!) 'for loops' benötigt...)

LG Jan


RE: Array/Matrixoperationen - Lucki - 11.04.2011 12:22

..und falls Du dich noch mal melden solltest: Ein Beispiel mit Eingangsdaten und richtigem Ergebnis ist enorm hilfreich. Es müssem ja nicht gleich 3000 Daten sein.


RE: Array/Matrixoperationen - JanL - 12.04.2011 13:50

(11.04.2011 12:22 )Lucki schrieb:  ..und falls Du dich noch mal melden solltest: Ein Beispiel mit Eingangsdaten und richtigem Ergebnis ist enorm hilfreich. Es müssem ja nicht gleich 3000 Daten sein.

Jop, werde ich mir merken. So habe ich mich jetzt auch Schritt für Schritt durchgebissen. Immer geschaut, was ich bei Zwischenschritten als Ergebnis in MatLab bekomme und wie ich das in LabView ausdrücken kann.

Anbei mein der oben beschriebene Part des VI. Die letzte Zeile (Y=Y.') kann man sich schenken.

fn (Frequenzkomponente des zu transformierenden Signals) und tn (gewünschte Zeit-Skalierung) müssen nicht die selbe Länge haben.
F ist der Amplitudenvektor des zu transformierenden Signals und hat (logischerweise) die selbe Länge wie fn (zu jedem Frequenzwert, ein entsprechender Amplitudenwert).

Anhang II: Ein bisschen Text auf dem das Programm aufgebaut ist (incl. Verweis auf den MatLab code zum download, aber Achtung: der Code enthält einige Fehler und bremsende Fragmente, da er vor 5 Jahren geschrieben wurde)

Grüße,
Jan

und ja, ich programmiere in LabView ziemlich unordentlich Undecided