09-02-2010 02:13 AM
いつもお世話になっております。
データ処理で困っております。
連続して出力される数値(U8)をX個単位で平均化し、その平均値を出力したいのですが、配列関数、For loopなど使いましたが、うまくいきません。
平均化するにはどの関数を用いればよろしいでしょうか?
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
09-02-2010 04:22 AM
こんにちは
こんな事がしたいのかな?
添付ファイルを参照下さい。
違っていたらご容赦下さい。
09-02-2010 06:38 AM
S_YM様
ご連絡くださりありがとうございます。
VIまで添付してくださり大変うれしいです。
しかし、私が使用しているバージョンが8.2.1のため開くことができませんでした。。
もしよろしければimageで添付していただけますでしょうか。
お手数をおかけして申し訳ございません。
なお、画像を添付いたしました。While loopの中のVIの一部の画像ですが、1対のU8データをそれぞれ(X,Y)の2次元データに変換し(ケースストラクチャ部分)、X,Yそれぞれ2で割り、データを出力しております。
2で割ったあとで、任意のX個のデータを1つにまとめて平均値を求めたいというのが所望の動作です。
よろしくお願い申し上げます。
09-02-2010 07:31 PM
お早う御座います。
LabVIEW8.2.1版を添付いたします。
データを配列に格納できれば簡単に転用できます。
それでは
09-04-2010 08:13 PM
Medphys_ST 様
日本ナショナルインスツルメンツ技術部 寺尾です。
平素よりディスカッションフォーラムをご利用頂き誠にありがとうございます。
途中からではございますが失礼します。
ある演算をを行われた後に任意の個数のデータに対して平均化を行われたということですのでシフトレジスタ、「配列連結追加」関数を用いることで可能でございます。
サンプルVIを添付しましたのでご覧ください。
サンプルVIはデータ数(配列要素数)が10個に達すると平均化を行います。配列要素数が10に達し平均化を行われますと一度配列内のデータをクリアし新たな10データを格納します。
ここで使用しましたシフトレジスタは過去のデータを保持する"メモリ"の役割を果たしています。VI中にもVIの動作に関してコメントを記しましたので参考にして頂ければと思います。
宜しくお願いします。
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
日本ナショナルインスツルメンツ株式会社 | 技術部 | 寺尾 純一
Junichi Terao | Applications Engineer | National Instruments Japan Corp.
サポート情報: http://www.ni.com/support/ja
技術データベース: http://www.ni.com/kb
住所 : 〒105-0011 東京都港区芝公園2-4-1 ダヴィンチ芝パーク A館4F
お問い合わせフリーダイヤル: 0120-527196
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
09-07-2010 07:43 AM
S_YN様
ご回答いただきながらご連絡が遅くなりまして大変申し訳ございません。
再度VIを添付してくださり、誠にありがとうございます。
参考にさせていただきます。
今後ともよろしくお願い申し上げます。
09-08-2010 10:58 AM
情報が少ないので色々と考えさせられますね。(笑)
ここで言う平均化が、数値データの平滑化を意図するのであれば移動平均を取るのが良いのかな、と思われますが如何でしょうか。
何かのご参考になれば幸いです。
09-08-2010 07:59 PM
日本ナショナルインスツルメンツ技術部 寺尾 様
いつもお世話になっております。
回答を頂戴しながらご連絡が遅れまして大変申し訳ございません。
先ほど、サンプルVIを参考にさせていただき、任意の個数のデータの平均化を行うことができました。
ただ、平均化されたデータが不正確な値を示しており、こちらはご教授いただいた部分以外のところで間違っていると考えられますので原因を調べます。
ありがとうございました。
今後ともよろしくお願い申し上げます。
09-09-2010 09:28 AM
高須 様
ご回答くださりありがとうございます。
VIに詳細な説明までつけて添付していただき、理解することができました。
移動平均について知りませんでした。今後の参考にさせていただきます。
本当にありがとうございました。今後ともよろしくお願いいたします。
09-09-2010 07:03 PM
高須様のVIの感想を述べさせていただきます
移動平均を取ることはできていると思いますが、この方式だと 配列がどんどん肥大して永久ループが構成できません
そこで、配列の変わりにキューを使用すれば よりベターだと思いますがいかがでしょうか