%図12.13
%
clear all; close all;

%G(s)の分子・分母多項式を与える
num = [ 0 0 1 ]; %分子多項式
den = [ 1 0.3 1 ]; %分母多項式

%伝達関数表現を与える
sys = tf( num, den ); %伝達関数表現

%角周波数の範囲を指定
w = logspace(-2, 1, 1000); %対数的に等間隔なベクトルの生成(10^{-2}から10^{1}で1000点)

%G(s)のゲインと位相の計算
[ gain phase w ] = bode( sys, w ); %ゲインと位相
gain = gain(:); % ゲインの配列を1次元ベクトルに変換
gaindB = 20*log10(gain); %ゲインをデシベル値に変換
phase = phase(:); % 位相の配列を1次元ベクトルに変換

%図12.13のプロット
subplot(2,1,1) %複数の図を並べるためのコマンド.2行1列の1行目という意味
semilogx(w, gaindB); %ゲイン線図をプロット
xlim([10^(-2),10^1]) %横軸(角周波数)の範囲の指定
ylim([-40 20]) %縦軸の範囲の指定
yticks([-40 -30 -20 -10 0 10 20]) %縦軸の目盛りの値の設定
grid; %罫線を表示
xlabel('Frequency [rad/s]'); %横軸のラベル表示
ylabel('Gain [dB]'); %縦軸のラベル表示

subplot(2,1,2) %複数の図を並べるためのコマンド.2行1列の2行目という意味
semilogx(w, phase); %位相線図をプロット
xlim([10^(-2),10^1]) %横軸(角周波数)の範囲の指定
ylim([-180 0]) %縦軸の範囲の指定
yticks([-180 -135 -90 -45 0]) %縦軸の目盛りの値の設定
grid; %罫線を表示
xlabel('Frequency [rad/s]'); %横軸のラベル表示
ylabel('Phase [deg]'); %縦軸のラベル表示