sinwt的傅里叶变换_sin傅里叶变换公式
傅里叶级数是一种将任意波形分解为正弦波叠加的数学工具,以方波为例。
任意形状的方波,可以通过傅里叶级数展开,表现为正弦波的叠加。这种转换的最后结果就是其频谱图,而频谱图主要展示了每个正弦波的频率和振幅。值得注意的是,正弦波本身在频谱图中是不需特别标出的,因为频谱图默认基于正弦波进行展示。
那么,在计算机中如何实施傅里叶变换呢?
由于计算机无法直接处理时间上连续的信号,所以必须先将连续的波形进行离散化处理。也就是说,我们要把时间上连续的正弦波转化为计算机可以存储的一系列具体数字。完成这一步后,以最简单的正弦波为例,离散化后的波形如图所示。
接下来,我们通过傅里叶变换公式进行计算,从而绘制出正弦波的频谱图。周期函数展开为傅里叶级数的公式如下:
在公式中,我们需要注意到频率和振幅的关系,以及如何通过程序来计算傅里叶级数的系数。具体编程实现时,内层循环中,外层循环的频率f保持为一个固定值。例如,当f=1时,对于每一个取样点T,都会根据其cos和sin值来更新a(f)和b(f)。这个过程会重复250次,对应于从0HZ到249HZ的250个不同频率的正弦波。每一个频率的正弦波的振幅,都是由所有的取样点共同决定的。
这里有两个关键点需要理解。第一,频率f的变化范围为何与采样点数相同?这可以理解为,我们采样的点数决定了能够捕捉到的最大频率,即所有点在一个单位时间内的完成次数。第二,关于公式中的nf,在程序中其实是通过保持f=1而让n从0变到249来实现的,效果是相同的。
程序运行的结果如图所示。从图中我们可以看出,由于原信号中只包含一个频率为1、振幅也为1的正弦波,所以在频谱图中,只有频率f=1的地方出现了一根振幅等于1的直线,这说明我们的计算结果是正确的。如果原信号变得复杂,例如包含了多个正弦波成分,那么频谱图也会相应地变得复杂,但频谱分析的基本原理仍然是相同的。