离散傅里叶变化是傅里叶变换在时域和频域上都呈现离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在应用中DFT就是根据离散点找出信号的频率,幅值,相位等信息。
如下图有一个有40个采样点的信号,我们可以看出该信号有两个周期,那么计算机该如何计算出该信号在40个采样内振动了几个周期呢。下文中我们将所要求的的该信号称作原信号。
计算机会使用一种暴力方法计算出该信号的数据。首先设信号函数为,对于40个信号点,计算机会选出40个基信号(40是原信号的采样数),其中第一个信号在40个采样中振动0个周期,函数为。第二个信号在40个采样中振动1个周期,信号函数为。第三个信号振动2个周期。以此类推,得到如下图所示的40个基信号。其中第40个信号振动了39个周期,每个周期只有一个采样点。
接下来将所有基信号与原信号进行比较。使用公式计算出每个基信号与原信号的相关程度,其中得到的数值越大,两个信号越相关。
具体计算过程如下图,这里我们计算基信号7和原信号的相关程度,右边信号是基信号7的信号图。计算两信号的相关程度X[7],公式如下。
通过计算得出X[2]=X[38]=20,X[0]=X[1]=X[3]=X[4]=..........=X[37]=X[39]=0,可以看出基信号2和基信号38与原信号有相关性,其余基信号与原信号不相关。
这里我们将基信号数取为k,得到如下公式,
下图是DFT的公式,通过观察我们可以看出,DFT比求得到的公式多个
这是因为只用余弦积进行比较可能会损失一些相位信息,如下图,若原信号函数为,可以得到X[2]=X[38]=10。
但当原信号为 时也会得到同样的结果。因此无法判断原信号的相位偏移还是幅值减半。
因此需要计算原信号与sin的相关性。将sin的40个基信号全部设出来,并将sin基信号与原信号计算相关性。
计算后得到如下结果,
将X[2]和X[38]写成复数形式得到,由该复数可以得到复数的模和相位角。 那么该相位角即为原信号的相位角。为什么由信号相关可以得到相位角信息呢?
我们来观察一下相关程度的公式
可以看到该公式是将原信号与基信号做了內积,与余弦信号做內积相当于将原信号投影在了余弦轴上。与正弦信号做內积相当于将原信号投影在了正弦轴上。由因为正余弦相互正交,所有相关程度可以看做是原信号在正余弦平面上的投影。即为模,反正切函数即可算出相位角。
接下来我们计算原信号一个周期的频率。
其实只要给定了采样频率(单位时间内的采样数)即可算出信号的频率。
这里我们设采样频率为,已知采样数为N,那么一个周期N个采样点的采样时间为N/,k个周期N个采样点在单位周期内的采样时间为N/k,那么频率为k/N。该频率可以
由此可以将每个基信号的采样频率计算出来。
将所有基信号与原信号进行比较,找到最佳基信号,已知最佳基信号早单位周期内的频率为最大(单个周期内采样点最多)。下图计算得到基信号2与基信号38的采样频率,基信号38的采样频率更大。
但我们由奈奎斯特采样定理可知,若要保持一个信号的信息,那么信号一个周期内至少要采两次样,所有当k>20时很可能错误 。我们所求的原信号与基信号2高度匹配。
接下来我们看个例子,首先对信号设函数,找出与原信号最匹配的基信号,算出复数。计算频率,相位等数据,得到与原信号函数
参考链接
本文参考了以下内容