% Schur Stability Test of 2-D Polynomials
%
% Copyright (C) Yang XIAO, Beijing Jiaotong University, Aug.25, 2007, E-Mail: yxiao@bjtu.edu.cn.
%
% The stability of 2-D discrete systems (2-D IIR filters and 2-D ARMA models) can be determined by
% the Schur stability of characteristic polynomials of the systems [1-5].
% The characteristic polynomials can be expressed as a 2-D Polynomial in s-z domain:
% B(z1,z2)=[1 z1^(-1) z1^(-2)]*B*[1 z2(-1) z2^(-2)]'.
% This program derived from the main results of Ref. [1-5], and it can test the Schur stability of 2-D Polynomials.
%
% Ref:
% [1] XIAO Yang; Unbehauen, R.; New stability test algorithm for two-dimensional digital filters,
% IEEE Transactions on Circuits and Systems I: Fundamental Theory and Applications, Volume 45,
% Issue 7, July 1998 Page(s):739 - 741
% [2] Yang Xiao; Unbehauen, R.; Xiyu Du; A finite test algorithm for 2D Schur polynomials based on
% complex Lyapunov equation, Proceedings of the 1999 IEEE International Symposium on Circuits
% and Systems, 1999. ISCAS '99. Volume 3, 30 May-2 June 1999 Page(s):339 - 342 vol.3
% [3] Yang Xiao; Unbehauen, R.; Xiyu Du; A necessary condition for Schur stability of 2D polynomials
% [digital filters], Proceedings of the 1999 IEEE International Symposium on Circuits and
% Systems (ISCAS '99), 1999. Volume 3, 30 May-2 June 1999 Page(s):439 - 442 vol.3
% [4] Yang Xiao; Unbehauen, R.; Xiyu Du; Schur stability of polytopes of bivariate polynomials,
% Electronics, The 6th IEEE International Conference on Circuits and Systems, 1999. Proceedings of
% ICECS '99. Volume 3, 5-8 Sept. 1999 Page(s):1269 - 1272 vol.3
% [5] Y. Xiao, Stability Analysis of Multidimensional Systems, Shanghai Science and Technology Press, Shanghai, 2003.
% The papers [1-4] can be downloaded from Web site of IEEE Explore.
% 2-D Polynomial: B(z1,z2)=[1 z1^(-1) z1^(-2)]*B*[1 z2^(-1) z2^(-2)]'
clear;
i=sqrt(-1);
M=512; % The number of discrete frequency points on unit circle
w=0;
for n=1:M
w=pi*n/M;
z=exp(j*2*pi*(n-1)/M); %
%---------------------------
% stable
% a=[12 6 0;
% 10 5 0;
% 2 0 1]
%-----------------------------
%stable
% B=[1 -1.2 .5;
% -1.5 1.8 -.75;
% .6 -.72 .2719];
%---------------------
%unstable
B=[1 -1.2 .5; % The coefficients of a 2-D polynomial
-1.5 1.8 -.75;
.6 -.72 .269];
%---------------------
bb=B*[1 z^(-1) z^(-2)]';
%aa=a*[1 z z^2 z^3]'
B0=bb(1);
B1=bb(2);
B2=bb(3);
%A=abs(b0)-abs(b1);
BZ=[B0 B1 B2]; % The complex varible polynomial coefficients B0(z1), B1(z1) and B2(z1) of the 2-D polynomial
x(n)=max(abs(roots(BZ)));
if x(n)>1
e=x(n);
end
end
xmax=max(x)
plot(x)
fprintf('Display the maximum absolute value of the roots of the given polynomial\n')
if xmax>1
fprintf('The 2-D polynomial is not Schur stable')
else
fprintf('The 2-D polynomial is Schur stable')
end
plot(x)
ylabel('The maximum absolute value of the roots of the polynomial');
xlabel('The discrete frequency points on unit circle');