A Simple Example on the Application of the Bilinear Transform

Let's consider the following polynomial of the complex variable z
It could be the characteristic polynomial of a discrete-time LTI system.
We aim to infer the location of the polynomial 's roots, depending on the parameters a and b. Does any set of values for the parameters exist that guarantees obtaining polynomial roots with modulus (the magnitude) less than one? Or with the modulus equal to one? Or with the magnitude higher than unity?
A suitable strategy to obtain the answers to those questions relies on the application of the Bilinear Transform and then on the application of the Routh-Hurwitz theorem on the transformed new polynomial.

The Bilinear Transformation: a Recap

Screenshot 2023-10-19 at 22.16.47.png
Substitute
into , thus obtaining
and hence one gets
with suitable coefficients .
Given the expression of , how to compute the transformed polynomial using MATLAB?
% Initialisation
clear
clc
How to define the polynomial in MATLAB?
syms z a b w
assume(a, 'real');
assumeAlso(b, 'real');
assumptions
ans = 
Now, let's define the polynomial as a symbolic expression depending on the (symbolic) variable z
pz = z^2+a*z+b
pz = 
whos pz z w a b
Name Size Bytes Class Attributes a 1x1 8 sym b 1x1 8 sym pz 1x1 8 sym w 1x1 8 sym z 1x1 8 sym
How to perform the Bilinear Transform?
According to the general formulation above, the polynomial can be determined as follows
Using MATLAB, the polynomial is
q(w) = collect(simplify(expand(((w-1)^2) *subs(pz, z, ((w+1)/(w-1))))),w)
q(w) =