プレイ日記
Unknownimo SHUN-PECHI
要するに、フーリエ変換は、OWR+OWI、つまりa1+b1i(a+bi)をあーだこーだした結果を、IWR+IWI、つまりa2+b2i(a+bi)として返す、ということであっていますか? こんな補足、中2の学力じゃ深読みしないと読めないよ…
5そうだね
プレイ済み
返信[1]
親投稿
Hanzo rzsense
正確な数学的解説は、おちゃめさんやMIKIさんあたりにお任せするとして、まずはフーリエ変換って何?と言うところを、独断と偏見に基づいて大雑把に解説しましょう。 高速道路を定点カメラで1時間撮影・録画したとしましょう。この録画を再生して、時速80km~90kmで走る車は○○台、時速90km~100kmで走る車は○○台、時速150km~160kmで走る車は○○台、というふうに、速度ごとに車の数を数えて記録することを想像してみてください。 そうすると、車の速度と車の台数の関係を表すデータが得られます。元々のデータは録画データ、つまり経過時間と車の台数の関係を表すデータだったのが、上記の操作により、時間の軸が速度の軸に変換されたことになります。実はこの、時間→速度変換が、フーリエ変換の本質なのです。
0そうだね
プレイ済み
返信[2]
親投稿
Hanzo rzsense
本物のフーリエ変換は「時間→速度」ではなく「時間→周波数」の変換になります。周波数とは、1秒間に振動する数のことで、音(=空気の振動)で言うなら、周波数が大きいほど高く、小さいほど低い音を表します。 さて、自然界の全ての音は、いろいろな周波数の音が混じり合ってできています。どの周波数の音がどのくらい含まれているのか、と言うことが、録音データをフーリエ変換(時間→周波数変換)することで明らかになります。 秋の夜長を鳴きとおす虫の声は、非常に高い周波数の音(1秒間に千回~1万回くらいの音の振動)が含まれますが、一方、一般の電話回線は、1秒間に高々数100回の振動の音しか伝送できず、従って電話で虫の声を聴くことが不可能なのが、ここから分かるのです。
1そうだね
プレイ済み
返信[3]
親投稿
Hanzo rzsense
ちなみに、フーリエ変換前がIWR, IWI、変換後がOWR, OWIです。 ここで、なぜOWR, OWIと2つの配列が必要なのか、不思議に思いますよね? 実は、全ての音(波動現象)の基本となる波には「正弦波」と「余弦波」の2種類があります。余弦波とは、正弦波の双子の兄弟のようなものですが、性格が正弦波よりも90度ズレた、困ったヤツです。ただし、自然界の全ての音を表すためには、このズレが不可欠です。現実世界で、多少トンガったヤツがいる方がうまく行くのと同じです。 話が脱線致しまして恐縮です。正弦波の含有量を表すのがOWR、余弦波の含有量を表すのがOWIと言うわけです。
0そうだね
プレイ済み
返信[4]
親投稿
Unknownimo SHUN-PECHI
Hanzoさん» 長文に渡るご説明、誠に有難うございます。 なるほど。フーリエ変換とは「音」に含まれる要素、つまり「周波数」を取り出す、ということですね。 ここで質問をさせて頂きたいのですが、実数の配列が正弦波、虚数の配列が余弦波ということですか?
0そうだね
プレイ済み
返信[5]
親投稿
Unknownimo SHUN-PECHI
失礼いたしました。 質問文の事はご教授頂いたのでした。 申し訳御座いませんでした。
0そうだね
プレイ済み
返信[6]
親投稿
Hanzo rzsense
長文恐縮です。 もしかもしたら、正弦波と余弦波を逆に説明しているかも知れません。もしそうだとしたらすみません、が、恐らく大勢に影響はありませんのでご安心ください。 実数、虚数と言われても、中学校では未だ習っていないのだから、困ってしまいますよね。今のうちは、実数はx軸、虚数はy軸で、平面上の座標を表す、くらいに覚えておけば十分です。 虚数単位iと言うものが出てきますが、iとiを掛けると、何とマイナス1になります。そんな数は現実にはあり得ず、だからこそ「虚数」と呼ぶのです。そんな非現実的な数字を何で使うのか?とお思いでしょうが、このありがたみは、もう少し勉強すると、わかるようになりますよ。
0そうだね
プレイ済み
返信[7]
親投稿
Unknownimo SHUN-PECHI
大丈夫です。塾で習っておりますから。 ところで、虚数の配列とはどのような配列ですか?
0そうだね
プレイ済み
返信[8]
親投稿
Hanzo rzsense
何と!今時の塾は、そこまで教えるんですか! すごいなー さて、フーリエ変換で扱う数は「複素数」と呼ばれるものです。 複素数は a+bi のように、2つの項から成り、aを「実数部」、bi(bに虚数単位iを掛けたもの)を「虚数部」と呼びます。 複素数が10個ある場合、a[0]+b[0]*i, a[1]+b[1]*i, ・・・ ,a[9]+b[9]*i のように、実数部と虚数部の係数をそれぞれ配列で表すことができます。 要するに、複素数の配列は「実数部の係数の配列」と「虚数部の係数の配列」で表すことができると言うことです。 IWR, OWRはa、IWI, OWIはb、と言うわけです。
2そうだね
プレイ済み
返信[9]
親投稿
MIKI ifconfig
> フーリエ変換は、OWR+OWIをあーだこーだした結果を、IWR+IWIとして返す、 合ってます! ただし O と I が逆。O は output (出力) で、I は input(入力)の頭文字です。 フーリエ変換した結果の OWR+OWI をフーリエ逆変換すると 元の IWR+IWI に戻るってとこもポイント。 数学的に正確に理解するのは大学行ってからで十分で、今はただの道具として使えればいいでしょう。 Hanzoさんの説明でいいけど、余弦波が実数成分ですね。 参考: オイラーの公式(これは絶対覚えるべし(丸暗記でも役に立つ)) e^(iθ)=cosθ+i*sinθ 余弦とか名づけられて dis られてるけど、どっちかというと cos の方が主役です。 90度ずれてるのは「直交してる」ってことで、これも重要なキーワード。
2そうだね
プレイ済み
返信[10]
親投稿
MIKI ifconfig
音楽プレイヤーで、音にあわせて山が出たりへこんだりするするグラフがあるでしょう? あれが音の周波数成分です。(左が低い音、右が高い音) 低音をブーストしたければ、音を fft して、低周波成分の大きさを増やしてやって、ifft して音に戻してやればいいわけです。 高周波領域も大きくすれば立派なドンシャリの出来上がり!! 画像も二次元の波と考えることができて、それに対して二次元の fft/ifft というのが定義できます。 画像に対して高い周波数を取り除くと、「ぼかし」になる。 低い周波数を取り除くと、輪郭抽出になる。
1そうだね
プレイ済み
返信[11]
親投稿
Unknownimo SHUN-PECHI
誠に有難う御座います。 完璧過ぎて最早有難う御座いますしか言えません…。 少し使って見ることにします。
0そうだね
プレイ済み