function [] = get_Q_matrix()
clear all;
close all;

p=[2*exp(j*pi/4) 2*exp(-j*pi/4)];
cp=poly(p);
figure;
zplane(1,cp);
title('rozlozenie polov prenosovej funkcie nestabilneho systemu');
figure;
freqz(1,cp);
title('frekvencne charakteristiky nestabilneho systemu');

Q1=get_Q_matrix(cp,2)
B=[cp(1:1); 0; 0]
A=Q1\B

Q2=get_Q_matrix(A',2)
AA=[A(1:1);0;0]
D=Q2\AA

figure;
zplane(1,D');
title('rozlozenie polov prenosovej funkcie stabilneho systemu');
figure;
hold
freqz(1,D/4);
title('frekvencne charakteristiky stabilneho systemu');

function [Q] = get_Q_matrix(B,m)
%vrati Toeplitzovu maticu, pre vstupny vektor koeficientov polynomu B 
%m je zelany stupen inverzneho polynomu k polynomu B

n=size(B,2)-1;

for s=0:m
    q(s+1)=0;
    for k=s:n
        q(s+1)=q(s+1)+(B(k+1)*B(k-s+1));
    end
end

for s1=0:m
    for s2=0:m
        Q(s1+1,s2+1)=q(abs(s1-s2)+1);
    end
end

return;
