Eine Übersicht über einige verschiedene virtuelle Instrumente der LabVIEW-Umgebung, um dem Entwickler (mit Quelle) zu helfen

    Bild

    Guten Tag allerseits!

    Während der letzten Jahre in der LabVIEW-Umgebung musste ich mich mit verschiedenen Aufgaben befassen, deren Lösung darin bestand, einfache und nicht sehr einfache virtuelle Geräte (VIs) zu erstellen. Der Schwerpunkt meiner Arbeit liegt in der Entwicklung verschiedener Algorithmen zur Analyse biomedizinischer Signale. Und wie jeder Entwickler seit mehreren Jahren habe ich eine große Menge Code unterschiedlicher Komplexität angesammelt. Für alle virtuellen Geräte, die aus dem einen oder anderen Grund gelöscht werden mussten, habe ich einen Ordner erstellt, in dem ich alles gespeichert habe. In diesem Artikel möchte ich einige Beispiele aus meinem LabVIEW-Portfolio vorstellen.

    Die Stichprobe ist sehr vielseitig und viele erfahrene Entwickler können sich in wenigen Minuten selbst reproduzieren. Daher denke ich, dass dieser Artikel vor allem für LabVIEW-Anfänger nützlich sein kann. Der größte Teil des vorgestellten Codes kann auf die eine oder andere Weise in LabVIEW-Foren oder in Umgebungen gefunden werden. Ich hänge die Quellen am Ende des Artikels an (Version 9.0).

    Am Anfang möchte ich ein paar VPs nennen, die sehr einfach, aber möglicherweise für jemanden notwendig sind.

    Signalnormalisierung


    LabVIEW verfügt über eine integrierte Signalnormalisierungsfunktion Normalization.vi, die uns jedoch nicht zufriedenstellte, da es unklar war, wie ein Array innerhalb der streng festgelegten Grenzwerte für seine Ausgabe erstellt werden kann. Als Ergebnis wurde ein Untergerät entwickelt, das in diesem Fall die Normalisierung des Eingabearrays in Werten von 0 bis 100 implementiert. Stimmen Sie zu, dies ist manchmal erforderlich.

    Bild

    Nullen aus einem Array entfernen


    In meiner Studienzeit hatte meine Klassenkameradin während meines Studiums die Aufgabe, Extrasystolen auf einem Elektrokardiogramm zu finden. Um dies zu lösen, musste ein Code implementiert werden, der alle Nullwerte aus dem Array löschte. Aus diesem Grund haben wir diesen Megacode gemeinsam erstellt .

    Bild

    Daten von einem Bluetooth-Gerät lesen.


    Dieses Gerät wurde von ni.com ausgeliehen, als die Aufgabe darin bestand, Daten vom Polar Brustsensor zu empfangen. Ein Benutzer des englischsprachigen Forums implementierte erfolgreich einen Code zum Empfangen von Daten vom Gerät, aber das Decodieren des BT-Strings und das Übersetzen in Impulswerte mussten leicht modernisiert werden. Das Thema kann hier eingesehen werden . Neben dem Herzfrequenzsensor wurde auch ein anderes BT-Gerät erfolgreich mit dem virtuellen Gerät verbunden.

    Bild

    Video in Bilddateien konvertieren


    Irgendwie musste ich das Videobild in LabVIEW verarbeiten, aber die verwendeten Codes wurden nicht zum Öffnen des Videobildes angepasst, sondern wir lasen die Abfolge der Grafikdateien. Daher wurde ein nützliches Gerät gefunden, das Video in JPEG - Bilder konvertiert.

    Bild
    Bild

    Starten Sie den VLC-Player über LabVIEW


    Als ich das Problem des Startens von Videos während des Betriebs des Geräts löste, beispielsweise wenn eine Taste gedrückt wurde, suchte ich nach einer praktischen Implementierung, aber der in LabVIEW integrierte Windows Media Player zeigte einen instabilen Betrieb. Dann konzentrierte sich der Blick auf die Verwendung einer auf der .NET-Plattform basierenden Lösung mit Anschluss eines externen VLC-Players. Es arbeitet recht stabil und wird derzeit im Rahmen eines Laborforschungsprogramms eingesetzt.

    Bild

    Spline-Signalinterpolation


    Bei digitalen Signalverarbeitungsaufgaben ist häufig eine Interpolationsprozedur erforderlich. Manchmal sind mehr Signalpunkte erforderlich, weil das ursprüngliche Signal zu „eckig“ ist oder wenn die Anzeige auf einer grafischen Anzeige vereinfacht werden soll. Wenn Sie aus 10 Signalpunkten 100 machen müssen, wird ein solches Verfahren einfach angewendet. In meinen VIs habe ich sehr oft auf Spline-Interpolation zurückgegriffen, das Signal leicht geglättet und die Anzahl der Samples erhöht. Eine ähnliche Implementierung anderer Interpolationsarten finden Sie in den LabVIEW-Beispielen.

    Bild
    Bild

    Benutzerdefinierte Signalfilterung


    Bei der Arbeit mit Arrays von Rhythmogrammen (eine Reihe von Momentanwerten der Herzfrequenz für einen bestimmten Zeitraum) trat das Problem auf, Artefakte / abnormale Werte zu entfernen, die aus verschiedenen Gründen bei der Aufzeichnung eines Pulses auftreten. Eine mögliche Lösung, um solche Emissionen aus dem Quellenarray zu entfernen, ist das folgende Instrument. Der Code sieht nicht einfach aus, sondern implementiert im Wesentlichen das Verfahren der linearen Verbindung zweier benachbarter Zahlen, zwischen denen ein Ausreißer gefunden wurde. Und dann wird die Mitte dieses Segments gefunden, durch die der gefundene anomale Wert ersetzt wird. Wenn zwei benachbarte Artefakte gefunden werden, nehmen wir ihre extremen Nachbarn und verbinden sie. Und wir teilen das Segment nicht in zwei, sondern in drei Teile usw.

    Bild
    Bild

    Lineare Zufallszahlenapproximation


    Der folgende Code implementiert eine lineare Approximation eines Satzes von Zahlen. In diesem Beispiel handelt es sich um Zufallszahlen. Diese Operation war erforderlich, um ein Streudiagramm zu erstellen - eine grafische Regressionsanalyse des Rhythmusdiagramms, das zur Beurteilung der Herzfrequenzvariabilität verwendet wird. Neben der linearen Approximation bietet LabVIEW Beispiele für andere Arten von Approximationen.

    Bild
    Bild

    Am Ende des Artikels möchte ich mich ganz besonders bei allen bedanken, die mir geholfen haben, viele, manchmal schwierige Probleme zu lösen. Mein besonderer Dank gilt der LabVIEW-Portal- Community für ihre unschätzbare Hilfe bei der Implementierung einer Vielzahl von Algorithmen und für mein berufliches Wachstum.

    Instrument-Quelldateien

    Jetzt auch beliebt: