LabVIEWForum.de - Array manipulieren

LabVIEWForum.de

Normale Version: Array manipulieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich messe mit meiner Hardware u.a. den Phasenunterschied zweier Signale. Mein Detektor-IC kann nur den Betrag der Phase liefern.

Da ich weiß, dass die Phase monoton abnimmt, könnte ich nun den richtigen Phasenverlauf ermitteln. Ich sehe mir den vorherigen Arraywert an und vergleiche ihn mit dem jetzigen.
Das Bild zeigt den Phasenverlauf im Bereich von 100 kHz bis 100 MHz. Im letzten Drittel steigt die Phase an. In Wirklichkeit fällt sie aber weiter ab. Dies möchte ich also ausbessern.

Wie könnte ich so etwas implementieren? In C wäre es nicht sonderlich schwierig aber LabVIEW bereitet mir dabei noch Probleme.

Gruß,
Klausi
Gegen die üblichen 2PI-Sprünge im Phasenverlauf hilft das VI
Signalverarbeitung --> Signaloperation --> "2PI Sprünge entfernen"
Hier handelt es sich aber um etwas anderes. es geht darum, das richtige Vorzeichen des Phasenverlaufs in jedem Darstellungsbereich zu erraten.
Wenn Du schreibst, daß Du den erforderlichen Algorithmus in C beherrschst, dann poste das doch einfach. Die Übersetzung nach LabVIEW wird Dir hier im Forum auf jeden Fall besorgt.
Gut, ich versuchs mal mit diesem C-Code:

newArray[0] = Array[0];
for (int i = 0; i<Anzahl_Messwerte-1; i++)
{
<blockquote>if(Array[i+1] > Array[i])</blockquote>
<blockquote><blockquote>newArray[i+1] = - Array[i+1];</blockquote></blockquote>
<blockquote>else</blockquote>
<blockquote><blockquote>newArray[i+1] = Array[i+1];</blockquote></blockquote>
}

Formatierung hab ich nicht besser hinbekommen.
Ein neues Array wird gebildet. Bei z.B. 1000 Messwerten sind 999 Durchläufe und Vergleiche notwendig.
Ist bei zwei aufeinanderfolgenden Werten der zweite größer, wird das Vorzeichen getauscht und im neuen Array gespeichert.

Mir ist nicht klar, wie ich in LabVIEW auf die einzelnen Werte bei verschiedenen Indizes zugreifen kann.
Wie in dieser Zeile z.B.
if(Array[i+1] > Array[i])

Vermutlich ist die Lösung recht einfach aber ich kriegs nicht hin.

Gruß,
Klausi
Schaus dir an. Für code gibts das entsprechenden Tag [code]

Lv86_img[attachment=19681]
' schrieb:Schaus dir an. Für code gibts das entsprechenden Tag [code]
Sehr gute Lösung. Ich hatte es, allerdings weniger elegant, so gemacht:
[attachment=19683]
So eine ähnliche Lösung hatte ich mir danach auch überlegt. Habs aber nicht hochgeladen, weil ich mir dachte, das erste entspricht eher seinem C-Code.

[attachment=19687]
Offtopic2

Hi,
was sind das denn für Strukturen? Also die Gelben, die in die Array-VIs münden und so...?

ch

:: Edit :: Gefunden, war ja im von Dir vorher hochgeladen VI schon drin... Hatte ich mir vorher nicht angeschaut...
Ein herzliches Dankeschön an alle, die sich Mühe gemacht haben. Ich mußte das VI noch ein bißchen umbauen, da mein C-Code auch nicht ganz korrekt war, aber das konnte ich nun alleine.

Gruß,
Klausi
Referenz-URLs