目录
一维傅里叶变换
1. 傅里叶级数
任何一个周期函数都可以由一些不同频率的正弦(或余弦)函数线性叠加得到。
表示成数学表达式是这样子的:
其中
这被称为傅里叶级数。由欧拉公式
可将上述傅里叶级数公式变形为:
这里的系数cn经常被表示成函数的形式F(n),它是一个离散的函数,即
例子:
http://www.falstad.com/fourier/
2. 连续傅里叶变换
当周期趋向无穷大时,函数f变为非周期函数,其傅里叶级数中的
就趋向于无穷小,离散的求和就变成了连续的积分:
其中
这就是连续傅里叶变换
3. 离散时间傅里叶变换
当f(x)中的x是一个离散的变量时,傅里叶变换就变成了:
F是周期性的
4. 离散傅里叶变换
如何f(x)是离散的且是周期性的,傅里叶变换变成了:
傅里叶变换与线性滤波
数字图像处理/Review_of_Linear_Systems.ppt
二维傅里叶变换
二维傅里叶变换相当于先在x方向做一维傅里叶变换,然后对结果再做y方向的一维傅里叶变换,就得到了二维傅里叶变换的结果。
二维的离散傅里叶变换也是类似的:
F(u,v)的幅度和相位分别是:
频谱能量为
性质:
关于原点是共轭对称的:
幅值是原点对称的:
周期性:
在matlab中计算二维傅里叶变换
用fft2函数计算图像的傅里叶变换:
F = fft2(f);
查看傅里叶变换的结果,可以发现幅值最大的位置出现在四个角上,它们代表了低频的部分。我们可以对频谱进行平移,使得它们位于中间:
F = fftshift(F);
要将频谱变换回图像,使用傅里叶逆变换:
F = ifftshift(F); f = ifft2(F);
频域滤波
根据卷积定理
以及
因此可以得到:
其中,
表示傅里叶变换,
表示傅里叶逆变换
在matlab里面实现:
[M, N] = size(f);
F = fft2(f);
h = fspecial('average', [5 5]);
H = fft2(h, M, N);
G = F.*H;
g = real(ifft2(G));
imshow(g);
频域中直接生成滤波器
1. 低通滤波器
理想低通滤波器

巴特沃滋低通滤波器
![$ H(u,v) = \frac{1}{1+[D(u,v)/D_0]^{2n}} $ $ H(u,v) = \frac{1}{1+[D(u,v)/D_0]^{2n}} $](/%E5%9B%BE%E5%83%8F%E7%9A%84%E9%A2%91%E5%9F%9F%E5%A2%9E%E5%BC%BA?action=AttachFile&do=get&target=latex_eec102485baa1fbf6f4d2cb9d39d25e93b1ffc26_p1.png)
高斯低通滤波器

2. 高通滤波器
基本高通滤波:

高频强调滤波:

3. 在matlab里面实现
理想低通:
f = imread('lena_gray.tif');
[M N] = size(f);
[R C] = meshgrid(1:M, 1:N);
D = sqrt((R-M/2).^2 + (C-N/2).^2);
H = double(D <= 100);
F = fftshift(fft2(f));
G = F.*H;
g = ifft2(ifftshift(G));