[Scilab-users] Define numerator and denominator of transfer function as variables in Xcos (DLR block)

Nikolay Strelkov n.strelkov at gmail.com
Mon Apr 3 12:59:11 CEST 2017


Thank you, Oleksiy!

I added initial state vectors to the context:
IS1 = zeros(1,length(h1));
IS2 = zeros(1,length(h2));

Now It works as expected.

--

*With best regards,Ph.D., *


*associate professor at MPEI
<http://mpei.ru/lang/en/Pages/default.aspx>,IEEE member,maintainer of
Mathieu functions toolbox for Scilab
<http://atoms.scilab.org/toolboxes/Mathieu/>,Nikolay Strelkov.*

2017-04-03 4:04 GMT+03:00 ol.bond <oleksiy.bond at gmail.com>:

> Hi,
>
> Another way to represent filter in Xcos is to use the Discrete State-Space
>  (DLSS) block. The matrices can be obtained directly from the
> syslin representation of the system:
>
> [A1 B1 C1 D1] = abcd(H1);
> [A2 B2 C2 D2] = abcd(H2);
>
> (This transformation can also be set in Xcos context)
>
> Yours
>
> 2017-04-02 23:45 GMT+09:00 Tan Chin Luh-2 [via Scilab / Xcos - Mailing
> Lists Archives] <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4036118&i=0>>:
>
>> you're welcome.
>> anyway it should be a better way to construct the denominator, do let me
>> know if you find a better way. :)
>>
>> rgds,
>> CL
>>
>>
>>
>> On 2/4/2017 12:22 AM, Nikolay Strelkov wrote:
>>
>> Dear Tan Chin Luh!
>>
>> Thank you very much.
>> It works as expected!
>> The problem is solved.
>>
>> --
>>
>> *With best regards, Ph.D., *
>>
>>
>> *associate professor at MPEI <http://mpei.ru/lang/en/Pages/default.aspx>,
>> IEEE member, maintainer of Mathieu functions toolbox for Scilab
>> <http://atoms.scilab.org/toolboxes/Mathieu/>, Nikolay Strelkov.*
>>
>> 2017-04-01 17:23 GMT+03:00 Tan Chin Luh <[hidden email]
>> <http:///user/SendEmail.jtp?type=node&node=4036111&i=0>>:
>>
>>> Hi,
>>>
>>> If I understand correctly, you would like to create the filter in
>>> Scilab, and directly access from Xcos?
>>> if so, u could use the syslin object to do so.
>>>
>>> 1. Create the syslin obj
>>> h1 = wfir("lp",2,[.2 0],"re",[0 0])
>>> h2 = wfir("hp",3,[.1 0],"re",[0 0])
>>> num1 = poly(h1,'z','coeff')
>>> d = ones(1,size(h1,2)+1)
>>> d(1:$-1) = 0
>>> den1 = poly(d,'z','coeff')
>>> H1 = syslin('d',num1,den1)
>>> num2 = poly(h2,'z','coeff')
>>> d = ones(1,size(h2,2)+1)
>>> d(1:$-1) = 0
>>> den2 = poly(d,'z','coeff')
>>> H2 = syslin('d',num2,den2)
>>>
>>> 2. In Xcos
>>> use H1.num in the numerator block for LPF, H1.den in the denominator for
>>> the LPF, same for the HPF.
>>>
>>> Hope this helps.
>>>
>>> rgds,
>>> CL
>>>
>>>
>>> On 1/4/2017 9:53 PM, Nikolay Strelkov wrote:
>>>
>>> Anybody?
>>> Dear Tim, do you have any idea?
>>>
>>> --
>>>
>>> *With best regards, Ph.D., *
>>>
>>>
>>> *associate professor at MPEI
>>> <http://mpei.ru/lang/en/Pages/default.aspx>, IEEE member, maintainer of
>>> Mathieu functions toolbox for Scilab
>>> <http://atoms.scilab.org/toolboxes/Mathieu/>, Nikolay Strelkov.*
>>>
>>> 2017-03-23 14:27 GMT+03:00 Nikolay Strelkov <[hidden email]
>>> <http:///user/SendEmail.jtp?type=node&node=4036111&i=1>>:
>>>
>>>> Dear all!
>>>>
>>>> I'm playing with simple digital filtering in Xcos 5.5.2.
>>>> I have two filters - low-pass and high-pass, connected in series.
>>>>
>>>> Xcos does not have convolution block.
>>>> So I write FIR transfer function
>>>> <https://ccrma.stanford.edu/%7Ejos/fp/FIR_Transfer_Function.html>
>>>> manually from impulse response function.
>>>> I get impulse response functions from wfir function.
>>>>
>>>> Let's assume that we have two simple filters with impulse responses:
>>>> h1 = [0.3741957    0.3741957]; // it's low-pass filter from h1 =
>>>> wfir("lp",2,[.2 0],"re",[0 0])
>>>> and
>>>> h2 = [- 0.1870979    0.8  - 0.1870979]; // it's high-pass filter h2 =
>>>> wfir("hp",3,[.1 0],"re",[0 0])
>>>>
>>>> I convert them to DLR
>>>> <https://help.scilab.org/docs/5.5.2/en_US/DLR.html> SISOs and get:
>>>> H1(z) = 0.3741957*z^-1 + 0.3741957*z^-2 = ( 0.3741957*z + 0.3741957 ) /
>>>> (z^2);
>>>> H2(z) = -0.1870979*z^-1 + 0.8*z^-2  - 0.1870979*z^-3 = ( -0.1870979*z^2
>>>> + 0.8*z  - 0.1870979*z ) / (z^3);
>>>> and place their numerator and denominator to the corresponding DLR
>>>> blocks.
>>>> Model is in attachment. It's an illustration, not real world example.
>>>>
>>>> I have a question. How I can automate the aforementioned process
>>>> programmatically?
>>>> I tried to create numerator and denominator with poly function and as
>>>> strings, but Xcos does not support these types in DLR settings.
>>>>
>>>> --
>>>>
>>>>
>>>>
>>>>
>>>> *With best regards, Ph.D., assistant professor at MPEI
>>>> <http://mpei.ru/lang/en/Pages/default.aspx>, IEEE member, maintainer of
>>>> Mathieu functions toolbox for Scilab
>>>> <http://atoms.scilab.org/toolboxes/Mathieu/>, Nikolay Strelkov.*
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> users mailing list[hidden email] <http:///user/SendEmail.jtp?type=node&node=4036111&i=2>http://lists.scilab.org/mailman/listinfo/users
>>>
>>> _______________________________________________ users mailing list [hidden
>>> email] <http:///user/SendEmail.jtp?type=node&node=4036111&i=3>
>>> http://lists.scilab.org/mailman/listinfo/users
>>
>> _______________________________________________
>> users mailing list[hidden email] <http:///user/SendEmail.jtp?type=node&node=4036111&i=4>http://lists.scilab.org/mailman/listinfo/users
>>
>>
>> _______________________________________________
>> users mailing list
>> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4036111&i=5>
>> http://lists.scilab.org/mailman/listinfo/users
>>
>>
>> ------------------------------
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://mailinglists.scilab.org/Scilab-users-Define-numerator
>> -and-denominator-of-transfer-function-as-variables-in-Xcos-
>> DLR-block-tp4035961p4036111.html
>> To start a new topic under Scilab users - Mailing Lists Archives, email [hidden
>> email] <http:///user/SendEmail.jtp?type=node&node=4036118&i=1>
>> To unsubscribe from Scilab users - Mailing Lists Archives, click here.
>> NAML
>> <http://mailinglists.scilab.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>
> ------------------------------
> View this message in context: Re: Define numerator and denominator of
> transfer function as variables in Xcos (DLR block)
> <http://mailinglists.scilab.org/Scilab-users-Define-numerator-and-denominator-of-transfer-function-as-variables-in-Xcos-DLR-block-tp4035961p4036118.html>
> Sent from the Scilab users - Mailing Lists Archives mailing list archive
> <http://mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html>
> at Nabble.com.
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20170403/d09a7ae1/attachment.htm>


More information about the users mailing list