二维离散傅里叶变换最详手算
文章目录
- 前置知识
- 1. 1 复数
- 1.2 e的美妙
- 1. 2 欧拉公式
- 一 定义
- 二 例题
- 2.1 定义展开法
- 2.2 矩阵累成法
- 2.3 逆傅里叶变换法
- 2.4 总结
- 三 参考文章
前置知识
1. 1 复数
定义(符号表示):
a + bi (这里a,b是实数,i是虚数单位,a叫做复数的实部,b叫做复数的虚部。可以认为实数a等价于复数a+0i)
几何(复平面):
水平的实轴与垂直的虚轴建立起来的复数的几何表示
其他理解:
对于方程 x^2 = 1*x*x = -1 我们可以把*x看作是一种变换,经过两次变换,1变成了-1 如果我们把这种变换看成是“逆时针旋转90%”,就能够实现1变为-1也就是说我们可以把 *i 看作是逆时针旋转90%
如图
复平面上一个点乘以(-1+7i)的几何意义:
模长增加\srqt(50),方向逆时针旋转arctan(7/-1) = 98.17°
两个复数相乘的结果就是:让它们的模长相乘得到最终的模长,让它们的幅角相加得到最终的幅角
参考文章:https://zhuanlan.zhihu.com/p/48392273
1.2 e的美妙
e = 2.718281828459…
指数增长模型
假设你有1元钱存在银行里,银行的利率为100%,若银行一年付一次利息,一年后你可以拿到1元本金+1元利息共两元
假设银行利率不变但利息改为半年一付,那么在半年时候把0.5的利息再次存入银行(复利),一年后能拿到1元本金+1+0.25共2.25元
假设利率还是不是但利息改为四月一付,拿到利息后进行复利,那么一年后能拿到2.37元
计算公式 // r为增长率,x为增长周期,Q为初始值的Q倍
Q=(1+r)xQ = (1+r)^x Q=(1+r)x
复利模型
假设利息连续不断的付,进行连续复利,那么利润的这个天花板就是e!如下图
高等数学的重要极限
e=limn→∞(1+1n)ne = \lim_{n \rightarrow ∞}(1+\frac{1}{n})^n e=n→∞lim(1+n1)n
参考文章:https://zhuanlan.zhihu.com/p/48391055
1. 2 欧拉公式
定义:
eix=cosx+isinxe^{ix} = \cos x + i \sin x eix=cosx+isinx
欧拉恒等式x=Π:
eiπ=−1,eiπ+1=0e^{i\pi} = -1 ,\quad e^{i\pi}+1 =0 eiπ=−1,eiπ+1=0
推导:
采用复数cos(x)+i*sin(x)可以描述单位圆周上的点的位置或运动轨迹
自然底数e的定义式
e=limn→∞(1+1n)n=limn→∞(1+100%n)ne = \lim_{n \rightarrow ∞}{(1 + \frac{1}{n})^n}=\lim_{n \rightarrow ∞}{(1 + \frac{100\%}{n})^n} e=n→∞lim(1+n1)n=n→∞lim(1+n100%)n
当增长率为虚数时候
ei=limn→∞(1+100%∗in)n=1∗limn→∞(1+100%∗in)ne^i = \lim_{n \rightarrow ∞}{(1 + \frac{100\%*i}{n})^n} = 1*\lim_{n \rightarrow ∞}{(1 + \frac{100\%*i}{n})^n} ei=n→∞lim(1+n100%∗i)n=1∗n→∞lim(1+n100%∗i)n
我们可以把上式拆分,看作是1进行了n次的变换,每一次的变换的模长增量都是1,角度增量都是1/n。
每一次的旋转如图
即最终转动的弧度为1。由此可得
ei=1∗limn→∞(1+100%∗in)n=cos1+i∗sin1e^i = 1*\lim_{n \rightarrow ∞}{(1 + \frac{100\%*i}{n})^n} = \cos 1 + i*\sin 1 ei=1∗n→∞lim(1+n100%∗i)n=cos1+i∗sin1
更一般地对于e^(ix)
即最终旋转的弧度为x。由此可得
eix=1∗limn→∞(1+100%∗ixn)n=cosx+i∗sinxe^{ix} = 1*\lim_{n \rightarrow ∞}{(1 + \frac{100\%*ix}{n})^n} = \cos x + i*\sin x eix=1∗n→∞lim(1+n100%∗ix)n=cosx+i∗sinx
证毕。
其他等式
sinx=eix−e−ix2icosx=eix+e−ix2\sin x = \frac{e^{ix}-e^{-ix}}{2i} \\ \cos x = \frac{e^{ix}+e^{-ix}}{2} sinx=2ieix−e−ixcosx=2eix+e−ix
参考文章:https://zhuanlan.zhihu.com/p/48392958
一 定义
二 例题
2.1 定义展开法
题目
f(x,y)=cos(π4x),x=[0,511],计算其二维离散傅里叶变换F(u,v)f(x,y) = \cos (\frac{\pi}{4}x),x=[0,511],计算其二维离散傅里叶变换F(u,v) f(x,y)=cos(4πx),x=[0,511],计算其二维离散傅里叶变换F(u,v)
解:
根据欧拉公式有f=eiπ4x+e−iπ4x2,设M=N=512F(u,v)=∑x=0M−1∑y=0N−1f(x,y)e−j2π(umx+vNy)=12∑x=0M−1∑y=0N−1(ejπ4x+e−jπ4x)∗e−j2π(umx+vNy)=12∑x=0M−1∑y=0N−1(ej(π4x−2πuMx−2πvNy)+e−j(π4x+2πuMx+2πvNy))=12∑x=0M−1∑y=0N−1(ej2π512[(64−u)x−vy]+e−j2π512[(64+u)x+vy])=12∑x=0M−1∑y=0N−1(cos2π512[(64−u)x−vy]+jsinπv512[(64+u)x+vy]+cos2π512[(64+u)x+vy]+−(j)sinπv512[(64+u)x+vy])=12MNδ(u−64,v−0)+12MNδ(u+64,v−0)\begin{aligned} &根据欧拉公式有f = \frac{e^{i\frac{\pi}{4}x}+e^{-i\frac{\pi}{4}x}}{2} ,设M=N=512\\ & F(u,v) = \sum^{M-1}_{x=0} \sum^{N-1}_{y=0}f(x,y)e^{-j2\pi(\frac{u}{m}x+\frac{v}{N}y)} \\ & = \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0}(e^{j\frac{\pi}{4}x}+e^{-j\frac{\pi}{4}x}) *e^{-j2\pi(\frac{u}{m}x+\frac{v}{N}y)}\\ & = \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0}\bigg (e^{j(\frac{\pi}{4}x-\frac{2\pi u}{M}x-\frac{2\pi v }{N}y)}+ e^{-j(\frac{\pi}{4}x+\frac{2\pi u}{M}x+\frac{2\pi v }{N}y)} \bigg) \\ & = \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0}\bigg( e^{j\frac{2\pi}{512}[(64-u)x-vy]}+e^{-j\frac{2\pi}{512}[(64+u)x+vy]} \bigg) \\ & = \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0} \bigg( \cos\frac{2\pi}{512}[(64-u)x-vy]+j\sin{\frac{\pi v}{512}[(64+u)x+vy]} + \cos\frac{2\pi}{512}[(64+u)x+vy]+-(j)\sin{\frac{\pi v}{512}[(64+u)x+vy]} \bigg) \\ & = \frac{1}{2}MN \delta (u-64,v-0)+\frac{1}{2}MN \delta (u+64,v-0) \\ \end{aligned} 根据欧拉公式有f=2ei4πx+e−i4πx,设M=N=512F(u,v)=x=0∑M−1y=0∑N−1f(x,y)e−j2π(mux+Nvy)=21x=0∑M−1y=0∑N−1(ej4πx+e−j4πx)∗e−j2π(mux+Nvy)=21x=0∑M−1y=0∑N−1(ej(4πx−M2πux−N2πvy)+e−j(4πx+M2πux+N2πvy))=21x=0∑M−1y=0∑N−1(ej5122π[(64−u)x−vy]+e−j5122π[(64+u)x+vy])=21x=0∑M−1y=0∑N−1(cos5122π[(64−u)x−vy]+jsin512πv[(64+u)x+vy]+cos5122π[(64+u)x+vy]+−(j)sin512πv[(64+u)x+vy])=21MNδ(u−64,v−0)+21MNδ(u+64,v−0)
最后一步的化简过程如下
当u=64,v=0时候12∑x=0M−1∑y=0N−1(cos0+cosπ2)=12MN当u≠64,v≠0,例如u=63,v=1时候12∑x=0M−1∑y=0N−1(cos2π512(x−y)+jsin2π512(x−y))=12∑x=0M−1∑y=0N−1cos2π512(x−y)+12∑x=0M−1∑y=0N−1sin2π512(x−y)(x固定,展开y)=12∑x=0M−1(cos2π512(x−0)+cos2π512(x−1)+...+cos2π512(x−511))+12j∑x=0M−1(sin2π512(x−0)+sin2π512(x−1)+...+sin2π512(x−511))=12∑x=0M−1∗0+12j∑x=0M−1∗0=0(想象一下一个圆(2π))分割成了512份并且求和512(M)份,根据对称性可以知道和为0\begin{aligned} & 当u=64,v=0时候 \\ & \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0}(\cos0 + \cos\frac{\pi}{2}) = \frac{1}{2}MN \\ & 当u\neq64,v\neq0,例如u=63,v=1时候 & \\ & \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0}\bigg( \cos{\frac{2\pi}{512}(x-y)+j\sin{\frac{2\pi}{512}(x-y)}} \bigg) \\ & = \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0}\cos{\frac{2\pi}{512}(x-y) } + \frac{1}{2}\sum^{M-1}_{x=0} \sum^{N-1}_{y=0}\sin{\frac{2\pi}{512}(x-y) } \quad (x固定,展开y)\\ & = \frac{1}{2}\sum^{M-1}_{x=0}\bigg( \cos{\frac{2\pi}{512}(x-0)}+\cos{\frac{2\pi}{512}(x-1)+...+\cos{\frac{2\pi}{512}(x-511)}} \bigg) + \frac{1}{2}j\sum^{M-1}_{x=0}\bigg( \sin{\frac{2\pi}{512}(x-0)}+\sin{\frac{2\pi}{512}(x-1)+...+\sin{\frac{2\pi}{512}(x-511)}} \bigg) \\ & = \frac{1}{2}\sum^{M-1}_{x=0}*0+\frac{1}{2}j\sum^{M-1}_{x=0}*0 = 0 \quad (想象一下一个圆(2\pi))分割成了512份并且求和512(M)份,根据对称性可以知道和为0 \end{aligned} 当u=64,v=0时候21x=0∑M−1y=0∑N−1(cos0+cos2π)=21MN当u=64,v=0,例如u=63,v=1时候21x=0∑M−1y=0∑N−1(cos5122π(x−y)+jsin5122π(x−y))=21x=0∑M−1y=0∑N−1cos5122π(x−y)+21x=0∑M−1y=0∑N−1sin5122π(x−y)(x固定,展开y)=21x=0∑M−1(cos5122π(x−0)+cos5122π(x−1)+...+cos5122π(x−511))+21jx=0∑M−1(sin5122π(x−0)+sin5122π(x−1)+...+sin5122π(x−511))=21x=0∑M−1∗0+21jx=0∑M−1∗0=0(想象一下一个圆(2π))分割成了512份并且求和512(M)份,根据对称性可以知道和为0
由此可得
F(u,v)={MN2u=64,v=0MN2u=−64,v=00u,v=其他F(u,v)=\left\{ \begin{aligned} & \frac{MN}{2} \quad u=64,v=0 \\ & \frac{MN}{2} \quad u=-64,v=0 \\ & 0\quad u,v=其他 \end{aligned} \right. F(u,v)=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧2MNu=64,v=02MNu=−64,v=00u,v=其他
验证(matlab中需要进行坐标转换)
使用matlab验证结果
>> x = 0:511;
>> [Y, X] = meshgrid(x,x);
>> f1 = cos(pi/4*X);
>> F1 = fft2(f1);
>> F1c = fftshift(F1);
>> [r1,c1] = find(abs(F1c)>0.1);
>> r1r1 =193321>> c1c1 =257257
F1c(193,247)
imshow(abs(F1c))
结论:可以发现,131072约等于1.3107e+05。出现误差的原因可能是matlab计算过程中精度损失
另外一种计算方法
2.2 矩阵累成法
题目:
f(x,y)=(−1)x+y,0≤x,y≤2,计算f(x,y)的DFTF(u,v),0≤u,v≤2.f(x,y) = (-1)^{x+y},0\le x,y\le 2,计算f(x,y)的DFT \ F(u,v), 0\le u, v\le 2. f(x,y)=(−1)x+y,0≤x,y≤2,计算f(x,y)的DFT F(u,v),0≤u,v≤2.
解:
设:M=N=2+1=3根据题目要求应该求9个Fourier系数F(u,v)=∑x=02∑y=02(−1)x+ye−j(2πu3x+2πv3y)(u=0,1,2;v=0,1,2)设w=e−j2π3则w2=e−j4π3=e−j(2π−2π3)=ej2π3=w‾,w4=w‾2=w,ww‾=e0=1其中f=[f(0,0)f(0,1)f(0,2)f(1,0)f(1,1)f(1,2)f(2,0)f(2,1)f(2,2)]=[1−11−11−11−11]有F=[F(0,0)F(0,1)F(0,2)F(1,0)F(1,1)F(1,2)F(2,0)F(2,1)F(2,2)]=[1111ww21w2w4][1−11−11−11−11][1111ww21w2w4]=[11−w+w‾1+w−w‾1−w+w‾1−w+2w‾3−w−w‾1+w−w‾3−w−w‾2−1+3w−w‾]若仅计算某个F(u,v),则可以直接按照公式进行展开,例如F(1,2)=∑x=02∑y=02(−1)x+ye−j(2π∗13x+2π∗23y)=f(0,0)+f(0,1)e−j2π∗23∗1+f(0,2)e−j2π∗23∗2+f(1,0)e−j2π3+f(1,1)e−j2π3e−j2π∗23+f(1,2)e−j2π3e−j2π∗23∗2+f(2,0)e−j2π3∗2+f(2,1)e−j2π3∗2e−j2π∗23+f(2,2)e−j2π3∗2e−j2π∗23∗2=1−w′+w−w+ww′−w2+w′−w′2+ww′=3−w′−w=4\begin{aligned} &设:M = N = 2+1 = 3 \\ &根据题目要求应该求9个Fourier系数 \\ &F(u,v) = \sum^2_{x=0} \sum^2_{y=0}(-1)^{x+y}e^{-{j}(\frac{2\pi u}{3}x+\frac{2\pi v}{3}y)} (u=0,1,2;v=0,1,2) \\ &设\ w=e^{-j\frac{2\pi}{3}}则w^2=e^{-j\frac{4\pi}{3}}=e^{-j(2\pi-\frac{2\pi}{3})}=e^{j\frac{2\pi}{3}}= \overline w,w^4=\overline w^2=w,w\overline w = e^0 = 1 \\ &其中\quad f = \begin{bmatrix} f(0,0)&f(0,1)&f(0,2)\\f(1,0)&f(1,1)&f(1,2)\\ f(2,0)&f(2,1)&f(2,2) \end{bmatrix} = \begin{bmatrix} 1&-1&1\\ -1&1&-1\\ 1&-1&1 \end{bmatrix} \quad \\ & 有 F = \begin{bmatrix} F(0,0)&F(0,1)&F(0,2)\\F(1,0)&F(1,1)&F(1,2)\\ F(2,0)&F(2,1)&F(2,2) \end{bmatrix} = \begin{bmatrix} 1&1&1\\ 1&w&w^2\\ 1&w^2&w^4 \end{bmatrix} \begin{bmatrix} 1&-1&1\\ -1&1&-1\\ 1&-1&1 \end{bmatrix} \begin{bmatrix} 1&1&1\\ 1&w&w^2\\ 1&w^2&w^4 \end{bmatrix} \\ & \quad \quad \quad \quad =\begin{bmatrix} 1&1-w+\overline w&1+w-\overline w\\ 1-w+\overline w &1-w+2\overline w&3-w-\overline w\\ 1+w-\overline w &3-w-\overline w^2 &-1+3w-\overline w \end{bmatrix} \\ &若仅计算某个F(u,v),则可以直接按照公式进行展开,例如 \\ & F(1,2) = \sum^2_{x=0} \sum^2_{y=0}(-1)^{x+y}e^{-{j}(\frac{2\pi *1}{3}x+\frac{2\pi *2}{3}y)} \\ &=f(0,0)+f(0,1)e^{-j\frac{2\pi*2}{3}*1}+f(0,2)e^{-j\frac{2\pi *2}{3}*2}\\ &\quad +f(1,0)e^{-j\frac{2\pi}{3}}+f(1,1)e^{-j\frac{2\pi}{3}}e^{-j\frac{2\pi *2}{3}}+f(1,2)e^{-j\frac{2\pi}{3}}e^{-j\frac{2\pi *2}{3}*2} \\ & \quad + f(2,0)e^{-j\frac{2\pi}{3}*2} + f(2,1)e^{-j\frac{2\pi}{3}*2}e^{-j\frac{2\pi *2}{3}} + f(2,2)e^{-j\frac{2\pi}{3}*2}e^{-j\frac{2\pi *2}{3}*2} \\ &= 1-w'+w-w+ww'-w^2+w'-w'^2+ww' = 3-w'-w = 4 \end{aligned} 设:M=N=2+1=3根据题目要求应该求9个Fourier系数F(u,v)=x=0∑2y=0∑2(−1)x+ye−j(32πux+32πvy)(u=0,1,2;v=0,1,2)设 w=e−j32π则w2=e−j34π=e−j(2π−32π)=ej32π=w,w4=w2=w,ww=e0=1其中f=⎣⎡f(0,0)f(1,0)f(2,0)f(0,1)f(1,1)f(2,1)f(0,2)f(1,2)f(2,2)⎦⎤=⎣⎡1−11−11−11−11⎦⎤有F=⎣⎡F(0,0)F(1,0)F(2,0)F(0,1)F(1,1)F(2,1)F(0,2)F(1,2)F(2,2)⎦⎤=⎣⎡1111ww21w2w4⎦⎤⎣⎡1−11−11−11−11⎦⎤⎣⎡1111ww21w2w4⎦⎤=⎣⎡11−w+w1+w−w1−w+w1−w+2w3−w−w21+w−w3−w−w−1+3w−w⎦⎤若仅计算某个F(u,v),则可以直接按照公式进行展开,例如F(1,2)=x=0∑2y=0∑2(−1)x+ye−j(32π∗1x+32π∗2y)=f(0,0)+f(0,1)e−j32π∗2∗1+f(0,2)e−j32π∗2∗2+f(1,0)e−j32π+f(1,1)e−j32πe−j32π∗2+f(1,2)e−j32πe−j32π∗2∗2+f(2,0)e−j32π∗2+f(2,1)e−j32π∗2e−j32π∗2+f(2,2)e−j32π∗2e−j32π∗2∗2=1−w′+w−w+ww′−w2+w′−w′2+ww′=3−w′−w=4
2.3 逆傅里叶变换法
题目
f(x,y)=cos(π8x+πy)+3sin(π16x)(x=0−255,y=0−255),计算它的离散傅里叶变换F(u,v)f(x,y) = \cos (\frac{\pi}{8}x+\pi y) + 3\sin(\frac{\pi}{16}x) \quad (x=0-255,y=0-255),计算它的离散傅里叶变换F(u,v) f(x,y)=cos(8πx+πy)+3sin(16πx)(x=0−255,y=0−255),计算它的离散傅里叶变换F(u,v)
解:
设M=N=256,则有π8=2πM×16,π=2πN×128,π16=2πM×8f(x,y)=cos(2π∗16512x+2π∗128Ny)+3sin2π∗8Mx=1MN[MN2[ej(2π∗16Mx+2π∗128Ny)+e−j(2π∗16Mx+2π∗128Ny)]+3MN2j[ej2π∗8Mx−e−j2π∗8Mx]]=1MN∑u255∑v255F(u,v)ej(2πuMx+2πvny)(根据反变换公式可知前面的那个系数就是取不同u,v,F(u,v)对应的值)可知F(16,128)=F(−16,−128)=F(−19+kM,−128+kN)=F(240,128)=MN2F(−8,0)=F(−8,0)=F(248,256)=F(248,0)=3MN2j\begin{aligned} & 设M=N=256,则有\frac{\pi}{8} = \frac{2\pi}{M}\times16,\pi = \frac{2\pi}{N}\times128,\frac{\pi}{16}=\frac{2\pi}{M}\times8 \\ & f(x,y) = \cos({\frac{2\pi*16}{512}x}+\frac{2\pi*128}{N}y)+3\sin{\frac{2\pi*8}{M}x} \\ & = \frac{1}{MN}\bigg[ \frac{MN}{2}\big[e^{j(\frac{2\pi*16}{M}x+\frac{2\pi*128}{N}y)}+ e^{-j(\frac{2\pi*16}{M}x+\frac{2\pi*128}{N}y)}\big] +\frac{3MN}{2j}\big[ e^{j}\frac{2\pi*8}{M}x - e^{-j}\frac{2\pi*8}{M}x\big]\bigg] \\ & = \frac{1}{MN}\sum_u^{255}\sum_v^{255}F(u,v)e^{j(\frac{2\pi u}{M}x + \frac{2\pi v}{n}y)} \\ & (根据反变换公式可知前面的那个系数就是取不同u,v,F(u,v)对应的值)可知 \\ & F(16,128)=F(-16,-128)=F(-19+kM,-128+kN)=F(240,128)=\frac{MN}{2} \\ & F(-8,0)=F(-8,0)=F(248,256)=F(248,0) = \frac{3MN}{2j} \end{aligned} 设M=N=256,则有8π=M2π×16,π=N2π×128,16π=M2π×8f(x,y)=cos(5122π∗16x+N2π∗128y)+3sinM2π∗8x=MN1[2MN[ej(M2π∗16x+N2π∗128y)+e−j(M2π∗16x+N2π∗128y)]+2j3MN[ejM2π∗8x−e−jM2π∗8x]]=MN1u∑255v∑255F(u,v)ej(M2πux+n2πvy)(根据反变换公式可知前面的那个系数就是取不同u,v,F(u,v)对应的值)可知F(16,128)=F(−16,−128)=F(−19+kM,−128+kN)=F(240,128)=2MNF(−8,0)=F(−8,0)=F(248,256)=F(248,0)=2j3MN
matlab验证
在Matlab里验证时,这两个都从频谱图看(或居中或左上角),或不看频谱,直接看F也行。频谱是Fourier系数的模。abs(F)
使用逆变换求解2.1
π4=2π512×64f(x,y)=1MN∗MN2(ej2π512∗64+e−j2π512∗64)可知当v=64,u=0时候F(64,0)=MN2\begin{aligned} & \frac{\pi}{4} = \frac{2\pi}{512}\times64 \\ & f(x,y) = \frac{1}{MN}*\frac{MN}{2}(e^{j\frac{2\pi}{512}*64}+e^{-j\frac{2\pi}{512}*64}) \\ & 可知当v=64,u=0时候F(64,0)=\frac{MN}{2} \end{aligned} 4π=5122π×64f(x,y)=MN1∗2MN(ej5122π∗64+e−j5122π∗64)可知当v=64,u=0时候F(64,0)=2MN
2.4 总结
DFT分解计算
F(u,v)=∑x=0M−1∑y=0N−1f(x,y)e−j2π(2xM+vyN)=∑x=0M−1e−j2πux/M∑y=0N−1f(x,y)e−j2πvy/N=∑x=0M−1e−j2πux/MF(x,v)\begin{aligned} F(u,v) & = \sum^{M-1}_{x=0} \sum^{N-1}_{y=0}f(x,y)e^{-{j2\pi}(\frac{2x}{M}+\frac{vy}{N})} \\ & = \sum^{M-1}_{x=0}e^{-{j2\pi}ux/M} \sum^{N-1}_{y=0}f(x,y)e^{-{j2\pi}vy/N} \\ & = \sum^{M-1}_{x=0}e^{-{j2\pi}ux/M}F(x,v) \end{aligned} F(u,v)=x=0∑M−1y=0∑N−1f(x,y)e−j2π(M2x+Nvy)=x=0∑M−1e−j2πux/My=0∑N−1f(x,y)e−j2πvy/N=x=0∑M−1e−j2πux/MF(x,v)
固定x,展开y
F(x,v)=∑x=0M−1f(x,y)e−j2πvy/NF(x,0)=∑x=0M−1f(x,y)∗1F(x,1)=∑x=0M−1f(x,y)e−j2πv/N=∑x=0M−1f(x,y)wvF(x,2)=∑x=0M−1f(x,y)e−j2πv∗2/N=∑x=0M−1f(x,y)w2vF(x,N−1)=∑x=0M−1f(x,y)e−j2πv∗(N−1)/N=∑x=0M−1f(x,y)w(N−1)v由此可得B矩阵的第v列所对应系数为[1wvw2v...w(N−1)v]例如在2.3求解F(1,2)时候,矩阵B的第(2+1//+1是因为矩阵下标默认从1开始)列为[1w2w2∗2]\begin{aligned} & F(x,v) = \sum^{M-1}_{x=0}f(x,y)e^{-{j2\pi}vy/N} \\ \\ & F(x,0) = \sum^{M-1}_{x=0}f(x,y)*1 \\ & F(x,1) = \sum^{M-1}_{x=0}f(x,y)e^{-j2\pi v/N}=\sum^{M-1}_{x=0}f(x,y)w^v \\ & F(x,2) = \sum^{M-1}_{x=0}f(x,y)e^{-j2\pi v *2/N}=\sum^{M-1}_{x=0}f(x,y)w^{2v} \\ & F(x,N-1) = \sum^{M-1}_{x=0}f(x,y)e^{-j2\pi v *(N-1)/N}=\sum^{M-1}_{x=0}f(x,y)w^{(N-1)v} \\ & 由此可得B矩阵的第v列所对应系数为[1 \ w^v \ w^{2v} \ ...w^{(N-1)v}] \\ & 例如在2.3求解F(1,2)时候,矩阵B的第(2+1//+1是因为矩阵下标默认从1开始)列为[1\ w^2 \ w^{2*2}] \end{aligned} F(x,v)=x=0∑M−1f(x,y)e−j2πvy/NF(x,0)=x=0∑M−1f(x,y)∗1F(x,1)=x=0∑M−1f(x,y)e−j2πv/N=x=0∑M−1f(x,y)wvF(x,2)=x=0∑M−1f(x,y)e−j2πv∗2/N=x=0∑M−1f(x,y)w2vF(x,N−1)=x=0∑M−1f(x,y)e−j2πv∗(N−1)/N=x=0∑M−1f(x,y)w(N−1)v由此可得B矩阵的第v列所对应系数为[1 wv w2v ...w(N−1)v]例如在2.3求解F(1,2)时候,矩阵B的第(2+1//+1是因为矩阵下标默认从1开始)列为[1 w2 w2∗2]
更一般地,记
w1=e−j2π/M,w2=e−j2π/NA=[111....11w1w12....w1M−11w12(w12)2....(w1M−1)2............1w1M−1(w12)M−1....(w1M−1)M−1]M×MB=[111....11w2w22....w2N−11w22(w22)2....(w2N−1)2............1w2N−1(w22)N−1....(w2N−1)N−1]N×Nw_1 = e^{-j2\pi /M}, w_2 = e^{-j2\pi /N} \\ A = \begin{bmatrix} 1 & 1 & 1 & .... & 1 \\ 1 & w_1 & w_1^2 & .... & w_1^{M-1} \\ 1 & w_1^2 & (w_1^2)^{2} & .... & (w_1^{M-1})^2 \\ ..& .. & .. & .... & .. \\ 1 & w_1^{M-1} & (w_1^2)^{M-1} & .... & (w_1^{M-1})^{M-1} \end{bmatrix}_{M\times M} \quad B = \begin{bmatrix} 1 & 1 & 1 & .... & 1 \\ 1 & w_2 & w_2^2 & .... & w_2^{N-1} \\ 1 & w_2^2 & (w_2^2)^{2} & .... & (w_2^{N-1})^2 \\ ..& .. & .. & .... & .. \\ 1 & w_2^{N-1} & (w_2^2)^{N-1} & .... & (w_2^{N-1})^{N-1} \end{bmatrix}_{N\times N} \quad \\ w1=e−j2π/M,w2=e−j2π/NA=⎣⎢⎢⎢⎢⎡111..11w1w12..w1M−11w12(w12)2..(w12)M−1....................1w1M−1(w1M−1)2..(w1M−1)M−1⎦⎥⎥⎥⎥⎤M×MB=⎣⎢⎢⎢⎢⎡111..11w2w22..w2N−11w22(w22)2..(w22)N−1....................1w2N−1(w2N−1)2..(w2N−1)N−1⎦⎥⎥⎥⎥⎤N×N
那么二维离散傅里叶变换可以表示为
Fm×n=Am×mfm×nBn×nF_{m\times n} = A_{m\times m}f_{m\times n}B_{n \times n} Fm×n=Am×mfm×nBn×n
记
共轭转置记w‾1=ej2π/M,w‾2=ej2π/NAH=[111....11w‾1w‾12....w‾1M−11w‾12(w‾12)2....(w‾1M−1)2............1w‾1M−1(w‾12)M−1....(w‾1M−1)M−1]M×M性质AAH=MI,由此可得AHFBH=AHAfBBH=MIm∗mfNIn∗n=MNf共轭转置\ 记 \ \overline w_1 = e^{j2\pi /M}, \overline w_2 = e^{j2\pi /N}\\ A^H = \begin{bmatrix} 1 & 1 & 1 & .... & 1 \\ 1 & \overline w_1 & \overline w_1^2 & .... & \overline w_1^{M-1} \\ 1 & \overline w_1^2 & (\overline w_1^2)^{2} & .... & (\overline w_1^{M-1})^2 \\ ..& .. & .. & .... & .. \\ 1 & \overline w_1^{M-1} & (\overline w_1^2)^{M-1} & .... & (\overline w_1^{M-1})^{M-1} \end{bmatrix}_{M\times M} \quad \\ 性质AA^H=MI, 由此可得A^H F B^H = A^HAfBB^H=MI_{m*m}fNI_{n*n}=MNf \\ 共轭转置 记 w1=ej2π/M,w2=ej2π/NAH=⎣⎢⎢⎢⎢⎡111..11w1w12..w1M−11w12(w12)2..(w12)M−1....................1w1M−1(w1M−1)2..(w1M−1)M−1⎦⎥⎥⎥⎥⎤M×M性质AAH=MI,由此可得AHFBH=AHAfBBH=MIm∗mfNIn∗n=MNf
那么可推出离散傅里叶反变换IDFT
f=1MNAHFBH=1MN∑u=0M−1∑v=0N−1F(u,v)ej2π(ux/M+vy/N)f = \frac{1}{MN} A^H F B^H = \frac{1}{MN}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{j2\pi(ux/M+vy/N)} f=MN1AHFBH=MN1u=0∑M−1v=0∑N−1F(u,v)ej2π(ux/M+vy/N)
三 参考文章
- https://zhuanlan.zhihu.com/p/48392273
- https://zhuanlan.zhihu.com/p/48391055
- https://zhuanlan.zhihu.com/p/48392958
- https://blog.csdn.net/chenf1999/article/details/112253585
二维离散傅里叶变换最详手算相关推荐
- 第4章 Python 数字图像处理(DIP) - 频率域滤波5 - 二变量函数的傅里叶变换、图像中的混叠、二维离散傅里叶变换及其反变换
目录 二变量函数的傅里叶变换 二维冲激及其取样性质 二维连续傅里叶变换对 二维取样和二维取样定理 图像中的混叠 二维离散傅里叶变换及其反变换 二变量函数的傅里叶变换 二维冲激及其取样性质 两个连续变量 ...
- C++实现二维离散傅里叶变换
在上一篇文章<C++实现一维离散傅里叶变换>中,我们介绍了一维信号傅立叶变换的公式和C++实现,并阐述了频域幅值的意义. 一维傅立叶变换只适用于一维信号,例如音频数据.心脑电图等. 在图像 ...
- Python 二维离散傅里叶变换
Python 二维离散傅里叶变换 文章目录 Python 二维离散傅里叶变换 需要的库 计算两张图片的PSNR 二维离散傅里叶变换 二维离散傅里叶逆变换 频域平移 绘制频域图像 需要的库 import ...
- 傅里叶变换 二维离散傅里叶变换
1.介绍. DFT:(Discrete Fourier Transform)离散傅里叶变换是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样.在形式上,变换两端(时域 ...
- 图像傅里叶变换(二维离散傅里叶变换)
图像傅里叶变换 二维离散傅里叶变换是将图像从空间域转至频域,在图像增强.图像去噪.图像边缘检测.图像特征提取.图像压缩等等应用中都起着极其重要的作用.理论基础是任意函数都可以表示成正弦函数的线性组合的 ...
- 图像二维离散傅里叶变换、幅度谱、相位谱
clear, clc I = imread('...');F = fftshift(fft2(I)); % 对图像进行二维 DFT(fft2),并移至中心位置 magn = log(abs(F)); ...
- 二维离散傅里叶变换性质
1. 线性性质(加法定理): 2. 比例性质(相似性定理) 3. 可分离性: 4. 空间位移(位移定理): 5. 频率位移: 6. 周期性: 7. 共轭对称性: 8. 旋转不变性: 9. 平均值: 1 ...
- 在二维离散傅里叶变换中进行频谱平移(MATLAB::fft2shift)的作用
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 懒得自己敲文字描述了,直接摘取在一个资料上看到的 ...
- C++实现二维快速傅里叶变换(FFT)
上一篇文章里,我根据DFT公式用C++实现了二维离散傅里叶变换.但跑一张300*300的图片都要好几分钟,速度实在太慢了.我研究了下快速傅里叶变换,在网上找了一些资料,然后用C++实现了二维快速傅里叶 ...
- 快速傅里叶变换 java_二维快速傅里叶变换的java实现
图像处理与模式识别课作业,没学过信号与系统(哭晕). 恶补了两天冈萨里斯的书,写一下实现原理及过程 看了网络上很多版本的概念讲解,道理我都懂,但是在将算法迁移到傅里叶变换的实现上时,出现了一些问题.接 ...
最新文章
- 随机对照试验设计的原理
- java工作台无法显示_【Eclipse】使用指南(18)搜索工作台
- Android studio安装及常见问题
- java基础—IO流——转换流的操作
- 针对视觉位姿估计特征点优化问题的详细研究
- scala读取数据从文件或者其他url中
- vue img src 动态赋值_一个基于Vue的开源延迟加载插件——vuelazyload
- OpenStack版本发布周期或将延长为1年
- 【Ubuntu版】CMake安装教程
- canbus是什么意思_CANBUS是什么意思
- 5G Wifi频段及信道介绍
- 基于 AngularJS 的 UI 框架 Suave UI
- 【工商银行科技菁英计划笔试】压缩字符串
- python程序设计基础上机题5.16-----5.26(2)
- Cortex-M3技术参考手册 2022年3月1日
- 石狮子吃了四十四个涩柿子
- 用计算机做路由器,用笔记本做无线路由(笔记本电脑当无线路由器用怎么设置)...
- 火狐浏览器打开后是搜狗浏览器_搜狗浏览器和Firefox浏览器哪个好
- python 爬取知网url
- 《Unsupervised Learning of Depth and Ego-Motion from Video》读书笔记
热门文章
- Android Studio模拟器安装步骤
- 90后男屌丝如何让淘宝客日赚10万滴
- Ventoy的pe盘制作及重装系统步骤【解释的非常清楚!!!】
- 树莓派Raspberry Pi 系统可连接家庭wifi 无法远程故障
- linux去掉锁屏密码,安卓手机锁屏密码清除方法 android7.0锁屏密码怎么去除
- 手机免费logo在线制作的专业教程
- c语言单片机管脚定义,单片机-IO管脚
- 苹果8wifi找不到服务器,苹果8连不上wifi怎么办
- QoBean的元语言系统(一)
- VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path