离散傅立叶变换
分析各种数据的一个常见运算是求值列表的傅立叶变换或频谱分析. 基本思想是要提取具有特定频率或频率范围的数据成分.
离散傅立叶变换.
| Out[1]= |  |
| Out[2]= |  |
| Out[3]= |  |
不论给出的数据列表的长度是否是2的整数幂,
Fourier 都能有效处理.
| Out[4]= |  |
这里生成一个长度为200的列表,它包含着一个带有随机噪声的周期信号.
| Out[6]= |  |
傅立叶变换显示在

处有一个强峰,在

处有一个对称的峰,反映出原信号在

附近的频率成分.
| Out[7]= |  |
在 Mathematica 中,长为
的列表
的离散傅立叶变换
缺省地定义为
. 注意零频率项出现在结果列表中的第一个位置.
长为
的列表
的离散傅立叶变换
缺省地定义为
.
在不同的学科中,定义离散傅立叶变换有不同规定. 选项 FourierParameters 允许用户选择任何一种规定.
| | | |
| Mathematica 默认 | {0,1} |  |  |
| 数据分析 | {-1,1} |  |  |
| 信号处理 | {1,-1} |  |  |
| 一般情况 | {a,b} |  |  |
具有不同规定的 FourierParameters 的典型设置.
| Fourier[{{u11,u12,...},{u21,u22,...},...}] |
| 二维离散傅立叶变换 |
二维离散傅立叶变换.
Mathematica 可以求任意维数的数据的傅立叶变换. 对于
维,数据由嵌套
层的列表指定. 二维傅立叶变换常用于图像处理中.
对于实数,通常所用的离散傅立叶变换有一个问题就是结果是复数值. 我们有产生实数结果的不同的实离散傅立叶变换. Mathematica 有用来计算离散余弦变换和离散正弦变换的命令.
离散实傅立叶变换.
| Out[8]= |  |
| Out[9]= |  |
| Out[10]= |  |
我们有4种傅立叶离散正弦和余弦变换可使用,分别使用数字或类型2的离散余弦变换的"DCTII"中的罗马数字表示.
不同类型的离散实傅立叶变换.
缺省值是关于 FourierDCT 和 FourierDST 的类型2.
Mathematica 不需要
或者
函数,由于 FourierDCT 和 FourierDST 在使用合适的类型时是它们自身的反函数. 类型1、2、3、4 的反变换分别是类型1、3、2、4.
| Out[11]= |  |
离散实变换对于数据或图像压缩来说是方便的.
| Out[12]= |  |
| Out[13]= |  |
仅从前面的20个模式(原始数据大小的1/10)重建正面. 振动是由于舍位造成的,并且也会出现在图像处理的应用中.
| Out[14]= |  |