【发布时间】:2019-09-29 08:06:34
【问题描述】:
我正在尝试绘制我的 wav 文件数据的频谱。我得到一个复数列表,通过使用较小的数字进行测试,我知道这些值是正确的。但是,我不知道如何绘制。我只知道我应该得到一些应该是对称的小条形图。但我的图表不是。下面是我的代码和当前情节。
from scipy.io.wavfile import read
import numpy as np
import matplotlib.pyplot as plt
import math
df = read('matches-4.wav')
data = np.array(df[1], dtype=float)[:, 1][2000:2512] # using right channel
def discrete_fourier_transformation():
c = []
for k in data:
summation = 0
for j in data:
summation += j * math.e ** (-1j * (2 * math.pi / len(data)) * j * k)
c.append(abs(1 / len(data) * summation))
return c
values = discrete_fourier_transformation()
plt.plot(values)
plt.show()
【问题讨论】:
-
第二,不确定你上面的意思。你能指出一个你试图制作的图表的例子吗?我主要看到功率谱绘制为对数对数,但您有时会看到对数线性或线性线性...
-
我第二个Jody,你为什么不用Numpy的
fft子模块:import numpy.fft as fft,有什么理由吗?
标签: python matplotlib scipy fft