2019年09月28日

FFTというものがあってな・・・・

FFT = Fast Fourie Transformだったかな、直訳すると高速フーリエ変換、となる気がするが間違いである。やってるのはDFT = Discrete Fourie Transform高速化である。一般に言うフーリエ変換は連続世界の話なのである。コンピュータでは離散化必須であり連続世界ではない、キリッ)

Pythonで学ぶ実践画像処理・音声処理入門 伊藤他・コロナ社でfftがあったので見た。

Sampling = 8k, 成分は、500, 1000, 1500, 2000Hzである。係数は略
これのfftは、

# fft

    cs = sfft.fft(yy[:8000])

    plt.plot(np.abs(cs))

    plt.show()


image

image

500,1000,1500,2000 と係数は換えた。1500の係数は1である。そして、その場合には縦軸がSampling 8k の1/2 の 4000を示している。

なぜ、4000なのか。なぜ、Sampling 8000の半分なのか、なじぜー、どないしてー。

という当たりで実はワタクシはフーリエ級数、フーリエ変換に関する理解が浅いと気づいた次第である。
なんちーーて。

そういうわけなので、どうして4000になるのかはフーリエ級数の原理的な話から始めるといいね。ただ、ここらは定性的な話をしてもダメで、さらに数学を駆使してもダメですね。数式展開だと納得する場合もあるがイメージとしてはグラフが良い。
例えば1kHzの正弦波がある場合に、1kHzのsin()を持ってきて比較して、次に1kHzのcos()を持ってきて比較して・・・とすると、どうなるか。位相が揃っているとすれば三角関数の次の計算がヒントになる。
sin( x)×sin( x) = 正になる 2乗だからな、プラスになる。 sin()×cos() =プラス成分もマイナス成分もある。これはグラフを書くと一目瞭然で周期積分するとゼロになる。
ここらは数学的には関数の直交性というものだが、文章ではわかりにくいし数式でもわかりにくい。グラフが良い。
一を知って十を知るような賢者はともかく、IQ88のようなオレには具体的なイメージというものが大事。一目瞭然・・・・・と言うでしょ。言葉での説明よりも見ればスッキリとわかるの。

というわけで、そのような解説を次回から書く・・・たぶん。いや、なんで4000が出るのかってのは、簡単に言うと規格化してないからだけど(笑) それとは別に4000という数字がどうして出るかという疑問に回答だ。それはフーリエ級数の理解に直結する。

さてと、酒買いに行くか。エネルギーが不足している(笑)

posted by toinohni at 12:33| 東京 ☁| Comment(0) | 物理科学雑学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください