[Scilab-users] Unexpected result using horner

Samuel Gougeon sgougeon at free.fr
Sun Jul 24 13:34:10 CEST 2022


Hello Federico,
Le 20/07/2022 à 22:47, Federico Miyara a écrit :
>
> Dear All,
>
> I have problems with this script:
> Fs  =  44100;
> fo  =  500;
> B  =  2^(1/6)-2^(-1/6);
> // Low-pass Butterworth
> hLPs  =  analpf(3,"butt",[],1);
> // Band-pass Butterworth centered at fo    
> hBPs  =  horner(hLPs,  (2*%pi*fo/%s  +  %s/(2*%pi*fo))/B)
> // Apply bilinear transform
> hBPz  =  horner(hBPs,  2*Fs*(%z  -  1)/(%z  +  1))
> // Attempt to get the same using iir
> hBPz1  =  iir(3,  "bp",  "butt",  fo/Fs*[2^(1/6),2^(-1/6)],  [0  0])
> I attempt to design a discrete Butterworth band-pass filter using two 
> equivalent methods:
>
> 1) Manually applying a bilinear transform to the analog filter 
> designed with analpf()
> 2) Applying the function iir()
>
> For some resaon I couldn't figure out, the first method yields an 
> unexpected result:
>
> --> hBPz
>  hBPz  =
>    0.0000005 +0.0000016z +0.0000016z² +0.0000005z³
>    -----------------------------------------------
>        -0.9671578 +2.9195957z -2.9518237z² +z³
>
> --> hBPz1
>  hBPz1  =
>                  0.0000006 -0.0000017z² +0.0000017z⁴ -0.0000006z⁶
> ----------------------------------------------------------------------------- 
>
>    1.0335428 -6.1515162z +15.271063z² -20.239437z³ +15.104038z⁴ 
> -6.0176897z⁵ +z⁶
>
> The official function iir() is correct. The manual procedure 
> unexpectedly reduces the order of the denominator.
>
> Maybe someone can find out what's going on...


Sorry, but nothing is clear to me about your statements:

1) what shows you that iir() is correct while the analpf + horner way is 
not?

2) With the analpf + horner method, assuming that it is not correct, 
what shows you that horner is not correct, while analpf is correct, 
instead of the opposite or both incorrect?

3) do you have a reference about the equivalence?

4) have you tried after simp_mode(%f)?

Samuel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20220724/4043141c/attachment.htm>


More information about the users mailing list