一道拉普拉斯逆变换练习题和对应的数值计算方法

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一道拉普拉斯逆变换练习题和对应的数值计算方法相关的知识,希望对你有一定的参考价值。

摘 要: 针对于一些不太适合因式分解或者留数方法进行Laplace逆变换的问题,通过数值求解可以比较方便获得时域波形。本文给出了利用梯形积分方法进行Laplace逆变换,对于指数衰减周期方波进行逆变换。通过结果也指出了原来题目中使用exp(-3t)进行衰减所能够获得波形与题目给定的相差甚远。

关键词 拉普拉斯变换Laplace逆变换数值计算梯形积分

 

§01 习题内容


下面信号是有指数衰减信号 e − 3 t e^{ - 3t} e3t和一个周期矩形信号 x p ( t ) x_p \\left( {} t\\right) xp(t) 的相乘结果。求:信号 x ( t ) x\\left( t \\right) x(t) 的拉氏变换。

x p ( t ) = ∑ n = 0 + ∞ u ( t − 2 n ) − u ( t − 2 n − 1 ) x_p \\left( t \\right) = \\sum\\limits_{n = 0}^{ + \\infty } {u\\left( {t - 2n} \\right) - u\\left( {t - 2n - 1} \\right)} xp(t)=n=0+u(t2n)u(t2n1)


 

§02 典求解方法


解:周期矩形脉冲信号的周期为2,第一个周期内的信号为: x 1 ( t ) = u ( t ) − u ( t − 1 ) x_1 \\left( t \\right) = u\\left( t \\right) - u\\left( {t - 1} \\right) x1(t)=u(t)u(t1)

它对应的拉普拉斯变换为: X 1 ( s ) = 1 s ( 1 − e − s ) X_1 \\left( s \\right) = {1 \\over s}\\left( {1 - e^{ - s} } \\right) X1(s)=s1(1es)

周期矩形信号的拉普拉斯变换为:
X p ( s ) = X 1 ( s ) 1 − e − 2 s = 1 s ( 1 − e − s ) 1 1 − e − 2 s = 1 s ( 1 + e − s ) X_p \\left( s \\right) = {{X_1 \\left( s \\right)} \\over {1 - e^{ - 2s} }} = {1 \\over s}\\left( {1 - e^{ - s} } \\right){1 \\over {1 - e^{ - 2s} }} = {1 \\over {s\\left( {1 + e^{ - s} } \\right)}} Xp(s)=1e2sX1(s)=s1(1es)1e2s1=s(1+es)1

再根据s与平移性质: X p ( s ) = 1 ( s + 3 ) ( 1 + e − ( s + 3 ) ) X_p \\left( s \\right) = {1 \\over {\\left( {s + 3} \\right)\\left( {1 + e^{ - \\left( {s + 3} \\right)} } \\right)}} Xp(s)=(s+3)(1+e(s+3))1

 

§03 拉普拉斯变换


这个题目如果从时域波形求对应的拉普拉斯变换,根据上述过程就可以。但如果从 X ( s ) X\\left( s \\right) X(s)反过来,求对应的时域信号,使用留数方法因式分解法都不太容易。那么如何验证上述拉普拉斯变化是正确的呢?

1.逆Laplace数值计算

Laplace数值逆运算的讨论 讨论使用数值积分方法来求取信号Laplace逆变的方法。

对应的Laplace数值逆变换Python程序如下:

#------------------------------------------------------------
def invlt(t, fs, sigma, omiga, nint):
    omigadim = linspace(0, omiga, nint+1, endpoint=True)
    y = [(exp(1j*o*t) * fs(sigma+1j*o)).real for o in omigadim]
    y_left = y[:-1]
    y_right = y[0:]
    T = sum(y_right + y_left) * omiga/nint
    return exp(sigma*t) * T/ pi / 2

#------------------------------------------------------------
def fs(s):
    return 1/(s*s+1)

#------------------------------------------------------------
sigma = 0.2
omiga=200
nint=omiga*50

tdim = linspace(0, 2*pi* 3, 200)
ft = [invlt(t, fs, sigma, omiga, nint) for t in tdim]

在使用上述程序时,需要

  • 对变量sigma设置正确取值,它应该是最右边的极点对应的实部大一点;
  • 定义函数 fs(s)

2.本题参数

在本题中,极点包括:

  • 实轴上 -3 处极点;
  • 在虚轴上,每个2π有无穷多个极点;

所以 s i g m a = 0.1 sigma = 0.1 sigma=0.1

3.数值计算结果

按照原题给出的参数,绘制出 e − 3 t e^{ - 3t} e3t衰减下波形。下面是对应的fs(s)函数定义。

def fs(s):
    return 1/((s+0.2)*(1+exp(-(s+0.2))))

变换出的结果如下。这与题目给定的示意图相差甚远。

▲ exp(-3t)衰减的脉冲方波信号

▲ exp(-3t)衰减的脉冲方波信号

不过自己分析一下也马上会明白,实际上由于 e − 3 t e^{ - 3t} e3t衰减过快,所以最终只剩下第一个周期半个波形,随后的波形都衰减接近0.

将原来的函数参数修改一下,将指数衰减修改为: e − 0.1 t e^{ - 0.1t} e0.1t。计算的波形如下图所示。这就与原题绘制的波形很接近了。

def fs(s):
    return 1/((s+0.1) * (1+exp(s+0.1)))

▲ exp(-0.1t)衰减的脉冲方波信号

▲ exp(-0.1t)衰减的脉冲方波信号

▲ exp(-0.2t)衰减的脉冲方波信号

▲ exp(-0.2t)衰减的脉冲方波信号

 

论讨论


针对于一些不太适合因式分解或者留数方法进行Laplace逆变换的问题,通过数值求解可以比较方便获得时域波形。本文给出了利用梯形积分方法进行Laplace逆变换,对于指数衰减周期方波进行逆变换。通过结果也指出了原来题目中使用exp(-3t)进行衰减所能够获得波形与题目给定的相差甚远。

 


■ 相关文献链接:

以上是关于一道拉普拉斯逆变换练习题和对应的数值计算方法的主要内容,如果未能解决你的问题,请参考以下文章

拉普拉斯变换求原函数

5.10 图上的傅里叶变换和逆变换

拉普拉斯变换-工程数学笔记

拉普拉斯变换和拉普拉斯定理的区别

傅里叶变换简介

拉普拉斯变换