fft的输出表示为正弦/余弦的傅立叶级数

时间:2015-07-06 20:33:33

标签: python fft

我想知道是否有人可以通过查看在coefficientssine函数系列中实际用作cosine的傅立叶变换的输出来帮助我更好地理解傅里叶级数

我有一些功能,我抽样4次得到[0, 1, 0, 1], therefore N == 4。我如何将其表达为傅里叶级数?使用numpy,fft给了我...... [ 2.+0.j, 0.+0.j, -2.+0.j, 0.+0.j]基本上,我需要看到这个的扩展,而不是总结符号,只是因为否则我会有一个恐惧引起的混乱的头脑。通过扩展,我的意思是sin(something * x) + cos(something * x) + ...

2 个答案:

答案 0 :(得分:1)

我猜你正在寻找这样的东西:

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_reconstructed==x。现在,您可以转到DFT的页面,尤其是this等式,并根据上面的示例了解求和符号。

答案 1 :(得分:1)

离散傅立叶变换(DFT)与傅里叶级数can be summarized as follows之间的关系,

  

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

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

因此,在实践中,当您需要DFT时,请使用scipy.fftpack.fft,而傅里叶级数系数​​可以使用a direct summation in python计算。关于这两个概念的在线文献很多,但不要混淆这两个概念,因为它可能会让人感到困惑,而不是有用。