Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python fft绘图“;类型错误“;_Python_Matplotlib_Plot_Fft_Ifft - Fatal编程技术网

python fft绘图“;类型错误“;

python fft绘图“;类型错误“;,python,matplotlib,plot,fft,ifft,Python,Matplotlib,Plot,Fft,Ifft,当我绘制信号的FFT时,我得到了以下错误。代码从.txt文件中读取信号样本。 TypeError:无法根据“安全”规则将数组数据从dtype('S17')强制转换为dtype('complex128') #%% Import libraries import numpy as np from scipy import signal from scipy import fft,log10 fr

当我绘制信号的FFT时,我得到了以下错误。代码从.txt文件中读取信号样本。 TypeError:无法根据“安全”规则将数组数据从dtype('S17')强制转换为dtype('complex128')

         #%% Import libraries
           import numpy as np
           from scipy import signal
           from scipy import fft,log10
           from scipy import ifft
           import matplotlib.pyplot as plt
           import scipy.fftpack

           #%%  Import signal
           text_file = open("sample.txt", "r")
           a=text_file.readlines()
           plt.figure(1)
           plt.plot(a)
           fs=1000
           t=np.arange(0,(len(a)))/float(fs)
           plt.figure(201)
           plt.plot(t,a)
           plt.title('Signal')
           plt.show()
#%% Plot FFT
n=len(a) # Number of samples
k=np.arange(n)
T=n/float(fs) # Sample spacing
frq=k/T
frq = k/T # two sides frequency range
frq = frq[range(n/2)] # one side frequency range

Y = np.fft.fft(a)/n # fft computing and normalization
Y = Y[range(n/2)]

plt.figure(203)
plt.plot(frq,np.abs(Y),'r')  # plotting the spectrum
plt.show()

a=text\u file.readlines()
将为您提供字符串列表。您需要将字符串转换为数字(可能是浮点数),然后才能执行
plot(a)
fft(a)


错误指的是哪一行?文件“C:\Python27\lib\site packages\numpy\fft\fftpack.py”,第79行,在函数(a,wsave)的哪一行代码中?为什么不使用
np.genfromtxt
np.loadtxt
将文本文件读入浮点数组,而不是
readlines()
a=text_file.readlines()
a = [float(x) for x in a]
plt.figure(1)
plt.plot(a)
Y = np.fft.fft(a)