MISC » フーリエ変換の分かりやすい説明 -4

さて、それではなぜこのように数列から周波数を取り出すことができるかを

http://bluedb.org/archives/47

x = {1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0}

から紐解いていきます。

まず周波数が0Hzの部分を考えます。つまり

j=0

です。すると[]の中は常に1であるので、計算は

f0 = 1 + 0 + (-1) + 0 + …. + 1 + 0 + (-1) + 0 = 0

になります。つまり周波数0Hzの成分は0ということになります。周波数0Hzとは切片を意味するので0であっています。

次に周波数が5Hzの部分を考えます。計算はちょっと長くなります。まず、[]の中のcos成分だけに注目しましょう。つまり

の部分です。jは0~39、kは5Hzなので5、nはサンプル数の40になります。この成分だけjが0~39の部分を列挙すると


1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707

が得られます。これをグラフでプロットすると

のように5Hzの波が表示されます。同様にsin成分も5Hzの波になります。この各成分にもとの10Hzの波をかけています。つまり

に関してk=5、n=40をj=0~39で列挙すると


1.0 + -0.0i
0.0 + -0.0i
-0.0 + 1.0i
-0.0 + -0.0i
-1.0 + -0.0i
-0.0 + 0.0i
0.0 + -1.0i
0.0 + 0.0i
1.0 + 0.0i
0.0 + -0.0i
-0.0 + 1.0i
-0.0 + -0.0i
-1.0 + -0.0i
-0.0 + 0.0i
0.0 + -1.0i
0.0 + 0.0i
1.0 + 0.0i
0.0 + -0.0i
-0.0 + 1.0i
-0.0 + -0.0i
-1.0 + -0.0i
-0.0 + 0.0i
0.0 + -1.0i
0.0 + 0.0i
1.0 + 0.0i
0.0 + -0.0i
0.0 + 1.0i
-0.0 + -0.0i
-1.0 + -0.0i
-0.0 + 0.0i
0.0 + -1.0i
0.0 + 0.0i
1.0 + 0.0i
0.0 + -0.0i
0.0 + 1.0i
-0.0 + -0.0i
-1.0 + -0.0i
-0.0 + 0.0i
0.0 + -1.0i
0.0 + 0.0i

が得られます。これを全て足すと、各成分が打ち消しあい、


0.0+ 0.0i

になります。つまり、5Hzの成分はもとの波に含まれてないことが分かりました。

つまりsineとcosineから構成される

の部分は周波数kの波を意味していることになります。そして元の配列xにその波の成分が含まれていない場合にはゼロになるというわけです。

ではもしxにその波の成分が含まれていたらどうなるのでしょうか?次回は10Hzの場合に関して調べます。




関連商品