一、一维离散傅里叶变换

1、离散傅里叶变换理论

离散傅里叶变换 java实现 离散傅里叶变换结果_转置

2、傅里叶变换的矩阵形式(内积需要共轭,所以会存在负号)

离散傅里叶变换 java实现 离散傅里叶变换结果_离散傅里叶变换_02

3、DFT矩阵

离散傅里叶变换 java实现 离散傅里叶变换结果_转置_03

离散傅里叶变换 java实现 离散傅里叶变换结果_离散傅里叶变换 java实现_04

4、DFT转置(H表示既要转置也要取共轭)

离散傅里叶变换 java实现 离散傅里叶变换结果_离散傅里叶变换 java实现_05

5、DFT合成

离散傅里叶变换 java实现 离散傅里叶变换结果_转置_06

 

6、傅里叶变换的例子

左图使用两个频率产生的,一个为100赫兹,一个为260赫兹。再加一些白噪声。

图右是经过傅里叶变换之后的幅度谱,通过幅度谱,可以看出有两个峰值,峰值在100以及260左右。

离散傅里叶变换 java实现 离散傅里叶变换结果_离散傅里叶变换 java实现_07

二、二维离散傅里叶变换

1、二维离散傅里叶变换

以图像为例,n1,n2表示像素点的坐标。

k1表示x方向的空间频率,k2表示y方向的空间频率。

离散傅里叶变换 java实现 离散傅里叶变换结果_离散傅里叶变换 java实现_08

2、图像的例子

对图像做傅里叶变换,计算图像的频率普。

离散傅里叶变换 java实现 离散傅里叶变换结果_离散傅里叶变换_09

 

上左----------->上右 傅里叶变换--------->频率普-------->得到三个白点,中间的白点表示其直流分量,左右的白点是它的频率。傅里叶变换不分正负,所以左右的白点分别是其正频率与负频率。

下左----------->下右 傅里叶变换--------->频率普-------->得到三个白点,中间的白点表示其直流分量,上下的白点是它的频率。傅里叶变换不分正负,所以上下的白点分别是其正频率与负频率。

例子2

离散傅里叶变换 java实现 离散傅里叶变换结果_傅里叶变换_10

例子3

离散傅里叶变换 java实现 离散傅里叶变换结果_二维_11

例子4、自然图像的幅度谱(绝大部分的能量还是集中在低频成分)

离散傅里叶变换 java实现 离散傅里叶变换结果_离散傅里叶变换_12

 

傅里叶变换会将一个实信号变为一个复信号,复数信号的话,就会存在实部和虚部,那么我们可以用极坐标的形式来表示它,即我们可以计算它的幅度谱和相位谱。--------->虚部比上实部,取arctan,就是它的相位,或者角度。

在傅里叶变换当中,幅度谱重要,还是相位谱重要?

以下图为例:

离散傅里叶变换 java实现 离散傅里叶变换结果_傅里叶变换_13

我们取图像1的幅度谱与图像2的相位谱结合,再做反向傅里叶变换;我们取图像1的相位谱与图像2的幅度谱结合,再做反向傅里叶变换。我们得到的实验结果如下

离散傅里叶变换 java实现 离散傅里叶变换结果_二维_14

所以由结果可知,图像的相位谱包含图像的信息程度高,所以还是相位谱重要。