切削加工の専門書と論文のリストとオススメ
最終更新日:2022年12月01日

戻る

サンプリング周波数以上でのエイリアシング

信号処理でサンプリングを勉強していると,ナイキスト周波数(Nyquist frequency)とエイリアシング(aliasing)の話が必ず出てきます.
大体,「サンプリング周波数の半分がナイキスト周波数なので,測定したい対象の周波数をナイキスト周波数以下にしなさい」とか,
「サンプリング周波数は測定対象の周波数の10倍くらいにしなさい」とか,
「ナイキスト周波数を境にエイリアシング(折り返し雑音)が生じます」とかいうのが書かれています.
ここで疑問に思うのは,「測定対象の周波数がサンプリング周波数を超えると,測定結果としてどのように見えるのか」ということです.
そんな状況では,測定という行為がそもそも成立しているようには思えませんが,そういう可能性も常に考えておくのが正しいはずです.
可能性を考えておくためには,どういう見え方をするのかを理解しておかなければいけません.
そこで,どういう風に見えるのかを計算してみます.

まずは,測定対象の正弦波を,特定のサンプリング周波数で測定したときの数式を作ります.

\( V_{(N)} = \sin(2 \pi f_{target} \cdot \cfrac{N}{f_{sample}} + \phi ) \)

\( V_{N} \): N番目の測定結果(ただし,Nは自然数)
\( f_{target} \): 測定対象の周波数
\( f_{sample} \): サンプリング周波数
\( \phi \): 位相差(今回はゼロに設定)

まずは,測定が成立している場合とし,\( f_{target}= 30 \) (Hz) ,\( f_{sample}= 400 \) (Hz)とします.
下図に,時系列の測定結果を示します.

Time_Target30Sampling400

測定対象の正弦波に対して,測定点が追従できていることがわかります.
この時系列の測定結果をフーリエ変換して,片振幅スペクトルを計算した結果を下図に示します.

FFT_Target30Sampling400

片振幅スペクトルを確認すると,30Hzが370Hzのピークとしても見えていることがわかります.
ナイキスト周波数が200Hzなので,ここで折り返していることがわかります.
次に,\( f_{target}= 370 \),\( f_{sample}= 400 \)とします.
下図に,時系列の測定結果を示します.

Time_Target370Sampling400

この時点で,測定対象の正弦波に対して,測定点が追従できていないことがわかります.
下図に,片振幅スペクトルの計算結果を示します.

FFT_Target370Sampling400

\( f_{target}= 30 \),\( f_{sample}= 400 \)での計算結果と区別がつかないことがわかります.

では,ここから,測定対象の周波数を,サンプリング周波数以上に設定します.
下図に,\( f_{target}= 430 \),\( f_{sample}= 400 \)での計算結果を示します.
これらは,時系列の測定結果および,片振幅スペクトルの計算結果が,\( f_{target}= 30 \)と同じです.

Time_Target430Sampling400


FFT_Target430Sampling400

下図に,\( f_{target}= 770 \),\( f_{sample}= 400 \)での計算結果を示します.
これらは,時系列の測定結果および,片振幅スペクトルの計算結果が,\( f_{target}= 370 \)と同じです.

Time_Target770Sampling400


FFT_Target770Sampling400


下図に,\( f_{target}= 830 \),\( f_{sample}= 400 \)での計算結果を示します.
これらは,時系列の測定結果および,片振幅スペクトルの計算結果が,\( f_{target}= 30 \)と同じです.

Time_Target830Sampling400


FFT_Target830Sampling400

実際に測定しているときには,位相の影響までは把握できないので,位相が180度ずれてみえる効果は無視します.
そうすると,測定結果として得られた周波数が,実際には違う周波数だったとしたとき,それは次式を満たします.

\( f_{true} = N \cdot f_{sample} \pm f_{measured} \)
ただし,
\( N \)は0以上の整数で,\( f_{true} > 0 \)を満たす.

\( f_{true} \): 実際に生じている周波数
\( f_{sample} \): サンプリング周波数
\( f_{measured} \): 測定結果として得られた周波数(ただし,ナイキスト周波数以下)


戻る