Python 用正弦/余弦表示为傅里叶级数的fft输出

Python 用正弦/余弦表示为傅里叶级数的fft输出,python,fft,Python,Fft,我想知道是否有人能帮助我更好地理解傅里叶级数,通过观察傅里叶变换的输出,它实际上被用作正弦和余弦函数序列中的系数 我有一些函数,我采样4次得到[0,1,0,1],因此N==4。如何将其表示为傅里叶级数?使用numpy,fft给我…[2.+0.j,0.+0.j,-2.+0.j,0.+0.j]基本上,我需要看到它的扩展,而不是求和符号,因为否则我会有一个恐惧引起的多云思维。所谓扩展,我指的是sin(something*x)+cos(something*x)+.我想你在寻找这样的东西: from nu

我想知道是否有人能帮助我更好地理解傅里叶级数,通过观察傅里叶变换的输出,它实际上被用作
正弦
余弦
函数序列中的
系数


我有一些函数,我采样4次得到
[0,1,0,1],因此N==4
。如何将其表示为傅里叶级数?使用numpy,fft给我…
[2.+0.j,0.+0.j,-2.+0.j,0.+0.j]
基本上,我需要看到它的扩展,而不是求和符号,因为否则我会有一个恐惧引起的多云思维。所谓扩展,我指的是sin(something*x)+cos(something*x)+.

我想你在寻找这样的东西:

from numpy.fft import fft
x = array([ 0.,  1.,  0.,  1.])
y = fft(x)

#first rescale it
nfft = len(x)
y /= nfft

n = arange(0,4)
# notice that y[1] and y[3] are identically zero:
x_reconstructed = y[0] +y[2] * cos(2*2*pi/nfft*n)

现在你有了
x\u==x
。现在,您可以转到DFT页面,特别是方程式,并了解基于上述示例的求和符号。

离散傅里叶变换(DFT)和傅里叶级数之间的关系

周期信号x的傅里叶级数系数由x的一个周期的DFT除以N给出,N也是每个周期中的样本数

这意味着,只有当信号周期等于其采样率的
N
倍时,傅里叶级数和DFT才相关,一般情况下并非如此


因此,在实际中,当您需要DFT时,请使用
scipy.fftpack.fft
,而傅里叶级数系数可以使用。网上有很多关于这两个概念的文献,但不要混淆这两个概念,因为这可能会让人困惑,而不是有所帮助

我不同意。如果需要离散采样函数的傅里叶级数系数,请使用
fft
计算
dft
:它比任何直接求和算法优化得多。从
dft
的系数中提取傅里叶级数系数是小菜一碟,正如我在上面所暗示的。哈哈,如果你很彻底,看看你链接的问题中的其他答案,我现在意识到其中一个答案是我的,实际上详细阐明了DFT和傅里叶级数系数之间的联系:-)@gg349是的,FFT得到了很好的优化,可以用来近似DFT。然而,正如在任何信号处理教科书中所介绍的那样,处理该主题的经典方法是:傅里叶级数->连续傅里叶变换(FT)->采样信号的傅立叶变换->DFT。我的观点是,尝试将DFT与傅里叶级数联系起来是一项非常重要的任务(采样和有限观察窗效应),有着基本的假设(只取一个周期,每个周期的采样数为整数),在学习DFT时可能最好避免。好吧,我想这是一个意见问题。我发现这个链接非常简单,并且是了解全局的必要条件。在任何情况下,对于仅在有限个点上定义的函数,直接求和都不是一种方法。2*2*pi/nfft*n在这种情况下是用来创建向量还是标量的?n是向量,因此该项将创建向量。