离散傅立叶变换

分析各种数据的一个常见运算是求值列表的傅立叶变换或频谱分析. 基本思想是要提取具有特定频率或频率范围的数据成分.

Fourier[{u1,u2,...,un}]离散傅立叶变换
InverseFourier[{v1,v2,...,vn}]离散傅立叶反变换

离散傅立叶变换.

这里是相应于方形脉冲的数据.
In[1]:=
Click for copyable input
Out[1]=
这里是该数据的傅立叶变换. 它包含复数.
In[2]:=
Click for copyable input
Out[2]=
这里是傅立叶反变换.
In[3]:=
Click for copyable input
Out[3]=
不论给出的数据列表的长度是否是2的整数幂,Fourier 都能有效处理.
In[4]:=
Click for copyable input
Out[4]=
这里生成一个长度为200的列表,它包含着一个带有随机噪声的周期信号.
In[5]:=
Click for copyable input
如果直接画出其图形,可看出数据是相当随机的.
In[6]:=
Click for copyable input
Out[6]=
傅立叶变换显示在 处有一个强峰,在 处有一个对称的峰,反映出原信号在 附近的频率成分.
In[7]:=
Click for copyable input
Out[7]=

Mathematica 中,长为 的列表 的离散傅立叶变换 缺省地定义为 . 注意零频率项出现在结果列表中的第一个位置.

长为 的列表 的离散傅立叶变换 缺省地定义为 .

在不同的学科中,定义离散傅立叶变换有不同规定. 选项 FourierParameters 允许用户选择任何一种规定.

常见规定
设置
离散傅立叶变换
离散傅立叶反变换
Mathematica 默认{0,1}
数据分析{-1,1}
信号处理{1,-1}
一般情况{a,b}

具有不同规定的 FourierParameters 的典型设置.

Fourier[{{u11,u12,...},{u21,u22,...},...}]
二维离散傅立叶变换

二维离散傅立叶变换.

Mathematica 可以求任意维数的数据的傅立叶变换. 对于 维,数据由嵌套 层的列表指定. 二维傅立叶变换常用于图像处理中.

对于实数,通常所用的离散傅立叶变换有一个问题就是结果是复数值. 我们有产生实数结果的不同的实离散傅立叶变换. Mathematica 有用来计算离散余弦变换和离散正弦变换的命令.

FourierDCT[list]由实数组成的列表的傅立叶离散余弦变换
FourierDST[list]由实数组成的列表的傅立叶离散正弦变换

离散实傅立叶变换.

这里是相应于方形脉冲的数据.
In[8]:=
Click for copyable input
Out[8]=
这是数据的傅立叶离散余弦变换.
In[9]:=
Click for copyable input
Out[9]=
这是数据的傅立叶离散正弦变换.
In[10]:=
Click for copyable input
Out[10]=

我们有4种傅立叶离散正弦和余弦变换可使用,分别使用数字或类型2的离散余弦变换的"DCTII"中的罗马数字表示.

FourierDCT[list,m]类型为 m 的傅立叶离散余弦变换
FourierDST[list,m]类型为 m 的傅立叶离散正弦变换

不同类型的离散实傅立叶变换.

缺省值是关于 FourierDCTFourierDST 的类型2.

Mathematica 不需要 或者 函数,由于 FourierDCTFourierDST 在使用合适的类型时是它们自身的反函数. 类型1、2、3、4 的反变换分别是类型1、3、2、4.

检查类型3变换是类型2变换的反变换.
In[11]:=
Click for copyable input
Out[11]=

离散实变换对于数据或图像压缩来说是方便的.

这是看起来可能像正面或边界的数据.
In[12]:=
Click for copyable input
Out[12]=
离散余弦变换具有前面一些模式的绝大部分信息.
In[13]:=
Click for copyable input
Out[13]=
仅从前面的20个模式(原始数据大小的1/10)重建正面. 振动是由于舍位造成的,并且也会出现在图像处理的应用中.
In[14]:=
Click for copyable input
Out[14]=
New to Mathematica? Find your learning path »
Have a question? Ask support »