如何使用python sympy进行z变换?

问题描述 投票:0回答:3

z变换在信号处理中非常重要。我可以在sympy教程中找到傅里叶、拉普拉斯、余弦变换等。但我不知道如何使用 sympy 进行 z 变换。你能告诉我该怎么做吗?

python sympy signal-processing lcapy
3个回答
3
投票

有一个很好的包(lcapy),它基于 sympy,但可以进行 z 变换和逆运算以及更多其他时间离散的东西。

https://pypi.org/project/lcapy/

只要尝试一下

import lcapy as lc
from lcapy.discretetime import n

xk=n*2**n*lc.exp(3j*n)
X0=xk.ZT()
print(X0)

1
投票

SymPy 尚未将其实现为变换函数,但您可以直接表示求和。然而,经过一番使用后,它看起来实际可以计算的总和是有限的。这是一个有效的示例:

>>> pprint(summation(n*z**-n, (n, -oo, oo)))
⎧      z           1           │1│
⎪- ───────── + ──────────  for │─│ < 1 ∧ │z│ < 1
⎪          2            2      │z│
⎪  (-z + 1)      ⎛    1⎞
⎪              z⋅⎜1 - ─⎟
⎪                ⎝    z⎠
⎪
⎨        ∞
⎪       ___
⎪       ╲
⎪        ╲      -n
⎪        ╱   n⋅z                 otherwise
⎪       ╱
⎪       ‾‾‾
⎩      False

0
投票

我在此处添加了两条带有代码示例的注释,说明如何在此处进行转换,请注意它们并不总是有效。

https://github.com/sympy/sympy/issues/12502

© www.soinside.com 2019 - 2024. All rights reserved.