開発者を支援するLabVIEW環境のいくつかの多様な仮想計測器の概要(ソース付き)

画像



みなさん、こんにちは!



LabVIEW環境での過去数年間にわたる作業では、さまざまなタスクを処理する必要がありました。その解決策は、単純な仮想デバイス(非常に単純ではない)を作成することでした。 私の仕事の専門は、生物医学信号の分析のためのさまざまなアルゴリズムの設計です。 また、他の開発者と同様、数年間、さまざまな複雑さの大量のコードを蓄積してきました。 何らかの理由で削除するのが残念だと感じたすべての仮想デバイスについて、すべてを保存するフォルダーを作成しました。 この記事では、LabVIEWポートフォリオからサンプルをいくつか紹介します。



サンプルは本質的にかなり折lect的であり、経験豊富なデザイナーの多くが数分で自分自身を再現できます。 したがって、この記事は主に初心者のLabVIEW開発者に役立つと思います。 提示されたコードのほとんどは、LabVIEWのフォーラムまたは環境インスタンスで何らかの方法で見つけることができます。 ソースを記事の最後(バージョン9.0)に添付します。



最初は、非常にシンプルですが、おそらく誰かに必要な2、3のVPを提供したいと思います。



信号の正規化



LabVIEWには信号正規化関数Normalization.viが組み込まれていますが、出力で厳密に定義された制限内で配列を取得する方法が不明であったため、その作業は満足できませんでした。 その結果、サブデバイスが開発されました。この場合、0〜100の値の入力配列の正規化を実装します。同意する必要がある場合があります。



画像



配列からゼロを削除する



私の学生時代、大学院の設計中に、クラスメートは心電図で期外収縮を見つけるタスクを抱えていましたが、それを解決するには、配列からすべてのゼロ値を削​​除するコードを実装する必要がありました。 その結果、このメガコードを一緒に作成しました。



画像



Bluetoothデバイスからのデータの読み取り。



このデバイスは、タスクがPolarチェストセンサーからデータを受信することであったときにni.comから借りました。 英語フォーラムのユーザーは、デバイスからデータを受信するためのコードの実装に成功しましたが、BT文字列のデコードとパルス値への変換は少し近代化する必要がありました。 トピックはこちらでご覧いただけます 。 心拍センサーに加えて、別のBTデバイスも仮想デバイスに正常に接続されました。



画像



ビデオを画像ファイルに変換する



どういうわけか、私はLabVIEWでビデオ画像を処理しなければなりませんでしたが、使用されたコードはビデオ画像を開くように適合されていませんでしたが、グラフィックファイルのシーケンスは読み込まれました。 したがって、ビデオをJPEG-写真に変換する便利なデバイスが見つかりました。



画像

画像



LabVIEWからVLCプレーヤーを起動します



デバイスの操作中にビデオを起動する問題を解決するとき、たとえばボタンが押されたとき、便利な実装を探しましたが、LabVIEWに組み込まれたWindows Media Playerは不安定な動作を示しました。 次に、外部VLCプレーヤーを接続した.NETプラットフォームに基づくソリューションの使用に焦点を当てました。 非常に安定して動作し、現在、研究室の研究プログラムの一部として使用されています。



画像



スプライン信号補間



多くの場合、デジタル信号処理タスクでは、補間手順が必要です。 時には、元の信号が「角度が大きい」ため、またはグラフィカルインジケーターに表示するために、より多くの信号点が必要な場合があります。 単純に、10個の信号点のうち100個を作成する必要がある場合、そのような手順が適用されます。 私のVIでは、多くの場合、スプライン補間を使用して、信号をわずかに平滑化し、サンプル数を増やしました。 他のタイプの補間の同様の実装は、LabVIEWの例で見つけることができます。



画像

画像



カスタム信号フィルタリング



リズモグラムの配列(一定期間の心拍数の瞬間値のセット)を操作する場合、パルスを記録する際のさまざまな理由により生じるアーティファクト/異常値を除去する問題が発生しました。 このような放射をソースアレイから除去する1つの可能な解決策は、以下の機器です。 コードは見た目が単純ではありませんが、本質的には、異常値が見つかった2つの隣接する数値の線形接続の手順を実装します。 そして、このセグメントの中央が検出され、検出された異常値が置き換えられます。 2つの隣接するアーティファクトが見つかった場合、それらの極端な隣接物を取得して接続します。 そして、セグメントを2つではなく、3つの部分に分割します。



画像

画像



線形乱数近似



次のコードは、一連の数値の線形近似を実装します。この例では、これらは乱数です。 この操作は、スキャッタグラムを作成するために必要でした-心拍数の変動性の評価に使用されるリズモグラムのグラフィカル回帰分析。 LabVIEWには、線形近似の他に、他のタイプの近似の例があります。



画像

画像



記事の最後で、私は多くの、時には困難な問題を解決するのを助けてくれたすべての人々に特に感謝したいと思います。 特に、さまざまなアルゴリズムの実装と専門家としての成長に役立つ貴重なヘルプを提供してくれたLabVIEWポータルコミュニティに感謝します。



音源ソースファイル



All Articles