Help with the Python package Scipy and the Z-transform please

In summary, the conversation discusses using the Python package Scipy and the function [scipy.signal.lsim2] to simulate signal processing for an ultrasound scan. The problem lies in finding the Z-transform of a sequence, which is necessary for using the function. The conversation delves into the use of Laplace and Z-transforms and their relationship, and ultimately seeks help in obtaining the sequence equivalent of the transfer function.
  • #1
hugo_faurand
62
10
Hello everyone !

I am working on ultrasound scan and the processing of the signal received by the probe. I made the model I wanted and as I do not have an ultrasound scan machine I want to simulate the signal processing.
I will do that with the Python package Scipy and the function [scipy.signal.lsim2] But here is the problem. To use this function I need the Z-transform of a sequence... And I only know few things about Z-transform. I only know a bit about the Laplace Transform and I think I understood that the Z-transform is the discrete version of Laplace transform.
Let me explain what is my problem. Let's say us
is the processed signal and ue
the signal sent by the probe to the computer. I got this differential equation :

$$\frac{du_s(t)}{dt}=−\frac{u_e(t)}{τ}−\frac{u_s(t)}{τ′}$$What I need is the transfer function ##\frac{u_s(t)}{u_e(t)}##

. In the Laplace domain I know I would have :

$$\frac{Us}{Ue}=−\frac{1}{pτ+ττ′}$$I know that to apply the Z-transform I need to consider ue

and us as sequences by sampling them. So now I need to get the Z-transform. I consider the sequences ##(u_{sn})## and ##(u_{en})##. By using the Taylor series (I'm french, I don't know if it's the correct name) the differential equation become : Let's take ##n\in \mathbb{N}##$$ \frac{u_{s(n+1)}−u_{sn}}{T_e}=−\frac{u_{en}}{τ}−\frac{u_{sn}}{τ′}$$But then I don't know what to do to get the sequence equivalent of the transfer function. Could you help me please ? Also, I didn't know how to post this message, I thought that Computer Science section was the better placeThanks in advance.
 
Last edited by a moderator:
Technology news on Phys.org
  • #2
hugo_faurand said:
But then I don't know what to do to get the sequence equivalent of the transfer function.
The important thing here is that the Z-transform follows a convolution theorem (scroll down in the properties table until you see "convolution"), same as the Laplace transform. You can combine this with the finite difference properties (see "first difference forward" row in the table I mentioned) to generate a transfer function:

$$\frac{u_{s(n+1)} - u_{sn}}{T_e} = -\frac{u_{en}}{\tau} - \frac{u_{sn}}{\tau'}$$
$$\frac{(z-1)U_{sz} - z u_{s}(0)}{T_e} = -\frac{U_{ez}}{\tau} - \frac{U_{sz}}{\tau'}$$
The convolution property means that ##H_{z} = \frac{U_{sz}}{U_{ez}}##, so you just need to solve the above equation for ##H_{z}##. (Edit: ##H_{z}## is the z-transform of the transfer function.)
 
  • Like
Likes hugo_faurand and pbuk

FAQ: Help with the Python package Scipy and the Z-transform please

What is Scipy and how is it related to the Z-transform?

Scipy is a Python package that provides a collection of numerical algorithms and tools for scientific computing. The Z-transform is a mathematical tool used for analyzing signals and systems, and Scipy has a subpackage called "signal" that includes functions for performing Z-transforms.

How do I install Scipy and use it for Z-transforms?

To install Scipy, you can use a package manager like pip or conda. Once installed, you can import the "signal" subpackage and use the built-in functions such as "ztrans" to perform Z-transforms on your data.

Can Scipy perform inverse Z-transforms?

Yes, Scipy has a function called "iztrans" in the "signal" subpackage that can be used to perform inverse Z-transforms.

What other functions does Scipy offer for signal processing?

In addition to Z-transforms, Scipy has functions for filtering, spectral analysis, and interpolation of signals. It also has subpackages for optimization, integration, and statistics.

Are there any resources for learning more about Scipy and Z-transforms?

Yes, there are many online tutorials and documentation available for Scipy and Z-transforms. The official Scipy website, as well as various programming and scientific forums, can also provide helpful information and support.

Similar threads

Replies
3
Views
2K
Replies
2
Views
2K
Replies
2
Views
5K
Replies
4
Views
1K
Replies
1
Views
1K
Replies
1
Views
3K
Replies
5
Views
3K
Replies
13
Views
8K
Back
Top