Excelによる移動平均の計算

計測工学I
【第2回】Excelによる移動平均の計算
今日の内容
•  【第2回】Excelによる移動平均の計算
•  実際にパソコンを使って移動平均の計算を行い、ディジタル
フィルタ、FIRフィルタの考え方を導入する。計測データの処理
方法に慣れる。
•  この方法は単に移動平均に用いるだけではなく、
一般的なフィルタ処理にも用いることができます。
•  ディジタルフィルタ処理の入門として、移動平均を扱います。
Excelの構造
•  Excelは表計算ソフトで、データを行と列に入力することができ
ます。
•  C言語などのコンピュータプログラムで、
従来「配列」で処理していた「データ」を
セルに直接書き込み
関数を使ってプログラムを
書くことができます。
for( i=0; i<n-1; i++ )
{
ecg_new[i] = (ecg[i] + ecg[ii+1]) / 2;
}
移動平均とは
•  自分自身の前後数点のデータを、平均し、その点のデータと
する処理です。
•  式の読み方
•  i番目の要素を計算する時
•  kの値を i-nからi+nまで変えて
•  加算する。
•  その結果を2n+1で割って
平均する。
i+n
1
xi =
xk
∑
2n +1 k=i−n
生データ
•  測定したままで、何も処理していない
データを「生データ」と(俗に)呼びます。
•  英語では、Raw Data
•  今回は、manabaから ECG-sample.xlsxを
ダウンロードして開いて下さい。
提出用データ
•  データは150秒あります。各自の学籍番号の下3桁を秒に読
み替えて、そこを起点に5秒分のデータを切り出して下さい。
•  例:学籍番号110XXX100番の人
•  100秒から105秒までのデータを切り出して、
新たにSheet1にA1のセルからコピーして下さい。
•  下の[+]のタブをクリックし、「新しいシート」を挿入する。
•  5秒分のデータを選択し、「コピー」する。
•  新しく作ったシートの[A1]のセルに貼付ける。
•  全員、1001行のデータに
なっているはずです。
Excelでの範囲選択
•  1000行分を、1行ずつ下向き矢印で移動すると時間がかかります。
•  範囲選択は、[Shift]キーを押しながらカーソル移動のキーを使います。
•  ここでは、「ページ単位」でスクロールします。
•  パソコンによって[Page Up] [Page Down]だったり、[Pg Up] [Pg Dn]と
書かれているキーが「ページアップ」「ページダウン」のキーです。
•  ノートPCの場合、[Fn]キーなどと組み合わせる場合があります。
•  MacBookの場合は、[Command]+カーソルの[ ↑ ][ ↓ ]です。
•  つまり、PCによっては、[Shift]キーを押しながら、[Fn]キーと[Pg Dn]を押すと
いうふうに、三つのキーを押すと、ページ単位で移動しながら範囲選択がで
きます。
•  また、さらに範囲が広い場合には、[Shift]キーを押しながら起点のセル
をクリックした後、[Shift]キーを押したまま、スクロールバーで範囲を選
び、[Shift]を押し続けたまま終点のセルをクリックするのが、一番オスス
メの方法です。
商用交流雑音
•  元のデータは0.005秒間隔です。 → 周波数200Hz
•  この上に、50Hzの商用周波数が乗っています。
•  何点で移動平均したらいいでしょうか?
移動平均点数の計算
•  50Hzのデータは、0.02秒で1周期分の変化をします。
•  サンプリング間隔は0.005秒です。交流雑音は
0.02 ÷ 0.005 = 4で、4区間分に1周期が乗ってきます。
•  これを、「前2点」「後2点」に分けて平均します。
•  区間は4つですが中心にある自分自身も数えるので+1します。
•  n=2で以下の式を読みます。
•  kは、自分( i )の2点前から、
自分の2点後まで変化させ、
•  1/5倍(5で割って)平均します。
i+n
1
xi =
xk
∑
2n +1 k=i−n
Excelでの計算(Step 1)
•  A1からA1001まで、生データがコピーされているはずです。
•  ここで、B3のセルに
=average(A1:A5)
•  と入力します。
Excelでの計算(Step 2:操作の考え方)
•  入力されたB3のセルの式を、B999までコ
ピーします。
•  こういう時に便利なのは、Excelのジャンプ
機能です。
•  [Ctrl]キーを押しながら上下左右のキーを押すと、
連続したデータの切れ目まで一気にジャンプしま
す。
•  データのある状態が続いているときは、最後のデータ
まで、データのない状態が続いていると、最初のデー
タが現れるまで、ジャンプします。
•  でも、B列にはデータがありません。ですので、一
旦A列に移動し、A列の一番下(A1001)までジャン
プしてから、一つ右のB列に移動し、今度は、コ
ピー先のB999からB4まで「範囲選択」します。
Excelでの計算(Step 2)
•  まず、B3のセルをコピーします。(Ctrl-C)
•  B3のセルの周囲が点滅します。
•  一つ左のA列(A3)にカーソルを移動させ、
[Ctrl]を押しながら下向き矢印を押します。
•  A1001までジャンプします。
•  一つ右、二つ上のB999に移動します。
カーソルキーで移動します。
•  B999で、[Shift]と[Ctrl]を押しながら、
上向き矢印↑を押します。
Ctrl
+ ↓
Shift + ↓
•  一気に、B999からB3までが選択されます。
•  [Shift]キーだけ押したまま、一つ下に戻り
コピー先の範囲(B4:B999)を選びます。
•  範囲を選んだら、「貼付け」(Ctrl-V)します。
Ctrl +
Shift + ↑
Excelの式の相対参照
•  Excelの関数式は、$マークをつけなければ「相対参照」になり
ます。
•  このため、
•  =AVERAGE(A1:A5)
•  が1行下にコピーされると
•  =AVERAGE(A2:A7)
•  になり、最後のB999のセルでは
•  =AVERAGE(A997:A1001)
•  になります。
•  これで、計算式の入力はOkです。
グラフ表示
•  A3:B999まで、計算済みの範囲を選んで下さい。
•  A3をクリックし、
•  [Shift]を押しながら、右向き矢印(→)を1回押してB3に移動し、
•  さらに[Ctrl]も押しながら、下向き矢印(↓)を押すと、一気にA3:B1001を
選ぶことができます。
•  [Shift]だけを押した状態で、上向き矢印(↑)を2回押すと、範囲を
A3:B999に狭めることが可能になります。
•  これを、折れ線グラフで表示して下さい。
ディジタルフィルタ
•  移動平均の場合には、右の式の
計算を行いました。
i+n
1
xi =
xk
∑
2n +1 k=i−n
•  これ以外にも、同様の手法で、
右のような式を与えることができます。
•  これがディジタルフィルタです。
n
yi =
∑a x
k i+k
k=−n
•  移動平均の場合には、係数行列akが1/(2n+1)の定数であると
考えることが出来ます。
微分フィルタ
•  単純に、 a0 = -1, a1 = 1 と置くと、微分フィルタになります。
•  連続量の微分の定義は以下のようになります。
•  微小時間でのx(t)の増分を
求めれば良いので、直前の
値との差を求めれば、
微分の形になります。
•  (厳密には、サンプリング周期
で割ります。)
d
x(t) − x(t − Δt)
x(t) = lim
Δt→0
dt
Δt
yi = xi − xi−1
X(t)-x(t-Δt)
Δt
Excelでの微分フィルタ計算
•  B列の「移動平均」の結果をそのまま使います。
•  C4のセルに
•  =B4-B3
•  の式を入力し、この式をC999までコピーします。
ピークの強調
•  係数列として、{ -2, 1, 2, 1, -2 }というフィルタを設計します。
•  特性の計算は、「Z変換」で調べると
わかりますが、この科目では扱いません。
•  ですが、同様の方法で計算することが
できます。
•  (下図は、わかりやすくするため、200のオフセットを加算しました。)
•  心電図のQRSのピークを強調できるフィルタです。
一般的なディジタルフィルタ
•  FIRフィルタで調べてみて下さい。
•  Finite Impulse Response Filter(有限インパルス応答フィルタ)です。
•  掛け合わせる係数列を様々に変えることによって、ノッチフィ
ルタ、低域濾過フィルタ、高域濾過フィルタなど、様々な特性を
持つフィルタを作れます。
•  相関フィルタとして、特定の波形パターンを抽出するのにも使
えます。
•  より厳密な処理を行うためには、サンプリング周波数を高く
とって(オーバサンプリングして)フィルタの次数(計算する係
数の数)を増やすことで、特性を
改善することができます。
画像引用元:Wikipedia
今日のまとめ
•  EXCELを用いて、移動平均処理を行うことができる。ディジタ
ルフィルタの作り方をEXCELで検証できる。
•  Excelの操作法で、CtrlキーやShiftキーを組み合わせると、少
ないキー操作・マウス操作で簡単に計算やグラフの作成を行
うことができる。
•  同様の手法で、微分フィルタ、ノッチフィルタ、低域濾過フィル
タ、高域濾過フィルタ、パターン抽出フィルタなど、簡単に実現
することができる。
•  フィルタは、FIRフィルタの考え方で、厳密に計算式を立てるこ
とができる。
今日の提出課題
•  データを切り出したシートで、移動平均と、微分フィルタの計算
処理を行ってグラフを作成し、
•  学籍番号-02.xlsx
•  のファイル名で保存し、メール添付で提出して下さい。
•  提出先は、授業中にお示しします。
•  EXCELの拡張子(xlsx)は、自動的に付加されるので、重複していない
か、提出前によく確認して下さい。
•  配点6点:移動平均の正しいグラフがある。(4点)
•  微分フィルタの計算結果のグラフがある。(2点)
•  ボーナス点: QRS強調のフィルタのグラフが添付されている(2点)