デジタルメディア処理2
担当: 井尻 敬
Contents
•
フーリエ変換の概要
•
フーリエ級数展開とフーリエ変換
•
離散フーリエ変換とその性質
•
周波数フィルタリング
フーリエ変換とは(⾳)
•
横軸が時間の関数を、横軸が周波数の関数に変換する⼿法
フーリエ変換 逆フーリエ変換 ⼊⼒⾳声 周波数 時間 周波数 低周波 ⾼周波 ⾼周波 FourierSound.py 注) グラフ横軸は係数番号(Hzではない) グラフ縦軸は係数の実部 注) グラフ縦軸は⾳圧フーリエ変換とは(⾳)
• フーリエ変換後の関数は元信号に含まれ る正弦波の量を⽰す • 中央に近いほど低周波,外ほどが⾼周波 • 中央(最も低周波)は,定数項で直流成 分と呼ばれる • 直流成分があるので正弦波の組み合わせでも 平均値が0でない信号を作れる FourierSound.py 周波数(係数番号) 時間 時間 時間 時間 ※下の波はイメージ ※本来はもっともっと細かいです。⾳の実時間フーリエ変換
Spector Analyzer
by Hidetomo Kataoka @ ⽴命館⼤ データ量に依存するが1D/2D のフーリエ変換は⾼速なので 実時間解析可能フーリエ変換とは (画像)
•
横軸が時間/空間の関数を、横軸が周波数の関数に変換する⼿法
フーリエ変換 逆フーリエ変換 画像 (2D空間に画素が並ぶ) (画素は特定周波数の⼤きさを⽰す)周波数画像フーリエ変換とは (画像)
フーリエ 変換 • フーリエ変換後の画像の画素は元信号 に含まれる正弦波の量を⽰す • 中央付近が低周波,外側が⾼周波 • 中央画素は,定数項(直流成分) この図はイメージです 本来は現画像と同サイズで もっと細かいです 任意の画像はしましま画像の和で表現できる
フーリエ変換とは (画像)
FourierPaint.py
FourierImg.py
余談 (ノイズ)
ノイズ(雑⾳)には,それが含む周波数の分布に応じて特
定の名前が付いたものがある
ホワイトノイズ スペクトルが⼀様に分布 スペクトル分布が 1/fに⽐例ピンクノイズ スペクトル分布が 1/fブラウンノイズ2に⽐例周波数フィルタリング(⾳)
⼊⼒信号(⾳) フーリエ変換 周波数係数 フィルタ処理 ⾼周波成分を完全にゼロに ゼロ 出⼒信号 逆フーリエ変換 フーリエ変換により周波数を 考慮したfilterが設計できる 1. フーリエ変換し 2. 周波数空間でフィルタを掛け 3. 逆フーリエ変換 FourieSound.py ゼロ周波数フィルタリング(⾳)
イコライザ
周波数ごとにボリュームを調整する⾳質調整器
1. ⾳源をフーリエ変換し 2. 周波数ごとにフィルタを掛け 3. 逆フーリエ変換 Itunesのイコライザ周波数フィルタリング(画像)
フーリエ 変換 フィルタ処理 フィルタ画像を掛ける×
逆フーリエ変換 説明のためLowpassの 半径を⼤きく可視化 本当はもっと⼩さい フィルタ周波数フィルタリング(画像)
Low Pass 低周波成分 のみ通過 High Pass ⾼周波成分 のみ通過 Band Pass 特定周波成分 のみ通過 ⼊⼒画像 周波数画像 フィルタ フィルタ処理済 出⼒画像 周波数画像 逆 フーリエ 逆 フーリエ 逆 フーリエまとめ:⾳・画像のフーリエ変換の概要
•
フーリエ変換は,横軸時間の関数を横軸周波数の関数に変換する
• 逆フーリエ変換も定義される • 2次元フーリエ変換は画像へ適⽤できる • 周波数空間でフィルタ処理すると,周波数に特化した信号処理が可能Contents
•
フーリエ変換の概要
•
フーリエ級数展開とフーリエ変換
•
離散フーリエ変換とその性質
•
周波数フィルタリング
本講義では,フーリエ変換の意味的な理解と画像処理応⽤に重点を置きます. 証明と導出は(少しだけしか)扱いません. 詳しく知りたい⼈は「⾦⾕先⽣:これなら分かる応⽤数学教室」を強くお勧めします.オイラーの式
はガウス平⾯における単位円に乗る これはもうこういう表記法だと思って覚えてください練習 三⾓関数を合成せよ • sin cos 複素数の積を求めよ • c sin ∗ c sin 以下の関係を証明せよ • • • cos • sin
フーリエ級数
区間 , 上の連続関数 は、 フーリエ級数で表現できる. 2 cos sin 2 cos 2 sin : 基本周波数 2 2フーリエ級数
区間 , 上の連続関数 は、 フーリエ級数で表現できる. cos 1 sin 1 cos 2 sin 2 cos 3 sin 3 ⋯ 2 2 基本周波数 2 cos 1 sin 1 cos 2 sin 2 cos 3 sin 3フーリエ級数
区間 , 上の連続関数 は、 フーリエ級数で表現できる. sin 1 sin 2 sin 3 ⋯ 2 2 「sin と cos の振幅を変えて⾜す」とも思えるが、 「akと bkで振幅と位相ずれを制御する」とも⾒てもよい 位相がずれても、 と における位置は同じなので、周期性は保たれていることに注意フーリエ級数
(
複素数表記
)
区間 , 上の連続関数 は、 フーリエ級数で表現できる. 1 2 2 この複素数表記された 正弦波を重ね合わせていることは分かるんだけど、 cos , sin に⽐べてイメージしにくいフーリエ級数(複素数表記)
cos
sin
この正弦波は何なのか?
⻘が時間軸
⾚が実軸
緑が虚軸
https://www.youtube.com/watch?v=YjEkBjDhbr4フーリエ級数
(複素数表記)
区間 , 上の連続関数 は、 フーリエ級数で表現できる. ⋯複素数の掛け算
は
cos
sin
とすると、
となる
つまり, を掛けるというのは、
に対し位相を ずらしてr 倍する
操作だといえる
フーリエ級数
(複素数表記)
区間 , 上の連続関数 は、 フーリエ級数で表現できる. ⋯ 動画の後半参照 or FourieViz.pdeをprocessingで実⾏してみてください。, , cos , sin
まとめ: フーリエ級数展開
•
オイラーの式
cos
sin
•
フーリエ級数展開 : 周期Tを持つ関数は正弦波の重ね合せで表現可
∑ cos sin , cos , sin
•
フーリエ級数展開 (複素数表現) :
上式にオイラーの式を代⼊すると以下のように変形できる ∑ , ※今回は導出と証明を省きました 詳しく知りたい⼈は教科書参照 練習: 下の式(1)-(3)より,式(4)(5)を導け 2 cos sin … 1 cos … 2 sin … 3 … 4 1 … 5 ⾦⾕先⽣:これなら分かる応⽤数学教室の3.3章を参照のことフーリエ変換とは
• 時間 の関数 を、周波数 の関数 に変換する • と は複素数関数である( は実数関数のことが多い) • フーリエ級数展開において T → ∞ とすると導出できるフーリエ変換 :
逆フーリエ変換 :
フーリエ変換には,少し異なる複数の定義が存在する
フーリエ変換 :
逆フーリエ変換 :
フーリエ変換 :
逆フーリエ変換 :
フーリエ変換 :
逆フーリエ変換 :
フーリエ変換の導出は,『⾦⾕健⼀先⽣これなら分かる応⽤数学教室』の3.4章を参照
Contents
•
フーリエ変換の概要
•
フーリエ級数展開とフーリエ変換
•
離散フーリエ変換
•
周波数フィルタリング
離散フーリエ変換(1D)
• 周期Nの離散値 を周期Nの離散値 に変換する • と は複素数(ただし は実数列のことが多い) • が実数の場合 が成り⽴つ( )1
フーリエ 変換 逆フーリエ変換 0 1 2 N‐1 … … 0 1 2 N‐1 … … • は定数(直流成分)に対応 • は[0,N-1] 区間においてN回振動する正弦波に対応 • K=N/2がもっとも⾼周波で,k=N-1はk=1の正弦波と同じ周波数(位相は逆) 0 1 2 N‐1 0 1 2 N‐1…
※グラフは全て複素数離散フーリエ変換(2D)
フーリエ変換 : 逆フーリエ変換 : 1H
W
縦横⽅向に周期H/Wで繰り返す 離散値 を,離散値 に変換 と は複素数列( は画像-実数列-のことが多い)vW
H
• , は定数(直流成分)の係数 • , は,画像区間において『縦にu回・横に v回振動する正弦波画像』の係数 • U=v=N/2がもっとも⾼周波で,u=N-1は u=1の正弦波と同じ周波数(位相は逆) W H 32のときの 2 2 0 1 2 16 30 31 0 1 2 16 30 31係数画像
,は上の (u,v)番⽬の画像の係数 実際は ,は複素数画像離散フーリエ変換の計算例
N = 8 のとき
⼊⼒ : f
0, f
1, f
2, f
3, f
4, f
5, f
6, f
7,
1 ↑複素数とかでできて ややこしそうだけど ただの和分 1 8 cos 2 0sin2 0 cos2 0 sin2 0 ⋯ cos2 0 sin2 0 1
8 cos 2 0
sin2 0 cos2 1 sin2 1 ⋯ cos2 7 sin2 7 1
8 cos 2 0
sin2 0 cos2 2 sin2 2 ⋯ cos2 14 sin2 14 1
8 cos 2 0
sin2 0 cos2 3 sin2 3 ⋯ cos2 21 sin2 21