有限インパルス応答か​らbody関数を用い​てゲインと位相を求め​たいができない

simulinkを用いて入力・出力が分かる状態になっている。(サンプリング時間は0.1で100秒間の実施)
そこで、FIRモデルから有限インパルス応答を求めることには成功したが、それをz変換しbody関数を用いた時ゲインはうまくいくのだが、位相が全然合わない現象が起きて困っています。
以下の画像及びコード
close all
clearvars -except out ;
clc
e=out.simout.Data;
u=out.simout3.Data;
n=numel(e);
t=transpose(0:0.1:100);
ft=t(end,1);
t1=ft/(n-1);
fs=1/t1;
f=(0:n-1)*(fs/n);
m2=400;
if m2 >= n
error('次数がnを超えています');
end
for i=1:(n-m2)
for k=1:m2
a1(i,k)=e(i+m2-k,1);
end
end
u2=u(m2+1:n,1);
q1=pinv(a1)*u2;
num=transpose(q1);
den=1
q=tf([1],[1 1]);
a=tf(num,den, 1/fs)
bode(tf(num,1, 1/fs),q)

Answers (0)

Products

Release

R2022b

Asked:

a
a
on 23 Oct 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!