【高速フーリエ変換】ナイキスト周波数とサンプリング周波数の違いとエイリアシング

高速フーリエ変換(FFT)におけるナイキスト周波数とサンプリング周波数の違いとエイリアシングについてまとめました。 [latexpage]

【数値例】高速フーリエ変換(FFT)

次のような周期信号$f(t)$を用意します。

\begin{eqnarray} f(t)=sin(2\pi f_1t)+sin(2\pi f_2t)+Noise \end{eqnarray}

ここで$f_1=10, f_2=20$, Noiseは雑音とします。 次に周期信号$f(t)$をンプル数$N=256$、サンプリング周波数$f_s=100$でデジタルの周期信号$f(n)$に変換します。 そして、デジタル周期信号$f(n)$を離散フーリエ変換した結果は次の通りです。

右が入力信号$f(n)$、左が振幅スペクトル$|F(k)|$です。 振幅スペクトルを見ると、周波数10, 20のピークが大きいことがわかります。 振幅スペクトルを見ると、低周波側(10, 20Hz)のスペクトルが大きいことがわかります。 これは、入力信号が2つの正弦波(周波数10と20)の合成波であるためです。

サンプリング間隔が0.01なのでサンプリング周波数は100Hzとなります。 高周波側(80, 90Hz)のスペクトルは、0Hz~50Hzの正の周波数(sin)に対して、-50Hz~0Hzの負の周波数(cos)に相当する成分です。 入力信号が実数の場合、低周波側と高周波側のスペクトルは対称になりますが、複素数の場合は非対称になります。

【エイリアシング】サンプリング周波数、ナイキスト周波数

用語 概要
サンプリング周波数$f_s$ 1秒間にサンプリングされるデータ数です。例えば、サンプリング周波数$f_s$が100[Hz]ならば1秒間に100個の割合でデータを取得します。
ナイキスト周波数$f_n$ サンプリングしたときに表現できる、周波数の最大値をナイキスト周波数$f_n$といいます。標本化定理よりサンプリング周波数$f_s$の半分となります。つまり、ナイキスト周波数$f_n$は正しく検出できる最大の周波数となります。例えば、サンプリング周波数$f_s=100[Hz]$なのでナイキスト周波数$f_n$は50[Hz]となります。高速フーリエ変換で周波数解析を正確に行うためには、入力信号の最大周波数の2倍以上のサンプリング周波数でサンプリングする必要があります。先程の数値例では入力信号の最大周波数が20[Hz]なので、サンプリング周波数は最低でも40[Hz]にすることになります。
エイリアシング サンプリング周波数$f_s$が不十分な場合(ナイキスト周波数$f_n$より高い周波数の信号を標本化)、標本化した際に折り返し (エイリアシング) という現象が生じ、元信号に忠実に復元できません。

関連ページ

【フーリエ変換】計算式の原理・意味
フーリエ変換の原理について入門者向けに紹介します。
高速フーリエ変換(FFT)の計算式の原理・意味
この記事では、高速フーリエ変換(FFT)の公式と原理について入門者向けに紹介します。
記事の監修者
西住技研

在学中はシステム制御理論や画像処理、機械学習を専攻分野として研究していました。就職後は、プログラミング(Python)を活用したデータ分析や作業自動化に取り組み、現在に至ります。そこで得たノウハウをブログで発信しています。
⇓YoutubeやX(旧Twitter)でも情報発信中です

西住技研をフォローする
信号処理

コメント