Please provide code to perform the Z-transform of an impulse response.

44 views (last 30 days)
The attached test data contains the position t in the first column, the edge profile (signal value fx(t) at each position) in the second column, and the differential profile (difference between adjacent signal values of the edge profile, d fx(t)/dt) in the third column. The differential profile in the third column represents the shape of the impulse response, and I wish to perform its Z-transform.
The goal is to obtain the transfer function H(z), plot the pole-zero diagram, and evaluate the system by calculating the Modulation Transfer Function (MTF).
From my research, I understand there are two approaches. I would greatly appreciate guidance from experts on both methods.
① Estimate the impulse response, then perform the Z-transform following filter design procedures like the Prony method.
I would prefer to avoid using estimated responses if possible, so I'd like to know if there's a way to perform the Z-transform directly.
If an estimated response is absolutely necessary, I would appreciate guidance on methods like the Yule-Walker method.
② If the impulse response can be expressed as a rational function, use ztrans.
This time, the edge profile can be formulated using the following equation:
C0, σ, T, γ, λ are constants (currently considering values of 500, 0.5, 50, 5, 10^13 respectively).
Φ is the cumulative distribution function of the normal distribution, equivalent to normcdf in MATLAB.
However, even when using normcdf to express the function and applying ztrans, the output is not in a desirable form.
How should I code this?
Also, since this function expression is not a rational function, should I abandon the idea of using ztrans?
Translated with DeepL.com (free version)
M = readmatrix("Test.xlsx");
yyaxis left
plot(M(:,1),M(:,2))
yyaxis right
plot(M(:,1),M(:,3))

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!