[scilab-Users] z^(-1/2) half cycle delay in discrete time
Dean Parsons
dean.parsons at att.net
Tue May 10 18:18:40 CEST 2011
David,
Thanks for your prompt response. Let me ask my question in a different way.
In MATLAB I can add a delay to the input of a continuous time system with the following code sequence:
time_delay = 0.5;
sys_continuous_time = ss(A,B,C,D);
set(sys_continuous_time,'InputDelay',time_delay*[1 1 1]);
In transfer funtion representation my sys_continuous_time = -1 - 1/s - 1/s^2
I believe the third line of code above multiples sys_continuous_time by [exp(-0.5*s) exp(-0.5*s) exp(-0.5*s)] which is equivalent to multiplying by [z^(-1/2) z^(-1/2) z^(-1/2)]
I know how to write Scilab code for the first 2 lines of code above. My question is: Is there a way in Scilab to do what the 3rd line of code above does?
If I try to create a term like exp(-0.5*s) or z^(-1/2) in Scilab in order to do this multiplication, I get the following error messages:
-->s=poly(0,"s");
-->a = exp(-0.5*s);
!--error 246
Function not defined for given argument type(s),
check arguments or define function %p_exp for overloading.
-->z = poly(0,"z");
-->a = z^(-1/2);
!--error 30
Invalid exponent.
How can I add a half clock cycle of delay to the input of a continuous time system in Scilab? (I am modeling a sigma delta modulator which uses continuous time integrators as well as a sampling quantizer which has a half clock cycle of delay - all in the same loop. This is why it is necessary to have a mixture of continuous time & discrete time math in the same system.)
Dean Parsons
----- Original Message -----
From: David PICARD
To: users at lists.scilab.org
Sent: Tuesday, May 10, 2011 2:42 AM
Subject: Re: [scilab-Users] z^(-1/2) half cycle delay in discrete time
z^-1 is the value of the system 1 sampling period in the past. But as sampling is discrete, does it make sense to reference a value that is between 2 samples, but that does not exist in your model, since, by definition, it is not sampled ?
Le 09/05/2011 19:27, Dean Parsons a écrit :
Hello,
I want to add a half cycle delay to a discrete time transfer function by multiplying the transfer function by z^(-0.5). It seems Scilab doesn't allow non-integer exponents with the discrete time variable z:
-->z=poly(0,"z");
-->a = z^(-0.5);
!--error 30
Invalid exponent.
Is there a work around for this? Is there another way to create the discrete time delay z^(-1/2)?
Thank you for your help with this.
Dean Parsons
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20110510/163c9ab7/attachment.htm>
More information about the users
mailing list