我一直在使用psd()来计算.wav文件的功率谱密度。我已经向我的主管展示了它,并且他不希望它平均来计算Pxx:
每个段的| FFT(i)| ^ 2被平均以计算Pxx
他建议我使用PSD,但一次手动重叠一帧,而不是传递整个数据。我试过了,它看起来像这样:
def spec_draw(imag_array):
overlap_step = len(imag_array) / 128
temp = []
values = []
for x in range(0, len(imag_array), overlap_step-overlap_step/2):
try:
for i in range(0, overlap_step):
temp.append(imag_array[x+i])
except:
pass
values.append(psd(temp, sides='onesided'))
temp = []
print values
其中imag_array
是波形文件中的数据数组。我已经把它发给了他,并且他不太了解Python,因为他无法运行它,他无法调试它。这看起来是否正确?