数值拉普拉斯变换python

Mav*_* M. 2 python numpy transform

我有一个时间序列的实验数据x = x(t)在两个numpy数组中,x表示观察值,t表示观察值的时间值.是否有一个numpy函数或方法可以评估时间序列的拉普拉斯变换?先感谢您.

Ste*_*ele 6

我认为你应该考虑f(x)的拉普拉斯变换作为Gamma(x)f(x)e ^(bx)的傅里叶变换,其中Gamma是一个阶梯函数,它删除积分的负部分和e ^(bx)构成复指数的实部.有一种众所周知的傅立叶变换算法,称为"快速傅立叶变换"(FFT),您可以在Python和Matlab网站上找到很多教程.

在这里,我给出一个简短的代码,用于计算阶跃函数的傅里叶变换,例如y = 0,用于| x | 对于| x |,> 1 y = 1 <1

傅里叶变换可以分析计算为sin(pi x)/(pi x).

import matplotlib.pyplot as plt
import scipy
from scipy.fftpack import fftshift
import numpy as np

x = np.arange(-3, 3, 0.01)
y = np.zeros(len(x))
y[150:450] = 1
plt.plot(x, y) # plot of the step function

yShift = fftshift(y) # shift of the step function
Fourier = scipy.fft(yShift) # Fourier transform of y implementing the FFT
Fourier = fftshift(Fourier) # inverse shift of the Fourier Transform
plt.plot(Fourier) # plot of the Fourier transform
Run Code Online (Sandbox Code Playgroud)

请注意,在应用快速傅立叶变换之前和之后,您必须使用fftshift命令,该命令将绘图的左侧移动到右侧,反之亦然.这不是你问题的完整答案,但我相信这是一个好的开始.

  • 我认为拉普拉斯变换(L)用傅里叶变换(FT)表示是不正确的。该因子应为 Gamma(x)f(x)exp(x(s+is))。傅立叶变换已有一个 exp(ist),需要转换为 exp(sx)。 (2认同)