作者maokejackson (百年難得發表文章)
看板PCCU-CS
標題[其它] 影像處理... 作業6
時間Wed May 16 22:29:41 2007
話說作業6,就是實作fft2的功能,
下禮拜一之前要交...
但是,
課本上的公式是錯的!
請翻開課本146頁,式子7.2
F_u =
1/N Sigma^(N-1)_(x=0) exp[-2πixu/N] f_x
那個 1/N 是不存在的
同理,147頁
F_(m,n) =
1/N exp[-2πixu/N]
F_(m,n) =
1/N ω^(mn)
148頁
┌ 1 1 … 1 ┐
│ 1 ω^1 … ω^(N-1) │
│ 1 ω^2 … ω^2(N-1) │
F =
1/N │ 1 ω^3 … ω^3(N-1) │
│ 1 ω^4 … ω^4(N-1) │
│ │
└ 1 ω^(N-1) … ω^(N-1)^2 ┘
┌ 1 1 1 1 ┐┌ 1 ┐ ┌ 10 ┐
F =
1/4 │ 1 -i -1 i ││ 2 │=
1/4 │ -2+2i │
│ 1 -1 1 -1 ││ 3 │ │ -2 │
└ 1 i -1 -i ┘└ 4 ┘ └ -2-2i ┘
以上標示黃色的都應該去掉
還有148頁,式子7.3
x_u =
1/N Sigma^(N-1)_(x=0) exp[2πixu/N] F_u
紅色的字是漏掉的
======== 提示分割線 ======== 提示分割線 ======== 提示分割線 ========
把7.3.1節看懂,從147頁開始跟著做
f是要進行dft的一維向量
ω = exp[-2πi/N]
π是常數,i是虛數,N是向量f的長度
三個值知道了,可以求ω
然後想辦法產生148頁上面那個矩陣,把ω代入得F矩陣
最後 F * f 就是一維DFT的解
ps1 向量f可以是行向量或列向量,要自行判斷用不同方式處理
ps2 把程式弄成function,待會做二維時可以呼叫
二維比起一維程式寫起來更簡單了,只需要兩個迴圈就可以打發
課本156頁,式子7.4
公式看起來很複雜,再看看157頁7.5.1節下面的separability
該式子其實可以分兩次來做,看158頁的圖7.6比較容易理解
一個二維的矩陣可以看成是由很多個一維的列向量或行向量組成
第一個迴圈處理列向量,用一維的方式處理
會得到跟原矩陣一樣大小的矩陣
再用第二個迴圈處理這個矩陣,不過換成行向量
處理好之後得到的矩陣就是經過二維fourier轉換的結果
==
結語:
我不知道老師有沒有要我們做附錄B的fft
有人做出來可以分享一下做法嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.89.82
推 hairless:糟了~我連作業一都還沒交~請lingpx大神把答案放上來吧XD꜠ 05/17 01:34
→ lingpxs:我沒寫作業耶~~ 我只是跟鄉民來看熱鬧的@@ 05/17 15:41
推 hairless:對吼...都忘了你已經畢業了...但是來旁聽還是要小心.. 06/03 12:25