python进行实数fft

from scipy.fft import fft,fftfreq,rfft,hfft,rfftfreq
import numpy as np
import matplotlib.pyplot as plt
N = 3001
xf=np.zeros((N,2))
#print(xf)

#生成波形
xf[:,0]=np.linspace(0,10*np.pi,N)
#print(np.sin(xf[:,0]))
xf[:,1]=np.sin(xf[:,0])
#print(xf)

#
Z = rfft(xf[:,1])#傅里叶变换
#print(type(Z))
#print(Z)
x=rfftfreq(N,10*np.pi/N)#获取傅里叶变换的横坐标(数量,间隔)(生成的数量是N//2)
k=plt.plot(x, np.abs(Z))
plt.show()

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注