サンプルコードとドキュメント

FPGA VIでの可変ポイント数の移動平均

製品と環境

このセクションは、サンプルの作成に使用された製品およびOSを反映します。

以下に示された製品を含め、NIのソフトウェアをダウンロードするには、ni.com/downloadsをご覧ください。

    ソフトウェア

  • LabVIEW FPGA Module

コードとドキュメント

添付

Description

概要

FPGA VIにて、実行中に平均するポイント数を変更できる移動平均を算出します。

 

詳細

一般的なLabVIEWでは、下記のVIなどを使って簡単に移動平均を算出することができます。

https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/vi-lib/express/express-analysis/filterbloc...

 

しかし、LabVIEW FPGAにはそのようなVIはありません。

また、FPGA VIだと配列の扱いが難しく、可変サイズの配列は推奨されないため実行中に平均するポイント数を変更するのが直感的に実装しにくいです。

 

このサンプルでは、100要素の固定サイズの配列に入力データを一時的に保持し、その一部を抜粋して平均することで、可変ポイント数の移動平均を算出します。

※100要素より多いサンプル数を移動平均したい場合は、この配列をより大きい固定サイズ配列と置き換える必要があります。

 

尚、本サンプルVIはシングルサイクルタイミングループ(SCTL)には対応していません。

 

 

実行方法

  1. 本サンプルVIをサブVIとして、メインVIに配置
    1. 「Number of Samples to Average」にサンプルしたいポイント数を配線
    2. 「New Sample」に平均したいデータを配線

 

 

実装の詳細

(ブロックダイアグラム上に細かいコメントを付けましたので、そちらもご覧ください)

  1. 100要素の固定サイズの配列をフィードバックノードに格納し、入力データを一時的に保持
  2. 配列を1要素後ろにずらし、新しいデータを受け取るスペースを開ける
  3. 新しいデータを先頭に配置
  4. データ値を指定したポイント数だけ積算
  5. 積算値をポイント数で割って平均を算出

 

必要なもの

ソフトウェア

  • LabVIEW FPGA 2014以降

 

VIスニペット(LabVIEW 2015)

Moving Average.png

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。