正弦波周期 | スペクトル縦軸 線形 dB | ||||||
窓の長さ | 窓関数 矩形 hann hamming Blackman |
離散時間正弦波信号とそのDFTスペクトル計算において,有限長での切り出し(窓関数の乗算)と,周波数領域での離散化(=時間領域での周期化)がどのような影響を及ぼすかについて示します.上段のグラフは,窓関数をかけた正弦波を窓の長さで周期化したもので,窓関数の適用と周期化によって元の正弦波と異なる場合は元の信号を緑色の線で示しています.DFTスペクトルは正弦波に対して切り出しと周期化操作を行った周期信号の離散時間フーリエ級数 (DTFS) と等価です. 下段のグラフは振幅スペクトルです.
スライダーで離散時間正弦波の周期と,切り出す長さ(窓の長さ)を変えて観察してください. 単純な切り出し(矩形窓)で窓の長さが正弦波周期の整数倍の場合,窓関数をかけて窓の長さで周期化した信号は元の正弦波と同一です.このとき,観察されるDFTスペクトルは原信号と同じ周波数成分しか持たないきれいな線スペクトルになります.それ以外の場合,本来の周波数ではない周波数成分が観察されます. なお,縦軸は定義通りのDFTだとピークの値が窓長によって大きく変化するため,窓長で割った値を表示しています.
一般的な離散時間信号を周波数スペクトルへ変換する理論的な手法は離散時間フーリエ変換 (DTFT: Discrete-Time Fourier Transform)ですが,真のDTFTを計算するには無限の過去から無限の未来までの信号値が必要ですので,現実には実行不可能です. そこで,無限長の信号から有限長の区間を切り出して(窓関数をかけて)有限長の信号を解析することになります. 我々がディジタル信号処理で常用する高速フーリエ変換 (FFT: Fast Fourier Transform) は離散フーリエ変換(DFT: Discrete Fourier Transform)の高速計算アルゴリズムですので,本来の信号のスペクトル (DTFT) と現実的な解析で得られるスペクトル (DFT) との相違を理解しておくことは重要です.DTFTとDFTは名前が似ていて紛らわしいですが,別のものです.
DTFT:
\(\displaystyle
X(e^{j\omega}) = \sum_{n=-\infty}^\infty x[n] e^{-j\omega n}
\)
DFT:
\(\displaystyle
X[k] = \sum_{n=0}^{N-1} x[n] e^{-j\omega_k n}, \qquad \omega_k = \frac{2\pi k}{N}
\)
両者を比較すると,DTFTとDFTの違いは,以下の点にあることがわかります.
正弦波は本来単一の周波数しか持ちませんが,DFT/FFTで計算したスペクトルにおいて本来の正弦波周波数でない周波数成分が観察される理由は,上記の相違と対応しており,次のようになります.
このページでは原理的な事項を説明するため長さの短い窓関数を使っていますが,実際の周波数解析では通常はるかに長い窓関数を使用しますので,周波数分解能は高くDFT/FFTにおける周波数の離散性を意識することは少ないかもしれません.しかし,DFT/FFTを利用する以上,計算されるスペクトルの周波数があくまで離散的であるとともに,窓関数をかけることの影響についてを知っておくことは重要であると思われます.
2022/08/04 | 初版:「正弦波信号のDFTスペクトル」を元に作成 |
2022/08/06 | デシベル表示,矩形窓以外の窓関数を追加 |
2023/03/23 | URL変更 |
作成:2022年8月4日