如下部分文字资料整合于网络,本文仅供本身学习用!算法
这是一幅很绝的一维傅里叶变换动态图网络
一个信号能表示成傅里叶级数的形式是有条件的,首先它必须是周期信号,第二必须是知足狄里赫利条件的周期信号。
dom
分析其和频率有关部份,而不是和时间有关的部份,和时域一词相对。函数
(2),时域是描述数学函数或物理信号对时间的关系。工具
例如一个信号的时域波形能够表达信号随着时间的变化。
若考虑离散时间,时域中的函数或信号,在各个离散时间点的数值均为已知。
若考虑连续时间,则函数或信号在任意时间的数值均为已知。在研究时域的信号时,常会用示波器将信号转换为其时域的波形。学习
(3),二者相互间的变换
时域(信号对时间的函数)和频域(信号对频率的函数)的变换在数学上是经过积分变换实现。
对周期信号能够直接使用傅立叶变换,对非周期信号则要进行周期扩展,使用拉普拉斯变换。ui
(2),快速傅里叶变换有什么用?
函数或信号能够透过一对数学的运算子在时域及频域之间转换。和傅里叶变换做用同样!spa
(3),为何要提出快速傅里叶变换?
人们想让计算机能处理信号 但因为信号都是连续的、无限的,计算机不能处理,因而就有了傅里叶级数、傅里叶变换,将信号由时域变到频域,把一个信号变为有不少个不一样频率不一样幅度的正弦信号组成,这样计算机就能处理了,但又因为傅里叶变换中要用到卷积计算,计算量很大,计算机也算不过来,因而就有了快速傅里叶变换,大大下降了运算量,使得让计算机处理信号成为可能。快速傅里叶变换是傅里叶变换的快速算法而已,主要是能减小运算量和存储开销,对于硬件实现特别有利。
.net
(2),傅立叶变换之前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样获得一系列点的集合,咱们习惯用一个二维矩阵表示空间上各点,则图像可由z=f(x,y)来表示。因为空间是三维的,图像是二维的,所以空间中物体在另外一个维度上的关系就由梯度来表示,这样咱们能够经过观察图像得知物体在三维空间中的对应关系。为何要提梯度?由于实际上对图像进行二维傅立叶变换获得频谱图,就是图像梯度的分布图,固然频谱图上的各点与图像上各点并不存在一一对应的关系,即便在不移频的状况下也是没有。傅立叶频谱图上咱们看到的明暗不一的亮点,实际上图像上某一点与邻域点差别的强弱,即梯度的大小,也即该点的频率的大小(能够这么理解,图像中的低频部分指低梯度的点,高频部分相反)。通常来说,梯度大则该点的亮度强,不然该点亮度弱。这样经过观察傅立叶变换后的频谱图,也叫功率图,咱们首先就能够看出,图像的能量分布,若是频谱图中暗的点数更多,那么实际图像是比较柔和的(由于各点与邻域差别都不大,梯度相对较小),反之,若是频谱图中亮的点数多,那么实际图像必定是尖锐的,边界分明且边界两边像素差别较大的。对频谱移频到原点之后,能够看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了能够清晰地看出图像频率分布之外,还有一个好处,它能够分离出有周期性规律的干扰信号,好比正弦干扰,一副带有正弦干扰,移频到原点的频谱图上能够看出除了中心之外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时能够很直观的经过在该位置放置带阻滤波器消除干扰
code
(能够把s想象成一幅图像,傅里叶变换过程以下)
s=magic(2);%magic矩阵有一个神奇的特色:每行或者每列加起来都相等 f=fft2(s); a=abs(f) a = 10 0 2 4 >> f f = 10 0 -2 -4 >> s s = 1 3 4 2 %3*3的矩阵的操做结果 s=magic(3); f=fft2(s); a=abs(f) a = 45.0000 0 0 0.0000 15.5885 5.1962 0.0000 5.1962 15.5885 >> f f = 45.0000 0 0 0 + 0.0000i 13.5000 + 7.7942i 0.0000 - 5.1962i 0 - 0.0000i 0.0000 + 5.1962i 13.5000 - 7.7942i >> s s = 8 1 6 3 5 7 4 9 2 %4*4的矩阵操做结果 s=magic(4);%magic矩阵有一个神奇的特色:每行或者每列加起来都相等 f=fft2(s); a=abs(f) a = 136.0000 0 0 0 0 20.0000 11.3137 12.0000 0 45.2548 0 45.2548 0 12.0000 11.3137 20.0000 >> f f = 1.0e+02 * 1.3600 0 0 0 0 0.2000 0.0800 + 0.0800i 0 - 0.1200i 0 0.3200 + 0.3200i 0 0.3200 - 0.3200i 0 0 + 0.1200i 0.0800 - 0.0800i 0.2000 >> s s = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
<span style="font-size:12px;">clear all; close all; I=imread('peppers.png');%读入图像 J=rgb2gray(I);%将图像转换为灰度图 K=fft2(J);%对图像进行二维快速傅里叶变换 K=fftshift(K);%将频谱转移到中心,其实就是在傅里叶变换时乘以了某个因子 L=abs(K/256);%取模 %显示图片 figure; subplot(131); imshow(I);title('原图像') subplot(132); imshow(J);title('被转换为灰度图后') subplot(133); imshow(uint8(L));title('二维傅里叶变换后的频谱图')</span>
clear all; close all; I=imread('peppers.png');%读入图像 J=rgb2gray(I);%转换为灰度图 J=imrotate(J,45,'bilinear'); %将图像旋转45度角 K=fft2(J);%对图像进行二维傅里叶比变换 K=fftshift(K);%转移频谱中心 L=abs(K/256);%取模 figure; subplot(121); imshow(J);title('原图像被旋转45度角') subplot(122); imshow(uint8(L));title('傅里叶变换后的图像')
clear all; close all; I=imread('peppers.png'); J=rgb2gray(I); J=imnoise(J, 'gaussian', 0, 0.01);%加入高斯噪声 K=fft2(J); K=fftshift(K); L=abs(K/256); figure; subplot(131); imshow(I);title('原图像') subplot(132); imshow(J);title('高斯噪声污染') subplot(133); imshow(uint8(L));title('污染后进行福利叶变换')
clear all; close all; I=imread('onion.png'); J=rgb2gray(I); K=fft2(J);%傅里叶变换 L=fftshift(K);%转移频谱中心 L=abs(L/256);%取模 M=ifft2(K);%二维傅里叶反变换 figure; subplot(131); imshow(J);title('原灰度图像') subplot(132); imshow(uint8(L));title('傅里叶变换后的图像') subplot(133); imshow(uint8(M));title('反变换后的图像')
参考资源:
【1】http://blog.csdn.net/struggle_for_m/article/details/51207370
【2】动态图来源于“维基百科”
【3】https://zhuanlan.zhihu.com/p/19763358?columnSlug=wille