我写了一个程序试图制作一组数据的功率谱。为了测试它,我创建了一个包含20个正弦波的1000个样本的列表,其频率我知道以便测试它。这失败了,没有给出预期的结果。这个程序应该通过dft计算功率谱,unsorted_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)
感谢您提供有关我做错了什么以及如何解决问题的任何帮助。