• n4_432199
  • 546.7KB
  • zip
  • 0
  • VIP专享
  • 0
  • 2022-06-11 12:31
  • intafil.m
  • Interactive Design of Digital filters.pdf
<html xmlns=""><head><meta charset="utf-8"><meta name="generator" content="pdf2htmlEX"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link rel="stylesheet" href=""><link rel="stylesheet" href=""><link rel="stylesheet" href=""><script src=""></script><script src=""></script><script>try{pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});}catch(e){}</script><title></title></head><body><div id="sidebar" style="display: none"><div id="outline"></div></div><div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src=""><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Interactive Design of Digit<span class="_ _0"></span>al filters </div><div class="t m0 x1 h3 y2 ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 y3 ff2 fs1 fc0 sc0 ls2 ws1">Digital filters are wide<span class="_ _0"></span>ly used in signal pr<span class="ls3 ws2">ocessing and there are many standard ways to </span></div><div class="t m0 x1 h3 y4 ff2 fs1 fc0 sc0 ls4 ws3">design them but these m<span class="_ _0"></span>ethods often force one <span class="ls5 ws1">to comprom<span class="_ _0"></span>ise some aspect of the filter. </span></div><div class="t m0 x1 h3 y5 ff2 fs1 fc0 sc0 ls3 ws2">For instance, Elliptic filters have a good st<span class="_ _0"></span><span class="ws4">eep transition region, a flat stop band, and </span></div><div class="t m0 x1 h3 y6 ff2 fs1 fc0 sc0 ls3 ws5">rather poor group delay variation in the transi<span class="ws6">tion region. The butterworth filter has better </span></div><div class="t m0 x1 h3 y7 ff2 fs1 fc0 sc0 ls6 ws7">phase response at the expense of <span class="ls7 ws6">transition region width and so on&#8230;. </span></div><div class="t m0 x1 h3 y8 ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 y9 ff2 fs1 fc0 sc0 ls3 ws8">There are many cases where a specific requir<span class="_ _0"></span><span class="ws6">ed frequency response does not readily fit </span></div><div class="t m0 x1 h3 ya ff2 fs1 fc0 sc0 ls6 ws9">any of the standard prototypes, and indeed <span class="ls8 wsa">where one desires to trade response against </span></div><div class="t m0 x1 h3 yb ff2 fs1 fc0 sc0 ls9 ws5">implementation com<span class="_ _0"></span>plexity there are severa<span class="ls4 wsb">l degrees of freedom<span class="_ _0"></span> that the standard </span></div><div class="t m0 x1 h3 yc ff2 fs1 fc0 sc0 ls6 wsc">methods do not address. </div><div class="t m0 x1 h3 yd ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 ye ff2 fs1 fc0 sc0 lsa wsd">This tutorial explain<span class="_ _0"></span>s how to use a simple matlab utility to design a custom<span class="_ _0"></span> filter by </div><div class="t m0 x1 h3 yf ff2 fs1 fc0 sc0 ls7 wse">manually placing the poles and ze<span class="lsb wsf">ros to get the desired resp<span class="_ _0"></span><span class="ls3 wsb">onse. A little practice is </span></span></div><div class="t m0 x1 h3 y10 ff2 fs1 fc0 sc0 lsc ws10">needed to become proficient and be able to pl<span class="ls3 ws11">ace the filter roots, but it is n<span class="_ _0"></span>ot complicated </span></div><div class="t m0 x1 h3 y11 ff2 fs1 fc0 sc0 ls6 ws7">and a little perseverance pays off. </div><div class="t m0 x1 h3 y12 ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 y13 ff2 fs1 fc0 sc0 ls8 ws12">Furthermore, one can design a prototype filte<span class="lsc ws10">r using any of the standard methods, inpu<span class="_ _0"></span>t </span></div><div class="t m0 x1 h3 y14 ff2 fs1 fc0 sc0 ls3 ws8">the coefficients, and manipulate them to get <span class="_ _0"></span><span class="lsc ws10">the deired modified response. One example </span></div><div class="t m0 x1 h3 y15 ff2 fs1 fc0 sc0 lsc ws7">is the ability to add all=pass pa<span class="lsd">irs to linearise phase response. </span></div><div class="t m0 x1 h3 y16 ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 y17 ff2 fs1 fc0 sc0 lsa ws13">The user interface is simple to use, but it is <span class="ls6 ws3">not very sophisticated. It could do with so<span class="_ _0"></span>me </span></div><div class="t m0 x1 h3 y18 ff2 fs1 fc0 sc0 ls8 ws12">improvement and I&#8217;d welcome any <span class="ls7 ws13">contributions in this regard. </span></div><div class="t m0 x1 h3 y19 ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 y1a ff2 fs1 fc0 sc0 ls8 ws12">Steve Shearer </div><div class="t m0 x1 h3 y1b ff2 fs1 fc1 sc0 ls6 ws0"><span class="fc0 ls1"> </span></div><div class="t m0 x1 h3 y1c ff2 fs1 fc0 sc0 ls1 ws0">January 2009 </div><div class="t m0 x1 h3 y1d ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h4 y1e ff3 fs2 fc0 sc0 lse ws14">Adding a Zero </div><div class="t m0 x1 h3 y1f ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 y20 ff2 fs1 fc0 sc0 ls1 ws0">Run the script using [b,a]=intafil(1,1). <span class="ls6 ws15"> Two windows should open, one showing the pole-</span></div><div class="t m0 x1 h3 y21 ff2 fs1 fc0 sc0 ls7 wse">zero plane, and one showing a number of<span class="lsc ws11"> plots for magnitude, group delay etc. </span></div><div class="t m0 x1 h3 y22 ff2 fs1 fc0 sc0 ls1 ws0"> </div><div class="t m0 x1 h3 y23 ff2 fs1 fc0 sc0 lsc ws16">Place a zero by clicking on &#8220;add 0&#8221; and then <span class="ls3 ws17">clicking on the place in<span class="ls5 ws18"> the complex plane </span></span></div><div class="t m0 x1 h3 y24 ff2 fs1 fc0 sc0 lsf ws19">where you wish to place it. The example below shows the first zero. </div><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div></body></html>