第七章 傅里叶变换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
=
1 MN
fT (fT ((x, y ))) f
4.线性
5.卷积
6.直流分量 在DFT中F(0,0)称作直流分量,将之带入公式中有
F (0, 0) = ∑ ∑ f ( x, y ) ⋅ e(0) = ∑ ∑ f ( x, y )
x=0 y =0 x =0 y =0 M −1 N −1 M −1 N −1
傅立叶变换的作用
• (1)可以得出信号在各个频率点上的强度。 • (2)可以将卷积运算化为乘积运算。 • (3)傅氏变换和线性系统理论是进行图像恢复和 重构的重要手段。 • (4)傅立叶变换能使我们从空间域与频率域两个 不同的角度来看待图像的问题,有时在空间域无 法解决的问题在频域却是显而易见的。
imshow(mat2gray(log(1+abs(af))))
fftshow(af,'log')
function fftshow(f,type) %% if(type=='log') f1=log(1+abs(f)); fm=max(f1(:)); imshow(im2uint8(f1/fm)) elseif(type=='abs') fa=abs(f); fm=max(fa(:)); imshow(fa/fm) else error('TYPE must be abs or log.'); end;
8.共轭对称性
见书上P113,图7.3这显示了DFT的结果,只有一半 是真正的变换信息,另一半其实是冗余的。
9.显示特性 我们希望观测到F,但由于这数比较复杂因此不易直接 显示。我们可以利用下面两种方法, A.求出F绝对值的最大值,而后用imshow函数显示
F (u , v) / m
B.直接用mat2gray显示F的绝对值。 还有一个问题是直流分量的值远远大于其他值,这将显 示出来中间一个亮点,四周被黑色包围。解决办法就是 显示
ux vy ∑ ∑ F (u, v) exp j 2π M + N x =0 y =0 x = 0,1, 2,L L , M − 1 y = 0,1, 2,L L , N − 1
M −1 N −1
1 MN
空间域和频率域抽样点之间的关系如下所示: 1 1 ∆u = ∆v = M ∆x M ∆y
一、二维离散傅里叶变换的一些性质 1.相似性: 可以看到二维离散傅里叶变换的正变换和反变换,几乎 具有完全相同的公式。 2.DFT看做空域滤波器:
ux vy exp j 2π + M N 是独立于f和F的,这意味着它可以
预先计算出来,然后再代入到上面的公式中。这就相当 于F可以通过f和固定值的乘积再进行累加。很像线性滤 波器的工作原理。我们可以认为DFT是一个和图像一样 大的线性空域滤波器。对于边界我们可以认为图像平铺 到各方向,使模板始终可以与图像中的值相乘。
ux vy F (u, v) = ∑∑ f ( x, y ) exp − j 2π + M N x =0 y =0 u = 0,1,2,L L, M − 1 v = 0,1,2, LL , N − 1
M −1 N −1
反变换式为: 反变换式为:
1 f ( x, y ) = MN
a= 100 100 100 100 100 100 100 100 0 0 0 0 0 0 0
200 200 200 200 200 200 200 200
100 100 100 100 100 100 100 100 0 0 0 0 0 0 0 0
200 200 200 200 200 200 200 200 0 0 0 0 0 0 0
直流分量实际上是所有像素之和
例7.3.2
a=[100 200;100 200]; >> a=repmat(a,4,4) af=fft2(a) af = Columns 1 through 7 9600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Column 8 0
0 0 0 0 21 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 9 0 0 0
可以看出32是直流分量,其他的对称分量是波纹对应 的正弦结构。
7.4图像的傅里叶变换 • 例7.4.1构造一幅简单图像,有一条边界
a=[zeros(256,128) ones(256,128)]; af=fftshift(fft2(a));af1=log(1+abs(af)); imshow(af1/af1(129,129)) figure,imshow(af1) figure,imshow(a)
也就是说这个分量是原图像中所有元素的累加和。 7.移变性
通常在进行傅立叶变换之前用(-1) 通常在进行傅立叶变换之前用 x+y乘以输入的图像函数
Ψ[ f ( x, y)(−1) x+ y ] = F (u − M / 2, v − N / 2)
将傅立叶变换的原点(即 被设置在u=M/2,v=N/2上,该点为二维 将傅立叶变换的原点 即F(0,0))被设置在 被设置在 上 该点为二维 DFT设置的 ×N区域的中心 设置的M× 区域的中心 设置的
fftshow(af,'abs')
结果与例7.3.3很相近。
• 例7.4.2构造一幅方块图像
a=zeros(256,256); a(78:178,78:178)=1; imshow(a) af=fftshift(fft2(a));
figure,fftshow(af,'abs')
figure,fftshow(af,'log')
第七章
傅里叶变换
7.1引言
人类视觉所感受到的是在空间域和时间域的信号。 人类视觉所感受到的是在空间域和时间域的信号。 但是,往往许多问题在频域中讨论时, 但是,往往许多问题在频域中讨论时,有其非常方便分 析的一面。例如, 析的一面。例如,空间位置上的变化不改变信号的频域 特性。 特性。 变换提出的前提: 变换提出的前提: 首先,提出的变换必须是有好处的,换句话说, 首先,提出的变换必须是有好处的,换句话说,可以 解决时域中解决不了的问题。 解决时域中解决不了的问题。 其次,变换必须是可逆的, 其次,变换必须是可逆的,可以通过逆变换还原回原时 域中。 域中。
若f(x)为一维连续实函数, 则它的傅里叶变换可定义为:
傅立叶逆变换定义如下:
式中x是时域变量, 为频率变量 为频率变量。 式中 是时域变量,u为频率变量。 如令
ω = 2 π u , 则有
F (ω ) =
∫
∞ −∞
f ( x )e
− jω x
dx
1 f ( x) = 2π
∫
∞
−∞
F (ω ) e
0
可将上面的矩阵看成是全部像素都是150的矩阵和一个 50,-50交替出现的矩阵之和,所以直流分量是9600, 交流分量只有一个值。
例7.3.3
a=[zeros(8,4) ones(8,4)] af=fftshift(fft2(a)); >> round(abs(af)) ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 21 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
jω x
dω
通常把以上公式称为傅里叶变换对。 通常把以上公式称为傅里叶变换对。 函数f(x)和F(u)被称为傅立叶变换对。即对于任一函数f(x), 其傅立叶变换F(u)是惟一的; 反之,对于任一函数F(u), 其傅立叶逆变换f(x)也是惟一的。
Biblioteka Baidu
离散傅里叶变换
连续函数的傅里叶变换是波形分析的有力工具, 连续函数的傅里叶变换是波形分析的有力工具,这 在理论分析中无疑具有很大价值。 在理论分析中无疑具有很大价值。离散傅里叶变换 使得数学方法与计算机技术建立了联系,这就为傅 使得数学方法与计算机技术建立了联系, 里叶变换这样一个数学工具在实用中开辟了一条宽 阔的道路。因此,它不仅仅有理论价值, 阔的道路。因此,它不仅仅有理论价值,而且在某 种意义上说它也有了更重要的实用价值。 种意义上说它也有了更重要的实用价值。
f ( x, y ) = ∫−∞ ∫−∞ F (u , v )e
j 2 π ( ux + vy )
dudv
7.2二维DFT
一幅静止的数字图像可看做是二维数据阵列。因此, 一幅静止的数字图像可看做是二维数据阵列。因此,数 字图像处理主要是二维数据处理。 字图像处理主要是二维数据处理。二维离散傅里叶变换 的定义可用下面二式表示。正变换式为: 的定义可用下面二式表示。正变换式为:
yυ N
}e
− j 2π
xu M
= fT列 fT行 f x, y ))) ( ((
f ( x, y ) =
M −1 N −1 1 MN =0 =0
∑∑ F (µ ,υ ) ⋅ e µ υ
−1 列 −1 行
j 2π ( xµ + yυ ) M N
=
1 MN
fT −1行 fT −1列 f x, y ))) ( ((
100 100 100 100 100 100 100 100
200 200 200 200 200 200 200 200 0 0 0 0 0 0 0
100 100 100 100 100 100 100 100
200 200 200 200 200 200 200 200
0
-3200 0 0 0 0 0 0 0 0
傅里叶变换可推广到二维函数。 傅里叶变换可推广到二维函数。如果二维函数 满足狄里赫莱条件, f ( x , y ) 满足狄里赫莱条件,那么将有下面二维付里 叶变换对存在: 叶变换对存在:
F (u, v) = ∫−∞ ∫−∞ f ( x, y)e
∞ ∞
∞ ∞
− j 2 π ( ux+vy )
dxdy
• 例7.4.3方块旋转45度
[x,y]=meshgrid(1:256,1:256); b=(x+y<329)&(x+y>182)&(x-y>-67)&(x-y<73); imshow(b) bf=fftshift(fft2(b)); figure,fftshow(bf)
• 例7.4.4圆点
[x,y]=meshgrid(-128:127,-128:127); z=sqrt(x.^2+y.^2); c=(z<15); imshow(c)
如果x(n)为一数字序列,则其离散傅里叶正变换定 为一数字序列, 如果 为一数字序列 义由下式来表示
X (m ) =
N −1 n=0
∑
x(n)e
− j
2 π mn N
傅里叶反变换定义由下式来表示
2 πmn j 1 N −1 x ( n ) = ∑ X ( m )e N N m =0
由上面两式可见, 由上面两式可见,离散傅里叶变换是直接处理离散时间 信号的傅里叶变换。 信号的傅里叶变换。如果要对一个连续信号进行计算机 数字处理,那么就必须经过离散化处理。这样, 数字处理,那么就必须经过离散化处理。这样,对连续 信号进行的傅里叶变换的积分过程就会自然地蜕变为求 和过程。 和过程。
cf=fftshift(fft2(c)); fftshow(cf,'log')
log[1 + F ( u , v ) ]
对傅里叶变换的绝对值的显示称为变换的频谱。
7.3MATLAB中的傅里叶变换 • • • • • fft对向量做DFT ifft对向量做IDFT fft2对矩阵做DFT Ifft2对矩阵做IDFT Fftshift显示变换如图7.3
例7.3.1
a=ones(8); >> fft2(a) ans = 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3.可分离性
F ( µ , υ ) = ∑ ∑ f ( x, y ) ⋅ e
x =0 y =0 M −1 N −1 x =0 y =0 M −1 N −1 − j 2π ( xµ + yυ ) M N
= ∑ {∑ f ( x, y ) ⋅ e
= fT行 fT列 f x, y ))) ( ((
− j 2π