根を伝達関数 H(z) にプロットし、単位円を重ねて、すべての点を表示するのに十分なスペースを確保する必要があります。ゼロ = [z0 z1 z2...]、極 = [p0 p1 p2] の形式で与えられると、H(z) から根を取得できます。Matlab の roots 関数を使用して、極とゼロの位置を取得できます。これまでの私のMatlabコードは
function zplot(b, a)
b_roots = roots(b);
a_roots = roots(a);
hold on
rectangle('Position',[-1 -1 2 2],'Curvature',[1 1]);
plot(b_roots,'x blue');
plot(a_roots,'o blue');
axis %need axis to be equal and +10percent of maximum value
hold off
end
ここまでで、根と単位円をプロットできましたが、1) 互いに等しく、2) 最高値より 10% 大きくなるように軸を調整する必要があります。この部分をどのように実行すればよいかわかりません。変数 lim_max = max(b_roots,a_roots) を作成しようとしましたが、最終的に配列になり、 axis([-lim_max lim_max -lim_max lim_max]) 関数では機能しませんでした。入力の変化に合わせてプロットを +10% にスケーリングする必要があります。
補足事項 (必須ではありません): プロットすると円のように見える方法はありますか? 画面を再調整することはできますが、それを簡単に行う方法があれば教えてください。