このフーリエ積分ですが、一見とても複雑に見えるかもしれませんが、展開して行く過程はとても簡単です。
wpcf7-list-item-label::before,. 長さ の区間で ごとに値を持つんだから, 点に決まってるお.わざわざ聞くほどのことかお? list-check-square-o li::before,. やる夫 周波数領域では周期的になるんだったお.正規化角周波数が 増えても,元の信号と見分けがつかないんだったお. やらない夫 そうだな.時間と周波数を入れ替えても同じだ.時間または周波数の一方の領域で離散的だと,他方では周期的になる.逆に一方で周期的だと,他方では離散的になる. やる夫 それでこういう表になるわけだお. やらない夫 時間から周波数,周波数から時間のそれぞれについてマトリックス状に表すとこうなるかな. フーリエ変換は連続・非周期のまま,離散フーリエ変換は離散的・周期的のまま,時間領域と周波数領域を行ったり来たりする変換だ.それに対して,フーリエ級数展開と離散時間フーリエ変換は,「連続・周期的」と「離散的・非周期的」が入れ替わりながら行ったり来たりする変換になる. やる夫 こうしてみると「フーリエ級数展開」だけ名前が異色だお. やらない夫 そうだな.「離散周波数フーリエ変換」とでも呼ぶ方がすっきりするかも知れない.でも歴史的経緯があるのでそういう呼び方はしない. やる夫 そういえば,式の形もフーリエ級数だけちょっと違って見えるお. やらない夫 といっても, をどっちにつけるかだけの違いだけどな.何度も話した通り,正変換と逆変換のどちらに定数倍をつけるかは本質的な問題じゃないんだ.フーリエ級数の場合は歴史的にあくまで「級数展開」として扱われてきたので, の方をきれいな形にして,フーリエ係数を計算する の方にしわ寄せしたわけだ.他の 3 つは時間領域から周波数領域への変換の方をきれいに表示して,逆変換にしわ寄せしたわけだな. やる夫 あー,そうか,そこだけを例外だと思って見渡すと,4 組ともほとんど同じ式だってわかるお. やらない夫 そうだな.その他に注意して見比べておきたいところとしては,• どういうことだお. が大きくなったら だって大きくなるお.高周波になるんじゃないかお. やらない夫 そこが勘違いしやすいところだ.離散フーリエ変換 は周期 の周期関数だったことを忘れてないか? も,整数 について定義される周期 の関数である.• やらない夫 そうなるな.時間も周波数も,離散的でかつ周期的ってことだ. やる夫 おお,対称的だお. やらない夫 整理しておこう.離散時間信号の周波数スペクトルは,一般の場合は,周期 の周期的な連続スペクトルになる.ただし,その特殊な場合として,周期 の周期的な時間信号の場合を考えると,周波数スペクトルは,周期 で周期的で,かつ離散的なスペクトルになる.これならコンピュータで扱えそう,という寸法だ. やる夫 時間領域でも周波数領域でも,有限個の数字の組で表されているわけだお.だからコンピュータで扱えるわけだお. やらない夫 そういうことだ.ところで,周波数領域ではどんな間隔で離散化されていることになると思う? 離散フーリエ変換 やらない夫 これまで,フーリエ級数から始めて,フーリエ変換に進み,そして前回は離散時間フーリエ変換を学んだわけだ. やる夫 そうだお.離散時間フーリエ変換がわかったので,これで晴れて離散時間信号の周波数スペクトルを計算できるようになったわけだお. やらない夫 うーん,ま,そう言っても間違いではないな. やる夫 何でそんな歯切れの悪い感じなんだお? ただ、式が長いだけですので、フーリエ積分に尻込みせずにしっかりと学んで、フーリエ余弦変換とフーリエ正弦変換の導出の仕方を理解してください。
やらない夫 計算できるのは確かにその通りなんだ.机の上ではな.ところが,コンピュータの中で計算できるかって話になると,ちょっと手放しでは喜べない. やる夫 んー,どういうことだお. やらない夫 ちょっと離散時間フーリエ変換と逆変換の公式をもう一回書いてみてくれ. やる夫 えーと,式 と だお. やらない夫 ま,とりあえず式 の離散時間フーリエ変換の方はよしとしようか.ある角周波数 を固定して右辺を計算すれば,その周波数の成分が計算できる.もちろん無限和は計算できないけど,現実世界に存在するの信号は有限の長さだからな.有限個の総和で計算できる.問題は式 の逆変換だ. やる夫 んー,逆変換だって,何か時間 を固定して右辺の積分を計算するだけ…あ,そうか,積分しなきゃならないんだお. やらない夫 そこだ.時間は離散化されたけど,周波数は連続のままだからな.積分は計算機では厳密には計算できない. やる夫 じゃあ,周波数も離散化すればいいんだお! やらない夫 あー,そこは計算済みだとしておこうか. の部分は入力に依存しないから,あらかじめ計算して表として持っておくと考えていい. やる夫 そうかお.じゃあ,えーと, を計算するには,複素数の乗算を 回して,それら 個の複素数の総和を取るんだから加算が 回だお. やらない夫 それはある一つの について計算する場合だな. の全部について計算するならどうだ? これを フーリエ積分公式といいます。
まとめ 今回は フーリエ余弦変換とフーリエ正弦変換を説明しましたが、それらを求めるには フーリエ積分を知っていなければなりません。
やる夫 その 倍だお. やらない夫 そういうことになる.大雑把にいって, に比例する計算量がかかるということだ.このことをよく「計算時間が である」という.話し言葉では「計算時間が のオーダである」ということが多いな. やる夫 何かまた記号が増えたお. やらない夫 で,高速フーリエ変換を使うと,計算量がなんと になる. やる夫 なんと! , , をそれぞれ,周期的離散時間信号 の振幅スペクトル,位相スペクトル,パワースペクトルと呼ぶ. やる夫 何ていうか,このまとめも毎回おなじみな感じだお.筆者もコピペしてるんじゃないかお? list-plus-square-o li::before,. は周波数のインデックスを表す整数で, は, に含まれる正規化角周波数 [rad] の振動成分の量 振幅・位相 を表す.• 「1個、10個、3個」は 各波数の波の振幅 と考えることができます。
やらない夫 他の章と見比べてみるのもいいかもな.周波数を表すインデックス が,実際には正規化角周波数 に対応しているというのが重要なところだ.特に注意が必要なのは, が大きくなったからとって,周波数が高くなるとは限らないことだ. やる夫 え,えっ! 5em;margin-bottom:2em;padding-left:1. list-window-close-o li::before,. という意味があるというのがわかります。
list-chevron-right li::before,. 書籍ではExcel演習を中心に「フーリエ変換のイメージをつかむ」ことを目指しますが、講義では計算が中心となっています。
やらない夫 ああ,そこはちょっと説明が必要だな.まず,長さ の積分区間が 本のインパルスを含んでいるってのはわかるだろう.だから連続する 個の について総和を取ることになるんだが,ほら, は周期 で繰り返すわけだろ.どの範囲で取っても同じだから,一番わかりやすそうな 0 から までにしている. やる夫 んー,それってわかりやすいかお? やる夫 えーと,それはフーリエ級数のときと同じように考えればいいんだお.時間領域で周期 ってことは,基本角周波数が だってことだお.だから,周波数領域では 間隔で離散化されていることになるお. やらない夫 おお,わかってるじゃないか. やる夫 馬鹿にしないでほしいお. やらない夫 さて問題.周波数領域の周期 の区間のうち,何箇所の点で周波数スペクトルは値を持つだろうか. やる夫 え? これらの関数の集合を 正規直交関数系と呼びます。
やる夫 うっ,えーと,どうだったかお.時間領域で離散化したときは,周波数領域でスペクトルが周期的になったんだお.時間と周波数をひっくり返して考えると,「周波数を離散化すると時間領域では周期的になる」ってことでいいのかお? やらない夫 強気だな.まあ答えとしてはそれで正解だ.ただし,時間と周波数の対称性という観点でこれをよく理解しておいて欲しい.時間領域で 1 周期あたり 点からなる離散時間信号は,周波数領域でも 1 周期あたり 点の離散周波数スペクトルになる. やる夫 あー,なるほど,時間でも周波数でもちょうど 点で 1 周するんだお. やらない夫 これから導出するのは,そういう 点の離散時間信号から 点の離散周波数スペクトルへの変換とその逆変換だ.本来,離散時間・離散周波数フーリエ変換とでも呼ぶべきものだが,長いので普通は離散フーリエ変換 Discrete Fourier Transform; DFT と呼ぶ. やる夫 そりゃまた大胆に略したお. やらない夫 ということを踏まえた上で,式 と の離散時間フーリエ変換をもう一度見てみよう. やらない夫 そうだな.と同じことが起きているわけだ.時間と周波数が逆だけどな.周期的でない時間信号の場合に連続的に広がっていたスペクトルが,一定間隔の飛び飛びの線の並びにギュッと圧縮されるイメージだ. やる夫 ギュッと圧縮したから線の高さが無限大に伸びるって話を. やらない夫 まあ,あくまでイメージだけどな.でもそういうイメージを持っておくのは重要だ. で,逆変換である の計算の方は を積分するわけだが, の間隔でデルタ関数が並んだ を長さ の区間で積分するわけなので,要するにインパルス 本の面積を足し合わせることになるわけだ.それによって,元の有限値の列 に戻るという仕組みだ. やる夫 確かに前回と似たような話だお. やらない夫 というわけで,離散時間フーリエ変換の枠組みで周期時間信号を考えようと思うと,無限大の値を持つ が出てくるわけだ.無限大のままじゃ不便だから,有限の値で表せるように改変したのが離散フーリエ変換という枠組みだ. まずは, をこんな風に表すところから始める. 1 やる夫 いきなりややこしい式だお.んー,そもそも って何だお. やらない夫 はインパルスを おきに並べたものだっただろ. に立っているインパルスが,デルタ関数 の 倍の高さだとする.インパルスの「面積」が だと考えてもいい. やる夫 えーと,あ,そうか, が に立っているインパルスで,その付近だけを積分区間にとって積分すると になるんだお.で,それを まで重ね合わせたのが になるんだお. やらない夫 そうだな. が周期 なのに対応して, は周期 だということに注意してくれ. やる夫 , ,… と増えていって の次の は と同じ値に戻るわけだお. やらない夫 で,式 の積分に,これを代入する. 3 やる夫 えーと,デルタ関数を含む式の積分だから, のところの値だけが残るわけだお.…あれ? list-minus-square-o li::before,. 08em solid eee;border-radius:. list-caret-square-o-right li::before,. menu-six li:nth-last-child 2 ,. やる夫 えーと,離散的になるんだったお.基本周波数の整数倍のスペクトルしか持たないんだったお.フーリエ級数のところで最初に出てきた話だお. やらない夫 その通り.じゃあ,時間領域で離散的な信号は? list-check-circle-o li::before,. list-arrow-circle-right li::before,. list-arrow-circle-o-right li::before,.。
list-times-circle-o li::before,. やらない夫 その通りだ.落ち着いて思い出してみて欲しいんだが,フーリエ級数ってまさにそうだったろ. やる夫 ああ,そういえば,時間の周期関数を飛び飛びの周波数成分に分解するのがフーリエ級数展開だったお.周波数領域で離散的になってるお. やらない夫 今回考えるのは,周波数領域だけじゃなく,時間領域・周波数領域の両方で離散的にするって点がフーリエ級数とは違うところだ. やる夫 ええと,そうすると…,時間領域でも周波数領域でも周期的になる…ってことかお? フーリエ変換演習 フーリエ変換演習 本ページの資料は私 金丸 が 2007年度〜2011 年度に工学院大学にて行った講議「数学演習III」のうち、フーリエ変換に関する内容の配布資料を公開したものです。
また、 9 は次のようにも書けます。
回 内容 解説 問題 解答 1 フーリエ変換を学ぶための準備 - 2 フーリエ級数展開の例 3 フーリエ級数展開の例2 4 複素フーリエ級数展開を学ぶための準備 5 複素フーリエ級数展開を学ぶための準備2 6 複素フーリエ級数展開 7 フーリエ変換を学ぶ準備 8 フーリエ変換の計算 9 フーリエ変換最終回 コメント 2017年6月28日記す フーリエ変換に関する演習です。
やらない夫 ああ.実はそれは正しい指摘だ.ただし,今まで考えてきたフーリエ変換だって 0 ~ を積分範囲に取っても全く問題ないってことに注意してくれ.単に慣習の問題でしかないと思っていい.離散フーリエ変換はどうしてもコンピュータで処理することを前提にして考えるからな.プログラムの中で配列とかを表すことを考えると, 0 ~ を範囲にするってのは,まあ妥当な慣習かなと思う.配列のインデックスに負の数を取れないプログラミング言語が多いからな. やる夫 ふーん,じゃ,まあそう思うことにしますお. やらない夫 というわけで,ほとんどゴールにたどり着いているんだが,最後に,慣例に従って定数倍のところを変えておこうと思う. となるような数列 を導入しよう. やる夫 また天下りですかお. やらない夫 まあ,そうなんだが,フーリエ変換対を定義するときにで定数倍の決め方が大して本質的でないのは,だ.こう決める理由も後でわかる. やる夫 ふーん,ま,いいお. やらない夫 ともかく,さっきの式の に代入する.その結果得られるのがこれだ. 10 やる夫 ああ,これも何度も出てきたような計算だお.クロネッカーのデルタが出るところは,えーと, のときと のときで場合分けして普通に計算すればいいんだお. やらない夫 離散フーリエ変換の定義式 の頭には定数倍がついていないのに注意してくれ.こうなるように,さっき と決めたんだと考えるといい. やる夫 離散フーリエ変換の式の方をきれいにするために,離散フーリエ逆変換の式にしわ寄せがいったわけだお.フーリエ変換とか離散時間フーリエ変換と同じだお. やらない夫 というわけで,離散フーリエ変換の対が式 と式 として無事定義できた.時間領域と周波数領域のどちらも離散的で,どちらも周期 で繰り返す.しかも値は無限大に飛ばない.コンピュータでは,どちらもサイズ の配列で表せるわけだ.• 積分・総和の範囲は,変換元の領域で非周期的な場合は全域,周期的な場合は 1 周期分だけ.• って,いやいや,全然ピンと来ませんお. やらない夫 まあそうかもな.具体的な数字を入れてみようか.普通,離散フーリエ変換を使うときは 256 とか 512 とか 1024 とか,そういう点数で計算することが多い. はそれぞれ 65536,262144,1048576 だ. やる夫 ざっと約6万,26万,100万ってとこだお. やらない夫 これが になると,それぞれ 2048,4608,10240 になる. やる夫 10 倍とか,下手したら 100 倍速くなるのかお….そりゃ使わない手はないお. やる夫 なんだかいろんな種類のフーリエ変換が出てきて混乱してきたお. やらない夫 そうだな,最初のフーリエ級数も1つと数えると全部で4種類出てきたことになる.ここらでまとめておこうか. 時間領域 周波数領域 離散性 周期性 離散性 周期性 連続 周期的 フーリエ級数展開 離散的 非周期的 連続 非周期的 フーリエ変換 連続 非周期的 離散的 非周期的 離散時間フーリエ変換 連続 周期的 離散的 周期的 離散フーリエ変換 離散的 周期的 やる夫 んー,余計ややこしいお. やらない夫 時間領域での信号の様子を分類すると,連続なのか離散的なのかの 2 通りのそれぞれについて,周期的なのか非周期的なのかの 2 通りがあって,都合 通りだ.そのすべての場合に対応しているわけだ. やる夫 あー,それで 4 種類なのかお. やらない夫 ことの復習だが,時間領域で周期的な信号は,周波数領域ではどうなるんだった? fab-exclamation-circle::before,. フーリエ余弦変換とフーリエ正弦変換 さて、ようやくフーリエ余弦変換とフーリエ正弦変換が求める素地ができました。
連続変数については積分,離散変数については総和する.• list-play-circle-o li::before,. 4 を 3 に代入すると次のようになります。
で に戻るんだ. やる夫 あ…,そうだったお.確かに は正規化周波数でいうと [rad] になるお. 0 と一緒で直流成分だお. やらない夫 が 0 から まで増える間に,正規化角周波数は 0 から まで変化するわけだが,その間で一番周波数が高いのはあくまで真ん中の のところだ. でいうと, が偶数なら がこれに対応する.これを過ぎると周波数は が増えるとともに低くなっていく. 15 やらない夫 さて,離散フーリエ変換がわかったので,コンピュータで信号の周波数分析ができるようになったわけだ.ただし,実際には,あの公式の通り計算しちゃいけない. やる夫 なんだお,またちゃぶ台返しかお. やらない夫 もっと効率のよい計算方法がある.高速フーリエ変換 Fast Fourier Transform; FFT と呼ばれている.離散フーリエ変換が必要なときは,常にこの計算方法を用いるべきだ. やる夫 じゃあそれを教えて欲しいお. やらない夫 そうしたいのはヤマヤマなんだが,時間がないので,パス. やる夫 えー,ひどいお. やらない夫 基本的なことはだいたいの信号処理の教科書には書いてあるはずなので,そちらを当たってほしい.そしてもう一つ,世の中に出回っている高速フーリエ変換のプログラムには,普通の教科書に書いてあることよりもう少し踏み込んだ高速化がなされているものも多い.だから実用上は,自分でプログラムを書こうと思わずに,ちゃんと世の中で実績のあるライブラリなり何なりを使うのが一番だ. やる夫 人のふんどしかお. やらない夫 時にはそういう割り切りも必要だ. やる夫 でも,高速って言うけど,実際のところどんだけ高速なんだお.そんな大した違いあるのかお. やらない夫 そうだな,その点だけは議論しておこうか.まず,離散フーリエ変換を公式通り計算するとどのくらいの演算が必要になる? フーリエ余弦変換の例題問題 ここで、フーリエ余弦変換の例題を解いてみようと思います。
から,式 によって元の が復元できる.この計算を離散フーリエ逆変換と呼ぶ. あるいは「 は の離散時間フーリエ逆変換である」という言い方もする• 興味を持たれた方は是非書籍もお試しください。