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

AI Thread Summary
The discussion revolves around simulating ultrasound signal processing using Python's Scipy library, specifically the function scipy.signal.lsim2. The user seeks assistance with deriving the Z-transform of a transfer function from a given differential equation related to the processed signal (us) and the signal sent by the probe (ue). The user starts with a differential equation and transitions to a discrete form using a Taylor series approach, but struggles with obtaining the sequence equivalent of the transfer function. Key points include the understanding that the Z-transform is a discrete version of the Laplace transform and the application of the convolution theorem, which allows for the generation of the transfer function. The final goal is to solve for the Z-transform of the transfer function, denoted as Hz, using the established relationships from the differential equation.
hugo_faurand
Messages
62
Reaction score
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
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
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...

Similar threads

Replies
3
Views
2K
Replies
4
Views
1K
Replies
1
Views
3K
Replies
5
Views
3K
Replies
13
Views
9K
Replies
18
Views
9K
Back
Top