python fft绘图“;类型错误“;
当我绘制信号的FFT时,我得到了以下错误。代码从.txt文件中读取信号样本。 TypeError:无法根据“安全”规则将数组数据从dtype('S17')强制转换为dtype('complex128')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
#%% 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)