<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<font face="Courier New">Dear All,<br>
<br>
I have problems with this script:</font><br>
<pre style="font-family:Monospaced;font-style:normal;font-size:18.0;"><span style="color:rgb(0,0,0);">Fs</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">44100</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">fo</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">500</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">B</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">2</span><span style="color:rgb(92,92,92);">^</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">6</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(92,92,92);">^</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">6</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(51,153,6);font-style:italic;">// Low-pass Butterworth </span>
<span style="color:rgb(0,0,0);">hLPs</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">analpf</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">3</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">butt</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(51,153,6);font-style:italic;">// Band-pass Butterworth centered at fo</span>
<span style="color:rgb(0,0,0);">hBPs</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">horner</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">hLPs</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(218,112,214);">%pi</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(0,0,0);">fo</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(218,112,214);">%s</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(218,112,214);">%s</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(218,112,214);">%pi</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(0,0,0);">fo</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(0,0,0);">B</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(51,153,6);font-style:italic;">// Apply bilinear transform</span>
<span style="color:rgb(0,0,0);">hBPz</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">horner</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">hBPs</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">2</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(0,0,0);">Fs</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(218,112,214);">%z</span> <span style="color:rgb(92,92,92);">-</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(218,112,214);">%z</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(51,153,6);font-style:italic;">// Attempt to get the same using iir</span>
<span style="color:rgb(0,0,0);">hBPz1</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">iir</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">3</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">bp</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">butt</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(0,0,0);">fo</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(0,0,0);">Fs</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(92,92,92);">^</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">6</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(92,92,92);">^</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">6</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(74,85,219);">)</span></pre>
<font face="Courier New">I attempt to design a discrete Butterworth
band-pass filter using two equivalent methods:<br>
<br>
1) Manually applying a bilinear transform to the analog filter
designed with analpf()<br>
2) Applying the function iir()<br>
<br>
For some resaon I couldn't figure out, the first method yields an
unexpected result:<br>
<br>
--> hBPz<br>
hBPz = <br>
0.0000005 +0.0000016z +0.0000016z² +0.0000005z³ <br>
----------------------------------------------- <br>
-0.9671578 +2.9195957z -2.9518237z² +z³ <br>
<br>
--> hBPz1<br>
hBPz1 = <br>
0.0000006 -0.0000017z² +0.0000017z⁴
-0.0000006z⁶ <br>
-----------------------------------------------------------------------------
<br>
1.0335428 -6.1515162z +15.271063z² -20.239437z³ +15.104038z⁴
-6.0176897z⁵ +z⁶ <br>
<br>
The official function iir() is correct. The manual procedure
unexpectedly reduces the order of the denominator.<br>
<br>
Maybe someone can find out what's going on...<br>
<br>
Thanks,<br>
<br>
Federico Miyara<br>
<br>
</font>
<div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br /> <table style="border-top: 1px solid #D3D4DE;">
<tr>
<td style="width: 55px; padding-top: 18px;"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient" target="_blank"><img src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif" alt="" width="46" height="29" style="width: 46px; height: 29px;" /></a></td>
<td style="width: 470px; padding-top: 17px; color: #41424e; font-size: 13px; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">Libre de virus. <a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient" target="_blank" style="color: #4453ea;">www.avast.com</a> </td>
</tr>
</table>
<a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"> </a></div></body>
</html>