オーバーサンプリングについて考えました。
サンプル数を増やすことを言いますね。
どのようにするのか知っていますか?
簡単な例でやってみます。エクセルでやってみました(^^
■
まず、やり方です。簡単です。信号のデータ列の間に、「0」を挿入します。これでサンプル数は倍になりました。しかし、でこぼこです。
これを図1に示します。
図1「0」をサンプル間に挿入
そして、このデータ列を、ローパスフィルタ(デジタルフィルタ)に通します。このでこぼこをとってしまうのです。簡単な1次のフィルタに入れた結果を図2に示します。きれいにならされていますね。振幅はこのため半分になっています。
エクセルでの計算は、
Y(n)=(X(n)+X(n-1)-Y(n-1)*(1ー6)/(6+1)
です。Xは元データ、Yは変換後のデータです。
図2 オーバーサンプリングされたデータ列
■理論
1次フィルタだから簡単です。
ローパスフィルタ
H(s)=a/(s+a)
で炉はすることを考えます。aはカットオフ周波数をf0とすれば2πf0です。
s=(2/T)(1-z)/(1+z)
と、代入することでデジタルフィルタとなります。Tはサンプル周期です
H(z)=a/((2/T)(1-z)/(1+z)+a)
=(a*(1+z))/((2/T)*(1-z)+a*(1+z))
=(a+az)/((2/T+a)+(aー2/T)*z)
=(1+z)/((2/(Ta)+1)+(1ー2/(Ta))*z)ーー(1)
■
これをエクセルデータにあてはめます。
(1)式でTaがエクセルデータ上でどうなるかがわかればいいのです。
エクセルの1コマをTとし、正弦波の一周期のデータの数をNとします。
すると、
周波数F=1/(T*N)
カットオフ周波数f0をFの5倍にしたければ、
a=2π*5/(T*N)
Ta=2π*5/N
(1)式にこのTa値をいれればOKです。
■
(1)式のエクセルでの計算法
Y*((2/(Ta)+1)+(1ー2/(Ta))*z)
=X*(1+z)
より、
Y(n-1)*(1ー2/(Ta))+Y(n)*(2/(Ta)+1)
=X(n)+X(n-1)
Y(n)=(X(n)+X(n-1)-Y(n-1)*(1ー2/(Ta))/(2/(Ta)+1)
この式が答です。
X(n)という数列は、測定データ列です。Y(n)は雑音の炉はされた結果
です