ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Main Menu
Tweet
Facebook
Line
:-?
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
webadm
投稿日時: 2009-7-29 19:13
Webmaster
登録日: 2004-11-7
居住地:
投稿: 3086
Fourier変換の諸性質
Fourier変換は物理的には任意の波形の時間軸領域と周波数領域との間の相互変換を意味する。

数学的には連続関数の積分で表されるFourier変換を具現化化している装置にはスペクトルアナライザがある。変換したいスペクトル領域の角周波数をスイープ発振させ、それと入力信号を掛け算して得たI/F信号を検波した値を角周波数ωを横軸にプロットするとFourier変換|F(ω)|が現れることになる。

低周波信号領域では十分な分解能がアナログ方式では得にくいので、ナイキストレートで信号をサンプルした数列に対して適用可能な離散Fourier変換が用いられる。一般に計算機で使われている高速Fourier変換は離散Fourier変換を計算機に最適化したアルゴリズムで実装したものである。

天文学の分野では電波望遠鏡の受信信号を高速Fourier変換することによって遠く離れた恒星や銀河のスペクトル分析を行っている。

引き続きFourier変換の便利な諸性質を学んでいくことにする。

(1)線形性

Fourier変換は線形結合が成り立つ。

y(t)=a1*y1(t)+a2*y2(t)+...

とするとy(t)のFourier変換は

F(ω)=∫y(t)*e^-jωtdt
=∫(a1*y1(t)+a2*y2(t)+...)*e^-jωtdt
=a1∫(t)*e^-jωtdt+a2∫y2(t)*e^-jωtdt+...
=a1*F1(ω)+a2*F2(ω)+...

ということになる。

同様に逆変換も

F(ω)=a1*F1(ω)+a2*F2(ω)+...

とすると

y(t)=(1/2π)∫F(ω)*e^jωtdω
=(1/2π)∫(a1*F1(ω)+a2*F2(ω)+...)*e^jωtdω
=a1*(1/2π)∫F1(ω)*e^jωtdω+a2*(1/2π)∫F2(ω)*e^jωtdω+...
=a1*y1(t)+a2*y2(t)+...

ということになる。

(2)対称性

F(ω)とy(t)がそれぞれFourier変換対で有る場合

F(ω)=∫y(t)*e^-jωtdt
y(t)=(1/2π)∫F(ω)*e^jωtdω

F(ω)をFourier逆変換すると

(1/2π)∫F(ω)*e^-jωtdω
=(1/2π)*F(t)
=y(-ω)

従って

F(t)=2π*y(-ω)

という関係が成り立つ。

(3)時間軸の伸縮

Fourier変換の入力となる関数を時間軸上に伸縮させたら変換結果はどうなるだろうか? 例えば1kHzの正弦波を時間軸上で10倍に引き延ばすと100Hzの正弦波となる、従ってFourier変換結果はそれに反比例した低い方に線スペクトルが遷移するはずだと定性的には予測できる。

Fourier変換の式

F(ω)=∫y(t)*e^-jωtdt

において

t'=a*t

と置くと

ωt=(ω/a)*t'

更に

ω'=ω/aと置くと

ωt=ω't'

これらでa>0の場合y(a*t)のFourier変換は

(1/a)∫y(t')*e^-jω't'dt' (t'=-∞,∞)
=(1/a)*F(ω/a)

a<0の場合には時間と逆向きになるので

t'=a*t=-|a|*t

と置くと

(-1/|a|)∫y(t')*e^-jω't'dt' (t'=∞,-∞)
=(1/|a|)∫y(t')*e^-jω't'dt' (t'=-∞,∞)
=(1/|a|)*F(ω/a)

ということになる。

従ってテープに録音した信号を逆再生してFourier変換しても通常に再生したときと同じ結果が得られるということになる。

(4)時間軸と周波数軸の推移

関数y(t)を定数t0だけ右方向に移動した場合はそのFourier変換結果はどうなるか?

y(t-t0)のFourier変換は

t'=t-t0

と置くと

dt'=dt
t=t'+t0

なので

∫y(t')*e^-jω(t'+t0)dt'
=∫y(t')*e^-jωt'*e^-jωt0dt
=t0∫y(t')*e^-jωt'dt*e^-jωt0
=F(ω)*e^-jωt0

ということになる。これは元のスペクトルとe^-jωt0との相関になるることを意味する。元のスペクトルを得るには、相関係数e^tjωt0を乗じて打ち消してやる必要がある。これは電波望遠鏡などのデジタル分光器で行われてる方法である。

同様にωをω0だけ右方向に推移した場合F(ω-ω0)のFourier逆変換は

ω'=ω-ω0

と置くと

ω=ω'+ω0
dω=dω'

なので

(1/2π)∫F(ω')*e^j(ω'+ω0)tdω'
=(1/2π)∫F(ω')*e^jω'dω'*e^jω0t
=y(t)*e^jω0t

ということになる。これはω0分だけ周波数変換することを意味する。

(5)微分と積分

y(t)の微分をFourier変換するとどうなるか?

∫{d(y(t))/dt}*e^-jωtdt
=∫{d((1/2π)∫F(ω)*e^jωtdω)/dt}*e^-jωtdt
=jω∫{(1/2π)∫F(ω)*e^jωtdω)}*e^-jωtdt
=jω∫y(t)*e^-jωtdt
=jω*F(ω)

ということになる。

F(ω)の微分をFourier逆変換するとどうなるか?

(1/2π)∫F'(ω)*e^jωtdω
(1/2π)∫{d(F(ω))/dω}*e^jωtdω
=(1/2π)∫{d(∫y(t)*e^-jωtdt)/dω}*e^jωtdω
=(1/2π)∫{(-jt)∫y(t)*e^-jωtdt}*e^jωtdω
=(-jt)*(1/2π)∫F(ω)*e^jωtdω
=(-jt)*y(t)

ということになる。

次にy(t)の積分をFourier変換したらどうなるか?

どうすんだこれ?

y(t)の積分関数をg(t)とするとそれをtで微分するとその導関数は

g'(g)=y(t)

ということになる。

従ってg(t)のFourier変換をG(ω)と置くと先の導関数のFourier変換の式から

F(ω)=∫y(t)*e^-jωtdt
=∫d(g(t))/dt*e^-jωtdt
=jωG(ω)

従って

G(ω)=∫Y(t)*e^-jωtdt
=F(ω)/jω

ということになる。いろいろ検索するとy(t)の積分関数の定義の違いによって、これにちょっとおまけがついた式になっているものもあるが、導出方法が説明されているものは無いので大分悩んだ。

F(ω)の積分をFourier逆変換したらどうなるか?

これも同様にF(ω)の積分関数をG(ω)とするとその導関数は

G'(ω)=F(ω)

であるので、先の導関数のFourier逆変換の式からG(ω)のFourier逆変換をg(t)とすると

y(t)=(1/2π)∫G'(ω)*e^jωtdω
=(-jt)g(t)

従ってF(ω)の積分のFourier逆変換は

g(t)=(1/2π)∫G(ω)*e^jωtdω
=y(t)/(-jt)
=j*y(t)/t

ということになる。

このFourier変換とFourier逆変換の対はFourier変換対とよばれ、いろいろな参考書にいくつか有用なものが一覧表で示されていたりする。有る意味で数学の知恵の輪みたいなもので、任意の基本関数の式をネタにしていくらでも問題が出来そうであるが、簡単に解けるのは限られていて、一覧に出ているものも必ずしもその導出方法を示すだけの紙面を割いていないものが多いので鵜呑みは禁物である。自分で導出出来るようになってこそ理解したと言えるだろう。

まだまだ続きがある

(6)Parsevalの定理

ほとんどの参考文献でParsevalの定理と呼ばれているが、ParsevalはFourier級数が登場する以前の人でそれまでの級数に関してのものだったのが後にRayleigh卿がFourier級数に適用した際に敬意を表してParsevalの名前を用いたことからRayleighの定理と呼ぶ文献もある。

y(t)とF(ω)の複素共役をそれぞれy*(t)とF*(ω)とするとy*(t)のFourier変換は

y*(t)={(1/2π)∫F(ω)*e^jωtdω}*
=(1/2π)∫F*(ω)*e^-jωtdω

ということになる。

従って

∫|y(t)|^2dt
=∫y(t)y*(t)dt
=∫y(t){(1/2π)∫F*(ω)*e^-jωtdω}dt
=(1/2π)∫F*(ω){∫y(t)*e^-jωtdt}dω
=(1/2π)∫F*(ω)F(ω)dω
=(1/2π)∫|F(ω)|^2dω

ということになる。途中積分項の交換という数式トリックを使用するのがミソ。

これは信号エネルギー密度がFourier変換結果から得られるということを意味する。

(7)畳み込み積分

独立した関数f(t),g(t)のFourier変換をそれぞれF(ω)とG(ω)とすると、それら積をH(ω)とした場合そのFourier逆変換はどうなるか?

これはちょうど片方の周波数スペクトルをもう片方の周波数スペクトルでマスクしたような演算になる。つまり任意の周波数範囲だけ抜き出すとか、除去するようなフィルタリング演算に相当する。

(1/2π)∫H(ω)*e^jωtdω
=(1/2π)∫F(ω)G(ω)*e^jωtdω

ここでF(ω),G(ω)は

F(ω)=∫f(t)*e^-jωtdt (t=-∞,∞)
G(ω)=∫g(τ)*e^-jωτdτ (τ=-∞,∞)

とすると

(1/2π)∫F(ω)G(ω)*e^jωtdω
=(1/2π)∫{∫f(t)*e^-jωtdt∫g(τ)*e^-jωτdτ}*e^jωtdω
=(1/2π)∫{∫f(t)∫g(τ)*e^-jω(t+τ)dτdt}*e^jωtdω

ここで積分の変数変換テクニックを使用して

t+τ=x

とすると

τ=x-t
dτ=dx

と置き換えることができ

(1/2π)∫{∫f(t)∫g(x-t)*e^-jωxdxdt}*e^jωtdω
=(1/2π)∫{∫∫f(t)g(x-t)dt*e^-jωxdx}*e^jωtdω

ここで(f*g)(x)をf(t)とg(t)の合成積(畳み込み積分)と定義すると

(f*g)(x)=∫f(t)g(x-t)dt (t=-∞,∞)

(1/2π)∫F(ω)G(ω)*e^jωtdω
=(1/2π)∫{∫(f*g)(x)*e^-jωxdx}*e^jωtdω

従って

H(ω)=∫(f*g)(x)*e^-jωxdx

ということになり

(1/2π)∫F(ω)G(ω)*e^jωtdω
=(1/2π)∫H(ω)*e^jωtdω
=h(t)

ということになる。

つまりフィルタリングをするにはマスクしたい周波数スペクトルがFourier変換結果となるような応答関数と入力信号を畳み込み積分すればよいことになる。

今度は逆にf(t),g(t)のFourier変換F(ω),G(ω)の畳み込み積分H(ω)をFourier逆変換するとどうなるか?

f(t)=(1/2π)∫F(ω)*e^jωtdω
g(t)=(1/2π)∫G(ω)*e^jωtdω

H(ω)=∫F(ω')G(ω-ω')dω' (ω'=-∞,∞)

H(ω)のFourier逆変換は

(1/2π)∫H(ω)*e^jωtdω
=(1/2π)∫∫F(ω')G(ω-ω')dω'*e^jωtdω

周波数軸シフトのFourier変換対より

(1/2π)∫G(ω-ω')*e^jωtdω=g(t)*e^jω't

を代入すると

=∫F(ω')*e^jω'tdω'*g(t)
=2πf(t)g(t)

ということになる。む、f(t)g(t)ではないのか?

どうなんだこれ?

検算してみよう2πf(t)g(t)のFourier変換は

∫2πf(t)g(t)*e^-jωtdt
=∫2π(1/2π)∫F(ω')*e^jω'tdω'g(t)*e^-jωtdt
=∫F(ω')∫g(t)e^-j(ω-ω')tdtdω'
=∫F(ω')G(ω-ω')dω'
=(F*G)(ω)

ちゃんとF(ω)とG(ω)の合成積ということになる。あってるじゃないか(´∀` )

もちろん周波数領域での合成積を以下の様に定義すれば2πという係数をFourier変換対から消すことは可能である

(F*G)(ω)=(1/2π)∫F(ω')G(ω-ω')dω'

いろいろ調べた結果、インターネット上で見ることのできる参考文献の多くはFourier変換の異なる定義式によって混乱を招いており、天下り式にFourier変換対を掲載しているものは誤っているものすらある。特に気をつけないといけないのは、Fourier変換が角周波数(rad/sec)を変数にするのか周波数(Hz)を変数にするのかの違いによって式に2πを含む係数が現れるかどうかが違ってくる。

畳み込み積分、合成積、もしくはConvolutionは別にFourier変換とは独立した概念であるが、信号処理では重要なツールとなる。

ここまではほんの序の口で、連続系Fourier変換は関数解析としては便利だが、実用にするには-∞から∞までの積分を扱うため問題がある。なのでδ関数なる数学上の超関数というトリックを使って離散Fourier変換というものを編み出して、それを使って有限領域かつ離散数列入力に対してFourier変換するというのが普通である。

学校によっては行きなり離散Fourier変換から入るところもある、連続系のFourier変換は離散Fourier変換の式を導出するためにだけ登場すればよいからである。

電気回路理論ではFourier変換よりもラプラス変換が主に用いられる。Fourier変換でも一部の微分方程式を解くのに使用することができるが、ラプラス変換でも出来るのだからそっちに統一した方が教えやすいというものある。

Fourier変換が登場するのは上巻の最後しかない。下巻ではラプラス変換が登場し、ずっとそれが扱われる。フィルターもアナログフィルターしか扱わないのでデジタルフィルターで用いられる離散Fourier変換は登場しない。それらは別途デジタル信号処理という専門分野で学ぶという仕組みである。

著者はどうして下巻で使われることがないFourier変換をここで登場させたのだろうか? これからはデジタル信号処理によるデジタルフィルターが主になるだろうからその前準備として学んで欲しかったのだろうか? もともとこの部分は全体を通して最後の章になるべきところなので、そうなのかもしれない。

デジタル信号処理では数理的な解析に終止するので、ここに登場するような式が出てきても驚かないようにしておくことは重要である。

Fourier変換は突っ込んで研究するときりが無い程奥が深い。特にデジタル信号処理に進むためには、畳み込み積分とδ関数の概念はしっかり身につけないといけない。

Fourier変換を研究すれば微分積分、超関数、複素数、複素解析とかありとあらゆる高等数学を学ぶことになるので、Fourier変換を極めれば自ずと数学を極めることができると言っても過言ではないような気がする。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   Fourier変換と波形解析 webadm 2009-7-18 22:32
     ひずみ波のFourier級数展開 webadm 2009-7-18 23:42
     特殊な形のひずみ波 webadm 2009-7-19 19:27
     ひずみ波の実効値と電力 webadm 2009-7-20 0:32
     ひずみ波の波形率、波高率、ひずみ率 webadm 2009-7-22 10:39
     等価正弦波 webadm 2009-7-22 20:43
     三相回路におけるひずみ波 webadm 2009-7-22 21:04
     非周期波とFourier積分 webadm 2009-7-23 20:52
   » Fourier変換の諸性質 webadm 2009-7-29 19:13
     線形回路の応答 webadm 2009-8-5 9:58

投稿するにはまず登録を
 
ページ変換(Google Translation)
サイト内検索