matlab傅里叶变换(如何不用公式)

管理员 2024-11-25 10:11:52 0
如何不用公式,说清楚4种傅里叶变换?

班长聊通信原理 | 系列文章关注"班长"→主页→"文章"查看

文章不含公式,内含长图,收藏后观看效果更佳

引言

CFS,CFT,DTFT,DFS,DFT,FFT

上述6种傅里叶有何种联系与区别?

我在上学的时候,最先面对的是傅里叶级数CFS,还算勉强接受,毕竟《高等数学》有一章的内容就是"级数"。

如何不用公式,说清楚4种傅里叶变换?

图1 傅里叶级数展开动图;来源:自制

连续时间傅里叶级数CFS之后,便是傅里叶变换CFT了。

傅里叶变换CFT,就是将CFS的周期看作无穷大,勉强能懂。

但在这个时候,老师告诉我们,其实周期信号也可以用傅里叶变换CFT来表示,

因为有一个冲激函数δ的存在。

好吧,傅里叶变换统一了周期与非周期信号,也挺好!

直到Z变换、离散时间傅里叶变换DTFT、DFT、FFT的出现,自此逐渐地走向疯狂,沉迷于公式中无法自拔。

如何不用公式,说清楚4种傅里叶变换?

图2 上学时的6种傅里叶变换;来源:Pixabay自绘

时过境迁,那些公式一直在,改变的却是自己看待问题的角度。尤其当我工作中处处使用或者向别人讲解之时,感触尤为明显。

有三点Tips,希望对大家理解本文或者傅里叶变换有所帮助:

傅里叶变换是一种数学变换;不要沉迷于公式;让芯片或者计算机帮助我们傅里叶变换;

这三条TIP的释义,将贯穿文章始终。

从1张图说起

如果在这里,放入公式,很多读者必然弃之。

因为这和教材无异:从开始到结束,每一步如何得到,逻辑很强,“微观”层面自然不在话下。

但不适合宏观角度的剖析。

如何不用公式,说清楚4种傅里叶变换?

图3 方波信号分解成不同频率的正弦波

傅里叶级数,我不再赘述了,想要了解的,可以看我之前文章。

这里放一张用Matlab自制的一幅图。

如何不用公式,说清楚4种傅里叶变换?

图4 从傅里叶变换CFT到离散傅里叶变换DFT;来源:自制

这一幅图是这篇文章的核心。

(a)行是连续时间傅里叶变换CFT,值得注意的是,这其实是一个周期余弦函数cos,角频率ω1=2π/5,只不过图中只画出了[-10,10]的部分。

那么根据《信号与系统》的知识,周期余弦函数的傅里叶变换为冲激函数。

如何不用公式,说清楚4种傅里叶变换?

图5 周期余弦信号的傅里叶变换CFT;来源:网络

(a1)为余弦信号cos(2π/5t),(a2)为其傅里叶变换,在±2π/5均有一个冲激,幅度大小为π。

(b)行也是连续时间傅里叶变换CFT,也是余弦函数cos,(b1)和(a1)看起来一样。

但其实并不一样,(b1)是在(a1)的基础上,只截取[-τ/2,τ/2]区间的余弦cos函数,相对于无限长的周期余弦信号,加了一个窗,窗口的大小为τ。

(b1)的函数等于cos(2π/5t)乘以Gτ(t),Gτ(t)为窗函数,τ=20。

性质:

时域的乘积对应频域的卷积;与冲激函数δ(t-t0)信号相卷积的结果,相当于把函数本身延迟t0;

所以,在频域中(b2)的波形,就是将窗函数的频域波形,向±2π/5处平移。

如何不用公式,说清楚4种傅里叶变换?

图6 加窗余弦信号的傅里叶变换;来源:网络

我们知道计算机、数字信号处理器DSP都是处理离散信号的,而以上我们讨论的,还都是连续时间信号。

所以,必然会想到对数据进行抽样,或者说是采样,使其离散化。

那么,现在我们对(b1)的加窗余弦信号,进行采样,采样率为2Hz,采样间隔Ts = 0.5s。

为了便于看清楚采样的过程,我把原来的余弦信号用黑色虚线画出,采样的点用柱状线画出,见(c1)。

性质:

时域的离散化,频域就会周期化。时域的采样周期为ωs,且频域的延拓周期ws;

所以采样的结果,就是频域在(b2)的基础上进行周期延拓。

对于(c1)的离散时间信号求傅里叶变换,就是我们说的离散时间傅里叶变换DTFT。

求出的结果是(b2)基础上的周期延拓,必然是连续的、周期的函数,见(c2);

但此时,频域仍然是连续的函数。

所以,我们在对频域(c2)函数进行采样。

同理,频域的采样,必然造成时域函数的周期性延拓。

此时,时间域和频域都是周期的、离散的,这就是离散傅里叶级数DFS。

如果我们只取一个周期出来分析,就是离散傅里叶变换DFT。这个周期也称之为主值区间。

所谓的快速傅里叶变换FFT就是DFT的快速计算方法,不是什么新鲜玩意。

(d1)和(d2)就是DFT/FFT的过程,时域和频域均已离散化,适合计算机处理。

他山之石

之前的文章[1]中,也分析过这个过程,可以参照图7。

如何不用公式,说清楚4种傅里叶变换?

图7 四种经典的傅里叶变换;来源:郑君里信号与系统截图

图7中(a)为连续时间的傅里叶变换,(b)为周期信号的傅里叶级数,(c)为离散时间傅里叶变换DTFT;

可以看出对时域信号采样的过程,采样间隔为Ts;频域信号明细延拓为周期信号了,周期为fs=1/Ts;

(d)为离散傅里叶级数DFS,对频域采样,时域延拓。

如何不用公式,说清楚4种傅里叶变换?

图8 傅里叶之间的关系,来源BitArt

网络上很多小伙伴转载了图8,我查了下源头,为BitArt的博客,文末附上原文地址[2]。

图8说的也非常棒,他用一个三角形波形来做解释,看起来可能更加的直观。

至于我为什么选择余弦信号,因为我主要想让读者理解加窗的含义,也就是图7 a行和b行的区别。如果这个搞混淆了,那也谈不上理解其他的了。

图8(1)是一个模型三角形信号,对其进行傅里叶变换得到图8(2)。

因为计算机要处理数字信号,所以需要离散化的过程,离散离不开采样,图8(2)(3)就是采样的脉冲序列和频谱,根据上文所说的性质

我们可以得到图8(4)(5),此时图8(5)已经是离散信号了,所以图8(6)的变换,称之为离散时间傅里叶变换DTFT。

为什么叫离散时间?因为只有时间域是离散的,频域还不是。

同样的,对频域进行采样,采样序列为图8(8),时域波形为图8(7)

这次是频域相乘,时域卷积了。

我们取图8(10)周期序列的主值区间,并记为X(k),它就是序列x[n]的DFT(Discrete Fourier Transform),即离散傅立叶变换。

总结

如何弄清楚傅里叶变换?上文说了2000余字。总体的思想:傅里叶变换就是一种工具。

例如:在时域中无法区分的信号,或者不同用户的数据,我们可以在频域中区分或者解调出。

就像5G中使用FFT变换一样,把时间-频率划分成多个资源块,就像这样。

如何不用公式,说清楚4种傅里叶变换?

图9 5G时频资源网格;来源网络

最好自己动手。

打开Matlab(如果你有的话,没有的话私信),学会使用fft函数,当你能用fft函数画出自己想要的频谱时,当明白采样频率fs、采样点数N设置时,基本就明白了,不信可以试试哦。

参考文献

想要画出正确的频谱图,不是直接调用MATLAB FFT函数那么简单

[2]https://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html

看到这里,帮文章点个赞吧。

欢迎在评论区留言讨论哦。

相关文章