前回の授業で説明したようなA/D変換した数値データを読み取った場合、どのようなことが発生するか考える。以下に示すような測定値があったとする。使うとデータが1件しか読み込めない問題がありました。現時点の上記ファイルは修正済みです。このデータの一部をグラフ化してみると、次のような波形であった。この波形をみると、大きく見ればsinカーブだが、細かい点を見るとデータにブレがある。回路のノイズ対策が不十分で、外部の電気的な影響が混入。変換を行う場合には、量子化誤差かもしれない。最初の波形が、加速度センサーの値であったとして、船の上で揺れているために、大きな周期で加速度が変化しているかもしれない。一方で、船自体がエンジンによる揺れで加速度が変化しているかもしれない。船の中で波の揺れと、エンジンの揺れが観測されている加速度センサーの情報で、船の揺れの大きさ・揺れの周期を知りたい場合、どうすればいいだろうか?移動平均このデータを見ると、10個のデータまでの間で、波形が上下に変動している。船の揺れとエンジンの揺れが原因であれば、10個ぐらいのデータのゆらぎが、エンジンによる揺れと考えられる。この10個ぐらいの範囲で値が上下の影響を減らしたければ、どうすればいいか?一番簡単な方法は、前後10個のデータで平均を取ればいいだろう。増減する値を加えれば、プラスの部分とマイナスの部分の値が相殺されて0に近くはず。前後データの平均をとってみよう。Excelで前後11点の平均を求める式をセルに入れる青線:元波形データ(B列)、赤線:前後11点の平均(C列)このように、データの前後の決められた範囲の平均を平均する処理は、移動平均(単純移動平均)と呼ぶ。以下のような式で表せるだろう。計算と同じ処理をプログラムで行うと以下のようになるだろう。;}このプログラムを動かすと、データ番号とデータ値をコンマ区切りで与えること。入力リダイレクトと出力リダイレクト上記のプログラムでは、キーボードからデータを入力しなくてはいけない。これでは入力が大変なので、保存したファイルを使ってプログラムにデータを与える。いう実行プログラムが作られ、プログラムが起動する。このままでは、キーボードからデータを入力する必要がある。ファイルから入力した値を使って処理を行うのであれば、コマンドを起動。入力すれば、命令入力画面が表示される。