作者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
1F:推 hairless:糟了~我连作业一都还没交~请lingpx大神把答案放上来吧XD꜠ 05/17 01:34
2F:→ lingpxs:我没写作业耶~~ 我只是跟乡民来看热闹的@@ 05/17 15:41
3F:推 hairless:对吼...都忘了你已经毕业了...但是来旁听还是要小心.. 06/03 12:25