<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Your problem arises because one
frequency value you ask for corresponds exactly to a zero of
hz.num<br>
log(roots(hz.num))/(2*%pi)<br>
so you want to compute the gain in dB of a zero value which is
-inf<br>
<br>
To avoid such problem you can let repfreq to do the frequency
discretization.<br>
<pre class="scilabcode"><span class="scilabopenclose"><span class="scilabopenclose">[</span><span class="scilabid">frq</span><span class="scilabdefault">,</span><span class="scilabid">repf</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><a moz-do-not-send="true" class="scilabmacro" href="repfreq.html">repfreq</a><span class="scilabopenclose">(</span><span class="scilabid">hz</span><span class="scilabdefault">)</span>
or equivalently
[</span><span class="scilabid">frq</span><span class="scilabdefault">,</span><span class="scilabid">repf</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><a moz-do-not-send="true" class="scilabmacro" href="repfreq.html">repfreq</a><span class="scilabopenclose">(</span><span class="scilabid">hz</span><span class="scilabdefault">,0,0.5)</span></pre>
in this case the discretization uses varying frequency step<br>
Serge<br>
<br>
Le 23/02/2016 14:41, grivet a écrit :<br>
</div>
<blockquote cite="mid:56CC617F.3000508@cnrs-orleans.fr" type="cite">
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
<div class="moz-cite-prefix">Le 23/02/2016 14:21, Serge Steer a
écrit :<br>
</div>
<blockquote cite="mid:56CC5CC1.1050607@inria.fr" type="cite">
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
<div class="moz-cite-prefix">Please can you give more details :<br>
value of Order and Fcutoff/Fs/2<br>
and what you are doing with hz (because iir does not call
dbphi)<br>
Serge<br>
</div>
</blockquote>
I am just running the example found in "how to design an elliptic
filter". Here is the code:<br>
<br>
<div class="refsection">
<div class="programlisting">
<table border="0" width="100%">
<tbody>
<tr>
<td width="98%">
<pre class="scilabcode"><span class="scilabid">Order</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabcomment">// The order of the filter</span>
<span class="scilabid">Fs</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilabcomment">// The sampling frequency</span>
<span class="scilabid">Fcutoff</span> <span class="scilaboperator">=</span> <span class="scilabnumber">40</span><span class="scilabdefault">;</span> <span class="scilabcomment">// The cutoff frequency</span>
<span class="scilabcomment">// We design a low pass elliptic filter</span>
<span class="scilabid">hz</span> <span class="scilaboperator">=</span> <a moz-do-not-send="true" class="scilabmacro" href="iir.html">iir</a><span class="scilabopenclose">(</span><span class="scilabid">Order</span><span class="scilabdefault">,</span><span class="scilabstring">'lp'</span><span class="scilabdefault">,</span><span class="scilabstring">'ellip'</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabid">Fcutoff</span><span class="scilaboperator">/</span><span class="scilabid">Fs</span><span class="scilaboperator">/</span><span class="scilabnumber">2</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span> <span class="scilabnumber">0.1</span><span class="scilabopenclose">])</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// We compute the frequency response of the filter</span>
<span class="scilabopenclose">[</span><span class="scilabid">frq</span><span class="scilabdefault">,</span><span class="scilabid">repf</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><a moz-do-not-send="true" class="scilabmacro" href="repfreq.html">repfreq</a><span class="scilabopenclose">(</span><span class="scilabid">hz</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabspecial">:</span><span class="scilabnumber">0.001</span><span class="scilabspecial">:</span><span class="scilabnumber">0.5</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabopenclose">[</span><span class="scilabid">db_repf</span><span class="scilabdefault">,</span> <span class="scilabid">phi_repf</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <a moz-do-not-send="true" class="scilabmacro" href="dbphi.html">dbphi</a><span class="scilabopenclose">(</span><span class="scilabid">repf</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// And plot the bode like representation of the digital filter</span>
<a moz-do-not-send="true" class="scilabmacro" href="subplot.html">subplot</a><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<a moz-do-not-send="true" class="scilabcommand" href="plot2d.html">plot2d</a><span class="scilabopenclose">(</span><span class="scilabid">Fs</span><span class="scilaboperator">*</span><span class="scilabid">frq</span><span class="scilabdefault">,</span><span class="scilabid">db_repf</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<a moz-do-not-send="true" class="scilabcommand" href="xtitle.html">xtitle</a><span class="scilabopenclose">(</span><span class="scilabstring">'Obtained Frequency Response (Magnitude)'</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<a moz-do-not-send="true" class="scilabmacro" href="subplot.html">subplot</a><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<a moz-do-not-send="true" class="scilabcommand" href="plot2d.html">plot2d</a><span class="scilabopenclose">(</span><span class="scilabid">Fs</span><span class="scilaboperator">*</span><span class="scilabid">frq</span><span class="scilabdefault">,</span><span class="scilabid">phi_repf</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<a moz-do-not-send="true" class="scilabcommand" href="xtitle.html">xtitle</a><span class="scilabopenclose">(</span><span class="scilabstring">'Obtained Frequency Response (Phase in degree)'</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<br>
with 'ellip' replaced by 'butt', and <span
class="scilabopenclose">[</span><span class="scilabid">Fcutoff</span><span
class="scilaboperator">/</span><span class="scilabid">Fs</span><span
class="scilaboperator">/</span><span class="scilabnumber">2</span>
<span class="scilabnumber">0</span><span class="scilabopenclose">]
replaced by</span><span class="scilabopenclose"> </span><span
class="scilabid">Fcutoff</span><span class="scilaboperator">/</span><span
class="scilabid">Fs</span><span class="scilaboperator">/</span><span
class="scilabnumber">2</span>.<br>
I am beginning to use digital filters to treat some data. As my
first step, I try to run the examples in the help,how to design an
elliptic filter (using Scilab 5.5.1, Win7-64). This works .
However, when I select a Butterworth filter: <br>
<blockquote cite="mid:56CC5CC1.1050607@inria.fr" type="cite">
<blockquote cite="mid:56CC40AA.6030506@cnrs-orleans.fr"
type="cite"> hz =
iir(Order,'lp','butt',Fcutoff/Fs/2,[0.1 0.1]);<br>
I get this error message:<br>
<br>
Singularité de la fonction log ou tan.<br>
at line 6 of function dbphi called by : <br>
[db_repf, phi_repf] = dbphi(repf);<br>
<br>
What did I miss ?<br>
No bugs have been reported for function dbphi, but three
similar bugs are listed for iir.<br>
Any suggestion welcome.<br>
JPGrivet<br>
</blockquote>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</body>
</html>