簡體   English   中英

WAV FFT:切片索引必須是整數

[英]WAV FFT: Slice indices must be integers

我正在嘗試對 .wav 文件進行一些分析,我從以下問題( Python Scipy FFT wav 文件)中獲取了代碼,它似乎提供了我所需要的內容,但是在運行代碼時我遇到了以下錯誤:

類型錯誤:切片索引必須是整數或無或具有索引方法

這發生在我的代碼的第 9 行。 我不明白為什么會發生這種情況,因為我認為 abs 函數會使它成為一個整數。

    import matplotlib.pyplot as plt
from scipy.fftpack import fft
from scipy.io import wavfile # get the api
fs, data = wavfile.read('New Recording 2.wav') # load the data
a = data.T[0] # this is a two channel soundtrack, I get the first track
b=[(ele/2**8.)*2-1 for ele in a] # this is 8-bit track, b is now normalized on [-1,1)
c = fft(b) # calculate fourier transform (complex numbers list)
d = len(c)/2  # you only need half of the fft list (real signal symmetry)
plt.plot(abs(c[:(d-1)]),'r') 
plt.show()
plt.savefig("Test.png", bbox_inches = "tight")

abs()不會使您的數字成為整數。 它只是將負數變成正數。 len(c)是一個奇數時,您的變量d是一個以x.5結尾的x.5

你想要的可能是round(d)而不是abs(d)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM