DFT离散傅里叶变换【针对工科生,基础版本】

傅里叶分析告诉咱们任何周期信号都可以被表示成一组正弦(这里正弦包括余弦)函数的线性组合

而离散傅里叶变换是想告诉咱们这些线性组合的各个分量的频率、幅值、还有相位

那它是如何做到的呢?

首先我对两个周期的余弦函数进行40次采样,任务是我怎么知道这40次采样里面余弦函数振动了多少次呢?

  • 对人类而言我们可以直接数出来有俩周期
  • 对计算机而言只能通过暴力破解

那么计算机是怎么暴力破解的呢?

选四十个基信号,对于0 periods in 40 samples这里图画错了,应该是0~30而不是1~40。

比如 x periods in 40 samples,意思是对这 x peirods 信号就行40次采样的意思,理解这句话就方便理解下面的解释了 

可能大家会对x[n]=cos(2π.39n/40)这个公式的图疑惑,以下为解释(欢迎指正):

  • cos(2PI-x) = cos(x)    所以图像相同
  • 图像一样,可以理解为实际上如果连续的话,是密密麻麻的震动,但是因为你是定时间采样,所以采样点跟上面的看起来一样
  • 相当于一个周期采样一个点,连起来放到一张图里就这样了,因为取了39个采样,每个采样的点拼在一起正好是cos

好现在我们得到这40个基信号(用matlab很好生成) ,然后我要做什么呢?图中红字所表示

相关函数Correlation(x,y)可以是向量(序列)的内积还可以是卷积等等(不错的值得学习调研的地方)

就两个序列X=[x1,...,xn]与Y=[y1,...,yn]的x1y1+...+xnyn这个和越高,代表相关性越高,这是相关函数最简单的一种

然后我们original signal与这40个Basic signals都去做一下这个相关程度的比较,我们来详细看一下这个比较过程,我们用X数组来储存相关值

在这个例子中计算出来发现X[2]=X[38]=20,其他基信号与原信号的内积为0,然后我们再可视化一下这个结果,可能我们知道X是什么意思了,但是还是不知道X代表那个频率,不着急,咱们继续往下看

 这里咱们用把公式Generalize一下得到General notation,DFT Formula的指数看着有点复杂咱们用欧拉公式e^{i\theta }=cos\theta + isin\theta展开表达出来,这里General notation与DFT Formula的实数项是一致的,那为什么我们需要复数项呢?

如果原信号只与余弦基做比较,会丢失相位信息,举个栗子,正弦函数图像相位左加右减,我们把原信号左移π/3,用刚才的方法重新计算一遍X数组,X[2]与X[38]依然是最大的但是变成了10,其他值依然为零,再把这个图可视化一下,峰值的位置还是一样的,大概趋势是差不多的,如果我们把原信号的只做幅值减半,不做相位偏移通过刚才一样与40个基信号的计算也能得到同样的X数组,所以我们通过X数组反推回去,不知道原信号是有了相位偏移还是幅值减半,换句话说我们是损失了信息。

怎么解决呢?我们找了一组正弦基,与他们也比较一下,原信号与40个余弦基比较产生了X_{cos}数组,与40个正弦基比较也产生了X_{sin}数组

X_{sin}[38] 应该为-10\sqrt{3},相应后面的X[38]也要改成10-10\sqrt{3}

这个时候我再把X写成一个复数的话X=Xcos+jXsin,复数的模刚好是20,相位刚好是\frac{\pi }{3},这样就可以重建我们的原信号

虽然我们知道X_{cos}X_{sin}是原信号与Cos、Sin基信号相关程度的结果储存在数组,但为什么两个相关程度这么一算就得到原信号的模和相位呢?背后的数学其实很深,有泛函分析,对工科生而言感兴趣可以继续往下研究。

我们一直在讨论的结果都是一个一个的离散点,还不知道这些离散点的频率呢

其实很简单,刚才是用40个采样点对两个周期进行采集,没有提到采样频率f_{s},只要我给一个f_{s}

这个X所对应的频率立刻就可以算出来,在40个采样内,振动了K个周期的那个信号的频率我就知道了,举个栗子,f_{s}=100Hz,那么40个采样就是40\cdot \frac{1}{100}=0.4s,前提我知道我采集的是两个周期的信号,那么该信号周期T=0.2s,那么该信号频率f=5Hz

傅里叶变换的思想是,刚原信号不是和40个基信号做了比较吗,那么我跟那个基信号长的最像,那么我那个频率的分量就越大,比如现在我想知道X[k]代表的频率多少

采样时长:N/fs,在这个时间长度内经过了k个周期,则一个周期的时间为:N/(kfs),求倒数就是频率了

这样每一个X对应的频率都知道了

回头看看我们一直说的那个例子,通过以上流程得到我们的信号是由频率为200Hz与3800Hz的且幅值都为20的余弦信号构成, 但其实3800Hz是一个不准确的值,因为我们知道在40个采样内,它振动了38个周期的话,我们只采样40次是损失了信息的,所以3800Hz这个基信号是不准确的,由香农采样定理可知(一个周期至少采样两次),所以说,如果在40个采样内振动20个周期,刚好是采样两次( fs=2fmax),40个采样内振动超过20个周期的话,那么我每个周期就不足两次了,这样超过X[20]的采集到的值都是不对的,所以说,通常来说人们只关心实信号前面的一般,图中土色表示

香农采样定理,又称奈奎斯特采样定理,是信息论,特别是通讯与信号处理学科中的一个重要基本结论。

为了不失真地恢复模拟信号,采样频率应该大于等于模拟信号频谱中最高频率的2倍。  fs\geqslant 2fmax

参考资料

离散傅里叶变换零基础入门-中文1(针对工科生,无需连续傅立叶变换知识)_哔哩哔哩_bilibili

工科生以最快的速度理解离散傅立叶变换(DFT)_哔哩哔哩_bilibili

猜你喜欢

转载自blog.csdn.net/weixin_43332715/article/details/124685308