How can I simulate a LTI system with complex data?

Hello,
I wrote a simple code to to simulate a LTI system:
% -----------------------------------------------------------
N = 200; t0 = 0.0;
t1 = 50.0;
T = t1-t0;
dt = T/(Nsteps-1);
time = (t0:dt:t1)';
f = zeros(N,1);
m = 1;
c = 1;
K = 5;
H = tf(1,[-m i*c k]);
h = impulse(H,time);
x = conv(f,h);
% -----------------------------------------------------------
But using the code above I receive the following message:
Cannot simulate the time response of LTI models with complex data.
Is there any way to compute the unit impulse response for a transfer function with complex entries?
I also appreciate other suggestions to solve this problem.
Thanks in advance.
Americo

回答 (3 件)

Gurudatha Pai
Gurudatha Pai 2011 年 6 月 18 日

0 投票

It looks like impulse() function does not take continuous time systems with complex coefficients; However, if I were to just solve this problem, you system has a unstable complex pole pair and no zeros. It would be a matter of using exponential functions with of the roots of denominator polynomial. Does that makes sense?
Rajiv Singh
Rajiv Singh 2011 年 6 月 19 日

0 投票

Simulation (time domain response calculation) of complex LTIs is not supported. You can cast is into a real system (as Gurudatha suggests), or convert your system into a model type used by System Identification Toolbox: H2 = idss(H); h2 = impulse(H2,time);
Rahim Gholami
Rahim Gholami 2018 年 12 月 11 日

0 投票

Hi. I want to use rlocus for a complex dynamic system.
Y=tf([1,3,2],[1,-1-i,i]);
rlocus(Y);
But I got the same eror.
Is there any way so that I can fix it?

カテゴリ

製品

質問済み:

2011 年 2 月 9 日

回答済み:

2018 年 12 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by