電子情報工学実験報告
実験 5 デ ィジタル信号処理
報告者 : 5D–25 永安 佑希允
共同実験者 : 林直輝,吉澤泰士
指導教官 : 滝沢教官
実験日 : 2000 年 05 月 29 日
提出日 : 2000 年 06 月 05 日
1 目的
本実験では ,デ ィジタル信号処理の基本の 1 つである ,高速フーリエ変換( Fast Fourier Transform ;
FFT )の原理について学び ,その理解を深める。
2 概要
2.1 フーリエ変換
信号を表現するには ,x(t) など のように時間の関数として表す方法(時間領域表現)と,フリーエ係数,
複素フリーエ係数によって表す方法(周波数領域表現)がある。この 2 つの領域を定義する式が ,次に示す
フーリエ変換対( Fourier Transform Pair )である。
Z
X(ω) =
+∞
−∞
1
x(t) =
2π
Z
x(t)e−jωt dt
+∞
−∞
X(ω)e−jωt dω
(1)
(2)
信号処理および解析においてフーリエ変換は欠かせない処理手段の 1 つである。フーリエ変換をデ ィジタ
ル信号処理に適用するには ,次に述べる離散データを扱う離散フーリエ変換が必要になる。
2.2 離散フーリエ変換
波形 x(t) を一定時間 TS でサンプリングして得られるいわゆる離散波形 x(nTS )( n はサンプル番号)を
用いて周波数スペクトルを求める操作が離散フーリエ変換( Discrete Fourier Transform ; DFT )である。
このとき周波数スペクトルは,角周波数の連続量 ω に対してではなく,基本角周波数 ω0 の整数倍の角周波
数 kω0( k は整数)に対する値として得られる。また,分析しようとする離散波形 x(nTS ) の全サンプル数
を N とすると,ω0 = 2π/N TS で与えられる。N TS は全サンプル数の時間長に相当する。k は ,角周波数
の番号に相当する。以上より,離散的な周波数スペクトルを X(k) とすると,フーリエ変換対の離散的に表
現は ,次式で定義される。
X(k) =
N−1
X
x(n)e−j2πkn/N =
n=0
x(n) =
N−1
X
x(n)WNkn
(3)
n=0
N−1
N−1
1 X
1 X
X(k)e−j2πkn/N =
X(k)WN−kn
N n=0
N n=0
(4)
2.3 高速フーリエ変換
高速フーリエ変換は ,1965 年に米国の J.W.Cooley と J.W.Turkey によって発表された。先に述べた DFT
を DFT 中の exp 関数の周期性を利用することで高速化させ,実用化させたのが FFT である。
1
デ ータ長 N が 2 のベキ乗で与えられるものとする。このときサンプル時系列 x(n) を ,n が偶数番目
の時系列 x(2l) と ,奇数番目の時系列 x(2l + 1) に分け ると ,x(n) の DFT は 次式で表せる。
( ただし ,
l = 0, 1, . . . , N2 − 1 とした)
N/2−1 n
X(k) =
X
l=0
2π
2π
−j N/2
2
また,WN
= e−2j N = e
(2l+1)k
x(l)WN2lk + x(2l + 1)WN
o
(5)
であるから,
N/2−1
X(k) =
X
N/2−1
lk
x(l)WN/2
+ WNk
l=0
X
lk
x(2l + 1)WN/2
= G(k) + WNk H(k)
と表すことができる。ただし ,G(k) =
(6)
l=0
PN/2−1
l=0
(7)
lk
x(l)WN/2
, H(k) =
PN/2−1
l=0
lk
x(2l + 1)WN/2
とする。
一方,G(k) と H(k) は WN/2 が周期 N/2 でいることから ,周期 N/2 の周期関数である。これらより ,
N/2 個の k について G(k) と H(k) を計算すれば X(k) を求めることができる。DFT の乗算回数が N 2 で
あったのに 対し ,FFT は (N/2)2 回の計算で済み ,全体とし て計算回数は 1/2 になる。さらに 。G(k) と
H(k) はそれぞれ N/2 点の DFT と考えられ ,再分解される。この処理を繰り返すことによって,計算回数
は約 (N/2) log2 N 回の乗算と N log2 N 回の加算となる。
3 実験
本実験では,図 1 の波形生成/フーリエ変換プログラムと,Microsoft Excel を組み合わせて使用する。
図 1: 実験に使用するソフトウェア
2
3.1 正弦波の加算と FFT による分析
ここでは ,正弦波とその高調波を生成し ,その合成波をフーリエ変換する。結果を,図 2 ,図 3 ,図 4 ,図
5 ,図 6 ,に示す。
今回は。基本波として sin(ωt) ,高調波として 0.8 sin(4ωt) を使用した。
2
1
0
-1
-2
0
100
200
図 2: 基本波
3.2 矩形波の FFT による分析
ここでは ,矩形波をフーリエ変換し ,その高域成分と低域成分を削り,逆フーリエ変換する。これにより,
高域低域フィルタをシミュレーションする。結果を,図 7 ,図 8 ,図 9 に示す。
4 課題
4.1 用語の調査
■サンプリング定理 サンプリング定理とは ,ある波形を記録するためにはその波形の最高周波数の 2 倍の
周波数でサンプリングする必要があるという定理である。逆に言えば ,最高周波数の 2 倍のサンプリング周
波数があれば ,元の波形を再現できることを示している。
■エイリアシング
エイリアシング( aliasing )とは ,サンプリング周波数が足りていない場合に,別の波形
が再現されてし まう現象である。
図 10 では ,高周波の波形の周期を T として,34 T 毎にしかサンプリングしなかった場合に,低周波の波形
3
2
1
0
-1
-2
0
100
200
図 3: 高調波
2
1
0
-1
-2
0
100
200
図 4: 基本波と高調波の合成波形
4
200
100
0
-100
-200
0
100
200
図 5: 基本波と高調波の合成波形のフーリエ変換結果
200
100
0
0
10
20
30
40
50
図 6: 基本波と高調波の合成波形のフーリエ変換結果の振幅成分( 最初の部分)
5
100
0
-100
0
100
200
図 7: 矩形波のフーリエ変換結果
150
100
50
0
0
10
20
30
40
50
図 8: 矩形波のフーリエ変換結果の振幅成分(最初の部分)
6
0.5
0
-0.5
0
100
200
図 9: 矩形波のフーリエ変換結果の高低域成分を削って逆フーリエ変換した波形
図 10: エイリアシングの例
が再現される現象を示している。
この現象を防ぐ ためには,サンプリング定理に基づき ,最高周波数の 2 倍以上の周波数でサンプリングす
ることが必要になる。
参考文献
[ 1 ] 奥村晴彦『 C 言語による最新アルゴ リズム事典』
( ISBN 4–87408–414–1 )
[ 2 ] エイリアシング( http://mars.elcom.nitech.ac.jp/˜masa/sampling2.html )
[ 3 ] サンプル &ホールド 回路とサンプリング定理
( http://www.pn.scphys.kyoto-u.ac.jp/˜enyo/kougi/elec/node52.html )
[ 4 ] パソコン知ったか辞典( http://www.nttpub.co.jp/paso/paso.html )
7
指導書の問題点
指導書には間違いかも知れない点をいくつか発見したので,書き留めておく。検証する必要があるかも知
れない。
• G(k) =
PN/2−1
l=0
lk
x(l)WN/2
ではなく G(k) =
PN/2−1
l=0
lk
x(2l)WN/2
ではないか。前者の式だと ,偶数
奇数に関係なく ,すべての成分が含まれることにならないか。
• DFT の乗算回数が N 2 であったのに対し ,FFT は (N/2)2 回の計算で済むのなら ,計算回数は 1/2
ではなく 1/4 ではないか。(N/2)2 = N 2 /4 である。
• 「高周波の生成」ではなく「高調波の生成」ではないか。
8
ダウンロード

実験5 ディジタル信号処理