Python 3.x 如何使用python编写power specrtum代码?

Python 3.x 如何使用python编写power specrtum代码?,python-3.x,Python 3.x,我写了一个程序,试图对一组数据进行功率谱分析。为了测试它,我创建了一个包含1000个20个正弦波样本的列表,我知道这些正弦波的频率。这失败了,没有给出预期的结果。这是一个通过dft计算功率谱的程序,未排序的_v是术语列表 import cmath N = len(unsorted_v) for k in range(N): a = 0 for n in range(N): a += unsorted_v[n] * cmath.exp(-2j * cma

我写了一个程序,试图对一组数据进行功率谱分析。为了测试它,我创建了一个包含1000个20个正弦波样本的列表,我知道这些正弦波的频率。这失败了,没有给出预期的结果。这是一个通过dft计算功率谱的程序,未排序的_v是术语列表

import cmath

N = len(unsorted_v)

for k in range(N):

     a = 0
     for n in range(N):
         a += unsorted_v[n] * cmath.exp(-2j * cmath.pi * k * n * (1/N))
     b = (abs(a)**2)*(1/N)
     print(k, ":", b)

感谢您对我做错了什么以及如何纠正错误所给予的帮助。

它是如何失败的?结果如何?需要更多的信息。它应该只给出频率为8、13、14、18、23、25、32、33、38、41、48、51、64、73、79、82、85、91和100 hz的非零答案,由sin之和(#*2*pi/期望频率)生成。它给了我一个非零的答案,在1到100之间的所有频率,在125,然后逐渐变小到零的所有其他连续频率。