主要用于地震动处理种的代码:
- 傅里叶谱
def myfft(inp,delta): #输入的x为竖向的array from scipy.fftpack import fft,ifft inp=np.array(inp).reshape(-1,1) inpf=np.fft.fft(inp,axis=0) #默认的是对行向量fourier变换,所以此处要定义下轴 inpf=inpf*2/inp.shape[0] inpf2=inpf[0:int((inp.shape[0]+1)/2)]#取一半 n_points=inpf2.shape[0]#地震波点数 frequency=1/delta fseries=np.linspace(0,frequency/2,n_points) # plt.plot(fseries,inpf2) return inpf2,fseries
- 功率谱
def mypowverspectra(inp,delta): from scipy.fftpack import fft,ifft inp=np.array(inp).reshape(-1,1) inpf=np.fft.fft(inp,axis=0) #默认的是对行向量fourier变换,所以此处要定义下轴 inpf=inpf*2/inp.shape[0] inpf2=inpf[0:int((inp.shape[0]+1)/2)]#取一半 inpf2=np.abs(inpf2)**2 n_points=inpf2.shape[0]#地震波点数