(*^ ::[ frontEndVersion = "Macintosh Mathematica Notebook Front End Version 2.1"; macintoshStandardFontEncoding; keywords = "PlotPoles"; paletteColors = 128; automaticGrouping; currentKernel; fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e8, 24, "Times"; ; fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e6, 18, "Times"; ; fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, e6, 14, "Times"; ; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, a20, 18, "Times"; ; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, a15, 14, "Times"; ; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, a12, 12, "Times"; ; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; ; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-4, 12, "Courier"; ; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-4, 12, "Courier"; ; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R32768, L-4, 12, "Courier"; ; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-4, 12, "Courier"; ; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B32768, L-4, 12, "Courier"; ; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, 12, "Courier"; ; fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, 10, "Geneva"; ; fontset = header, inactive, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = leftheader, inactive, L2, 12, "Times"; ; fontset = footer, inactive, noKeepOnOnePage, preserveAspect, center, M7, 12, "Times"; ; fontset = leftfooter, inactive, L2, 12, "Times"; ; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; ; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; ] :[font = title; inactive; preserveAspect; startGroup; ] An Efficient Implementation of the Patterson-Holdsworth Auditory Filter Bank Malcolm Slaney Apple Computer Technical Report #35 Perception GroupÑAdvanced Technology Group © 1993, Apple Computer, Inc. ;[s] 3:0,0;77,1;93,2;203,-1; 3:1,25,18,Times,1,24,0,0,0;1,19,14,Times,0,18,0,0,0;1,16,12,Times,0,14,0,0,0; :[font = section; inactive; preserveAspect; startGroup; ] 1.0 Introduction :[font = text; inactive; preserveAspect; ] This report describes an implementation of a cochlear model proposed by Roy Patterson [Patterson1992]. Like a previous report [Slaney1988], this document is an electronic notebook written using a software package called Mathematicaª [Wolfram 1988]. ;[s] 3:0,0;221,1;233,0;250,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; endGroup; ] This report describes the filter bank and its implementation. The filter bank is designed as a set of parallel bandpass filters, each tuned to a different frequency. This report extends previous work by deriving an even more efficient implementation of the Gammatone filter bank, and by showing the MATLABª code to design and implement an ERB filter bank based on Gammatone filters. ;[s] 3:0,0;302,1;307,0;385,-1; 2:2,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0; :[font = section; inactive; pageBreak; preserveAspect; startGroup; ] 2.0 Ear Filters :[font = text; inactive; preserveAspect; ] PattersonÕs cochlear model is based on an array of independent bandpass filters. The filters are tonotopically organized from high frequencies at the base of the cochlea, to low frequencies at the apex. In PattersonÕs model the bandwidth of each cochlear filter is described by an Equivalent Rectangular Bandwidth (ERB) [Patterson1992]. This section of the report describes how cochlear channels are spaced so that each filter overlaps its neighbors by the same amount. :[font = subsection; inactive; preserveAspect; startGroup; ] 2.1 Equivalent Rectangular Bandwidth (ERB) :[font = text; inactive; preserveAspect; ] The ERB is a psychoacoustic measure of the width of the auditory filter at each point along the cochlea. Psychoacoustic experiments often measure something known as the Critical Band but we will use the terms interchangeably. A critical band or ERB filter models the signal that is present within a single auditory nerve cell or channel. Glasberg and Moore [Glasberg1990] recommend the following equation for the ERB. :[font = input; preserveAspect; ] ERB[f_] := 24.7(4.37 f / 1000 + 1) :[font = input; preserveAspect; startGroup; ] ERB[1000] :[font = output; output; inactive; preserveAspect; endGroup; ] 132.639 ;[o] 132.639 :[font = input; preserveAspect; startGroup; ] ERB[3000] :[font = output; output; inactive; preserveAspect; endGroup; ] 348.517 ;[o] 348.517 :[font = text; inactive; preserveAspect; ] This can be rewritten as :[font = input; output; preserveAspect; ] ERB[f_, EarQ_, minBW_] := f/EarQ + minBW; ;[o] f ERB[f_, EarQ_, minBW_] := ---- + minBW; EarQ :[font = text; inactive; preserveAspect; ] where EarQ is the asymptotic filter quality at large frequencies and minBW is the minimum bandwidth for low frequencies channels. In between there is a smooth transition. This is similar to the bandwidth defined in LyonÕs model which is given by ;[s] 5:0,0;6,1;10,0;69,1;74,0;248,-1; 2:3,13,9,Times,0,12,0,0,0;2,14,10,Times,2,12,0,0,0; :[font = input; output; inactive; preserveAspect; ] Sqrt[f^2 + EarBreakFreq^2]/EarQ ;[o] 2 2 Sqrt[f + EarBreakFreq ] ------------------------ EarQ :[font = text; inactive; preserveAspect; ] A general form for the bandwidth of a cochlear channel as a function of center frequency is given by :[font = input; initialization; preserveAspect; ] *) ERB[f_, EarQ_, minBW_, order_] := ((f/EarQ)^order + (minBW)^order)^(1/order); (* :[font = text; inactive; preserveAspect; ] with Glasberg and Moore recommending the following parameters :[font = input; initialization; preserveAspect; startGroup; ] *) GlasbergBandwidthParms={EarQ->1000/(24.7*4.37), minBW->24.7*1, order->1} (* :[font = output; output; inactive; preserveAspect; endGroup; ] {EarQ -> 9.264491981582189941, minBW -> 24.7, order -> 1} ;[o] {EarQ -> 9.26449, minBW -> 24.7, order -> 1} :[font = text; inactive; preserveAspect; ] Lyon [Slaney1988] recommends a nominal bandwidth given by :[font = input; initialization; preserveAspect; startGroup; ] *) LyonBandwidthParms={minBW->EarBreakF/8, EarQ->8, order->2}/. EarBreakF->1000 (* :[font = output; output; inactive; preserveAspect; endGroup; ] {minBW -> 125, EarQ -> 8, order -> 2} ;[o] {minBW -> 125, EarQ -> 8, order -> 2} :[font = text; inactive; preserveAspect; ] and Greenwood [Greenwood1990] recommending :[font = input; initialization; preserveAspect; startGroup; ] *) GreenwoodBandwidthParms={EarQ->35/(Log[10]*a), minBW->a*A*k*Log[10]/35, order->1}/. a->2.1/. A->165.4/. k->1//N (* :[font = output; output; inactive; preserveAspect; endGroup; ] {EarQ -> 7.238241365054197128, minBW -> 22.85085446287290937, order -> 1.} ;[o] {EarQ -> 7.23824, minBW -> 22.8509, order -> 1.} :[font = text; inactive; preserveAspect; ] These three bandwidth functions are plotted below. The solid curve is the Critical Band function recommended by Glasberg and Moore, the dashed line is the one by Lyon, and the dash-dot line is from Greenwood. :[font = input; preserveAspect; startGroup; ] <Identity, AxesLabel->{"Freqency (Hz)","Bandwidth (Hz)"}, PlotLabel->"Critical Bands or ERB"], LogLogPlot[ERB[f,EarQ,minBW,order]/.LyonBandwidthParms, {f,20,8000},DisplayFunction->Identity, PlotStyle->Dashing[{0.025,0.025}]], LogLogPlot[ERB[f,EarQ,minBW,order]/.GreenwoodBandwidthParms, {f,20,8000},DisplayFunction->Identity, PlotStyle->Dashing[{0.005,0.025,0.025,0.025}]]}, DisplayFunction->$DisplayFunction]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 370; pictureHeight = 228; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations -0.452381 0.36601 -0.538891 0.387385 [ [(50.)] .16946 0 0 2 Msboxa [(100.)] .27964 0 0 2 Msboxa [(500.)] .53547 0 0 2 Msboxa [(1000.)] .64565 0 0 2 Msboxa [(5000.)] .90148 0 0 2 Msboxa [(Freqency \(Hz\))] 1.025 0 -1 0 Msboxa [(Critical Bands or ERB)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(50.)] -0.0125 .11926 1 0 Msboxa [(100.)] -0.0125 .23588 1 0 Msboxa [(200.)] -0.0125 .35249 1 0 Msboxa [(500.)] -0.0125 .50665 1 0 Msboxa [(Bandwidth \(Hz\))] 0 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .16946 0 m .16946 .00625 L s P [(50.)] .16946 0 0 2 Mshowa p .002 w .27964 0 m .27964 .00625 L s P [(100.)] .27964 0 0 2 Mshowa p .002 w .53547 0 m .53547 .00625 L s P [(500.)] .53547 0 0 2 Mshowa p .002 w .64565 0 m .64565 .00625 L s P [(1000.)] .64565 0 0 2 Mshowa p .002 w .90148 0 m .90148 .00625 L s P [(5000.)] .90148 0 0 2 Mshowa p .001 w .02381 0 m .02381 .00375 L s P p .001 w .08826 0 m .08826 .00375 L s P p .001 w .13399 0 m .13399 .00375 L s P p .001 w .19844 0 m .19844 .00375 L s P p .001 w .22294 0 m .22294 .00375 L s P p .001 w .24417 0 m .24417 .00375 L s P p .001 w .26289 0 m .26289 .00375 L s P p .001 w .38982 0 m .38982 .00375 L s P p .001 w .45427 0 m .45427 .00375 L s P p .001 w .5 0 m .5 .00375 L s P p .001 w .56445 0 m .56445 .00375 L s P p .001 w .58895 0 m .58895 .00375 L s P p .001 w .61018 0 m .61018 .00375 L s P p .001 w .6289 0 m .6289 .00375 L s P p .001 w .75583 0 m .75583 .00375 L s P p .001 w .82028 0 m .82028 .00375 L s P p .001 w .86601 0 m .86601 .00375 L s P p .001 w .93046 0 m .93046 .00375 L s P p .001 w .95496 0 m .95496 .00375 L s P p .001 w .97619 0 m .97619 .00375 L s P p .001 w .99491 0 m .99491 .00375 L s P [(Freqency \(Hz\))] 1.025 0 -1 0 Mshowa p .002 w 0 0 m 1 0 L s P [(Critical Bands or ERB)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w 0 .11926 m .00625 .11926 L s P [(50.)] -0.0125 .11926 1 0 Mshowa p .002 w 0 .23588 m .00625 .23588 L s P [(100.)] -0.0125 .23588 1 0 Mshowa p .002 w 0 .35249 m .00625 .35249 L s P [(200.)] -0.0125 .35249 1 0 Mshowa p .002 w 0 .50665 m .00625 .50665 L s P [(500.)] -0.0125 .50665 1 0 Mshowa p .001 w 0 .03332 m .00375 .03332 L s P p .001 w 0 .08172 m .00375 .08172 L s P p .001 w 0 .14994 m .00375 .14994 L s P p .001 w 0 .17587 m .00375 .17587 L s P p .001 w 0 .19834 m .00375 .19834 L s P p .001 w 0 .21815 m .00375 .21815 L s P p .001 w 0 .42071 m .00375 .42071 L s P p .001 w 0 .46911 m .00375 .46911 L s P p .001 w 0 .53732 m .00375 .53732 L s P p .001 w 0 .56326 m .00375 .56326 L s P p .001 w 0 .58572 m .00375 .58572 L s P p .001 w 0 .60554 m .00375 .60554 L s P [(Bandwidth \(Hz\))] 0 .61803 0 -4 Mshowa p .002 w 0 0 m 0 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p p p .004 w .02381 .01472 m .09032 .0216 L .13706 .02821 L .20253 .0407 L .24876 .05233 L .28453 .06321 L .3785 .1008 L .47991 .15747 L .58551 .23357 L .64841 .28578 L .69335 .32556 L .72835 .35772 L .75702 .3847 L .7813 .40795 L .80235 .42837 L .82094 .44658 L .83758 .46301 L .85265 .47797 L .86641 .49172 L .87907 .50442 L .8908 .51623 L .90172 .52727 L .91194 .53763 L .92154 .54739 L .93059 .55661 L .93916 .56535 L .94729 .57366 L .95502 .58158 L .9624 .58914 L .96944 .59638 L .97619 .60332 L s P P P p p [ .025 .025 ] 0 setdash p .004 w .02381 .27345 m .09032 .2735 L .13706 .27356 L .17314 .27364 L .20253 .27374 L .22732 .27385 L .24876 .27399 L .26765 .27414 L .28453 .27431 L .31371 .2747 L .33836 .27516 L .35969 .27569 L .3785 .27629 L .41052 .27768 L .43716 .27931 L .45996 .28118 L .47991 .28327 L .51356 .28804 L .54132 .29347 L .56495 .29942 L .58551 .30578 L .64841 .3332 L .69335 .3607 L .72835 .3864 L .75702 .40981 L .7813 .43101 L .80235 .45024 L .82094 .46774 L .83758 .48376 L .85265 .49851 L .86641 .51214 L .87907 .52482 L .8908 .53665 L .90172 .54773 L .91194 .55816 L .92154 .56799 L .93059 .5773 L .93916 .58614 L .94729 .59454 L .95502 .60256 L .9624 .61021 L .96944 .61754 L s .96992 .61803 m .96944 .61754 L s s P P P p p [ .005 .025 .025 .025 ] 0 setdash p .004 w .02381 .00673 m .09032 .01591 L .13706 .0246 L .20253 .04076 L .28453 .06905 L .3785 .11442 L .47991 .17956 L .58551 .26299 L .64841 .31851 L .69335 .36019 L .72835 .39356 L .75702 .4214 L .7813 .44528 L .80235 .46618 L .82094 .48478 L .83758 .50152 L .85265 .51674 L .86641 .5307 L .87907 .54359 L .8908 .55557 L .90172 .56674 L .91194 .57722 L .92154 .58709 L .93059 .59641 L .93916 .60524 L .94729 .61363 L s .95155 .61803 m .94729 .61363 L s s s s s P P P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] The equivalent filter quality factor, Q, can be determined by dividing center frequency, f, by the ERB. In this plot, the highest curve (sharper filters) corresponds to GlasbergÕs suggested parameters. The solid curve is the Critical Bank function recommended by Glasberg and Moore, the dashed line is the one by Lyon, and the dash-dot line is from Greenwood :[font = input; preserveAspect; startGroup; ] Show[{Plot[f/ERB[f,EarQ,minBW,order]/.GlasbergBandwidthParms, {f,20,8000},DisplayFunction->Identity, AxesLabel->{"Freqency (Hz)","Filter Q"},PlotRange->All, PlotLabel->"Filter Quality Factors"], Plot[f/ERB[f,EarQ,minBW,order]/.LyonBandwidthParms, {f,20,8000},DisplayFunction->Identity, PlotStyle->Dashing[{0.025,0.025}]], Plot[f/ERB[f,EarQ,minBW,order]/.GreenwoodBandwidthParms, {f,20,8000},DisplayFunction->Identity, PlotStyle->Dashing[{0.005,0.025,0.025,0.025}]]}, DisplayFunction->$DisplayFunction]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 372; pictureHeight = 229; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0214226 0.000119346 0.00407206 0.0665323 [ [(2000)] .26011 .00407 0 2 Msboxa [(4000)] .49881 .00407 0 2 Msboxa [(6000)] .7375 .00407 0 2 Msboxa [(8000)] .97619 .00407 0 2 Msboxa [(Freqency \(Hz\))] 1.025 .00407 -1 0 Msboxa [(Filter Quality Factors)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(2)] .00892 .13714 1 0 Msboxa [(4)] .00892 .2702 1 0 Msboxa [(6)] .00892 .40327 1 0 Msboxa [(8)] .00892 .53633 1 0 Msboxa [(Filter Q)] .02142 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26011 .00407 m .26011 .01032 L s P [(2000)] .26011 .00407 0 2 Mshowa p .002 w .49881 .00407 m .49881 .01032 L s P [(4000)] .49881 .00407 0 2 Mshowa p .002 w .7375 .00407 m .7375 .01032 L s P [(6000)] .7375 .00407 0 2 Mshowa p .002 w .97619 .00407 m .97619 .01032 L s P [(8000)] .97619 .00407 0 2 Mshowa p .001 w .06916 .00407 m .06916 .00782 L s P p .001 w .1169 .00407 m .1169 .00782 L s P p .001 w .16464 .00407 m .16464 .00782 L s P p .001 w .21238 .00407 m .21238 .00782 L s P p .001 w .30785 .00407 m .30785 .00782 L s P p .001 w .35559 .00407 m .35559 .00782 L s P p .001 w .40333 .00407 m .40333 .00782 L s P p .001 w .45107 .00407 m .45107 .00782 L s P p .001 w .54654 .00407 m .54654 .00782 L s P p .001 w .59428 .00407 m .59428 .00782 L s P p .001 w .64202 .00407 m .64202 .00782 L s P p .001 w .68976 .00407 m .68976 .00782 L s P p .001 w .78524 .00407 m .78524 .00782 L s P p .001 w .83298 .00407 m .83298 .00782 L s P p .001 w .88071 .00407 m .88071 .00782 L s P p .001 w .92845 .00407 m .92845 .00782 L s P [(Freqency \(Hz\))] 1.025 .00407 -1 0 Mshowa p .002 w 0 .00407 m 1 .00407 L s P [(Filter Quality Factors)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02142 .13714 m .02767 .13714 L s P [(2)] .00892 .13714 1 0 Mshowa p .002 w .02142 .2702 m .02767 .2702 L s P [(4)] .00892 .2702 1 0 Mshowa p .002 w .02142 .40327 m .02767 .40327 L s P [(6)] .00892 .40327 1 0 Mshowa p .002 w .02142 .53633 m .02767 .53633 L s P [(8)] .00892 .53633 1 0 Mshowa p .001 w .02142 .03068 m .02517 .03068 L s P p .001 w .02142 .0573 m .02517 .0573 L s P p .001 w .02142 .08391 m .02517 .08391 L s P p .001 w .02142 .11052 m .02517 .11052 L s P p .001 w .02142 .16375 m .02517 .16375 L s P p .001 w .02142 .19036 m .02517 .19036 L s P p .001 w .02142 .21698 m .02517 .21698 L s P p .001 w .02142 .24359 m .02517 .24359 L s P p .001 w .02142 .29681 m .02517 .29681 L s P p .001 w .02142 .32343 m .02517 .32343 L s P p .001 w .02142 .35004 m .02517 .35004 L s P p .001 w .02142 .37665 m .02517 .37665 L s P p .001 w .02142 .42988 m .02517 .42988 L s P p .001 w .02142 .45649 m .02517 .45649 L s P p .001 w .02142 .4831 m .02517 .4831 L s P p .001 w .02142 .50972 m .02517 .50972 L s P p .001 w .02142 .56294 m .02517 .56294 L s P p .001 w .02142 .58956 m .02517 .58956 L s P p .001 w .02142 .61617 m .02517 .61617 L s P [(Filter Q)] .02142 .61803 0 -4 Mshowa p .002 w .02142 0 m .02142 .61803 L s P P p p p .004 w .02381 .05361 m .02877 .13474 L .03373 .19556 L .03869 .24284 L .04365 .28065 L .05357 .33735 L .06349 .37783 L .07341 .40818 L .08333 .43179 L .09325 .45067 L .10317 .46611 L .12302 .48987 L .14286 .50729 L .1627 .52061 L .18254 .53112 L .20238 .53963 L .22222 .54666 L .2619 .5576 L .30159 .56571 L .34127 .57197 L .38095 .57694 L .42063 .58099 L .46032 .58435 L .5 .58718 L .53968 .5896 L .57937 .5917 L .61905 .59352 L .65873 .59513 L .69841 .59656 L .7381 .59783 L .77778 .59898 L .81746 .60001 L .85714 .60095 L .89683 .60181 L .93651 .6026 L .97619 .60332 L s P P p [ .025 .025 ] 0 setdash p .004 w .02381 .01472 m .06349 .18102 L .08333 .24917 L .10317 .30487 L .12302 .34908 L .14286 .38369 L .1627 .41067 L .18254 .43177 L .20238 .4484 L .22222 .46162 L .24206 .47223 L .2619 .48085 L .28175 .48791 L .30159 .49375 L .34127 .50275 L .38095 .50923 L .42063 .51403 L .46032 .51768 L .5 .52051 L .53968 .52276 L .57937 .52456 L .61905 .52602 L .65873 .52724 L .69841 .52825 L .7381 .5291 L .77778 .52983 L .81746 .53045 L .85714 .53098 L .89683 .53145 L .93651 .53186 L .97619 .53222 L s P P p [ .005 .025 .025 .025 ] 0 setdash p .004 w .02381 .05602 m .02629 .09932 L .02877 .1347 L .03373 .18902 L .03869 .22878 L .04365 .25914 L .04861 .28308 L .05357 .30244 L .06349 .33185 L .07341 .35312 L .08333 .36922 L .09325 .38184 L .10317 .39198 L .12302 .4073 L .14286 .41831 L .1627 .42661 L .18254 .43309 L .20238 .43828 L .22222 .44254 L .2619 .44912 L .30159 .45395 L .34127 .45766 L .38095 .46058 L .42063 .46296 L .46032 .46492 L .5 .46657 L .53968 .46798 L .57937 .46919 L .61905 .47025 L .65873 .47118 L .69841 .472 L .7381 .47274 L .77778 .4734 L .81746 .474 L .85714 .47454 L .89683 .47503 L .93651 .47548 L .97619 .47589 L s P P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; endGroup; ] In all three cases the Q is flat, except at low frequencies where the auditory filters have a smaller Q and a wider relative bandwidth. For the rest of this report we will use GlasbergÕs parameters. :[font = subsection; inactive; preserveAspect; startGroup; ] 2.2 Channel Spacing :[font = text; inactive; preserveAspect; ] Each filter in PatersonÕs model is one ERB wide, but the frequency spacing between channels is not specified. In the cochlea there are many thousands of hair cells but computer models can only approximate this density of channels. Two ways to allocate the channels will be described here. In the simpler case, each cochlear channel is spaced a given fraction of an ERB from the previous one. Alternatively, the highest and lowest frequencies can be specified along with the desired number of channels. The equation for the simple case can then be solved to find the proper ERB spacing for each channel. :[font = text; inactive; preserveAspect; ] In our implementation of LyonÕs Cochlear Model [Slaney1988] we used the parameter stepfactor to indicate the amount of overlap (usually as a fraction less than one.) We will use the same convention here. Stepfactors close to zero indicate filters nearly completely overlap, a stepfactor of 0.5 means that each frequency in the input signal is ÒsampledÓ by two cochlear channels, and a stepfactor of 1 means that there is almost no overlap between channels. The following expression represents the mapping between center frequency and cochlear position index. We integrate from the Nyquist frequency (fn) down to any arbitrary frequency (cf) to model the propagation of energy from base (high frequencies) to apex (low frequencies).The resulting equation gives us the channel number that is centered on any arbitrary frequency. ;[s] 13:0,0;82,1;92,0;207,1;218,0;279,1;289,0;388,1;398,0;606,1;608,0;643,1;645,0;833,-1; 2:7,13,9,Times,0,12,0,0,0;6,14,10,Times,2,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) index = Integrate[-1/ERB[f, EarQ, minBW, 1]/ stepfactor,{f,fn,cf}] (* :[font = output; output; inactive; preserveAspect; endGroup; ] -((EarQ*Log[cf + EarQ*minBW])/stepfactor) + (EarQ*Log[fn + EarQ*minBW])/stepfactor ;[o] EarQ Log[cf + EarQ minBW] EarQ Log[fn + EarQ minBW] -(-------------------------) + ------------------------- stepfactor stepfactor :[font = input; preserveAspect; startGroup; ] N[index/.GlasbergBandwidthParms/.fn->8000/.stepfactor->.25/. cf->1000] :[font = output; output; inactive; preserveAspect; endGroup; ] 70.46866474889136289 ;[o] 70.4687 :[font = text; inactive; preserveAspect; ] We can use this equation to find how many channels are needed to cover an arbitrary low frequency sound. LetÕs plot this, assuming a Nyquist rate of 8000Hz. We overlap the filters by 25% (stepfactor=.25). ;[s] 3:0,0;189,1;199,0;206,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = input; preserveAspect; startGroup; ] Plot[index/.GlasbergBandwidthParms/. stepfactor->.25/.fn->8000, {cf,100,8000}, AxesLabel->{"Frequency","Channel #"}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119048 0.0147151 0.00493294 [ [(2000)] .2619 .01472 0 2 Msboxa [(4000)] .5 .01472 0 2 Msboxa [(6000)] .7381 .01472 0 2 Msboxa [(8000)] .97619 .01472 0 2 Msboxa [(Frequency)] 1.025 .01472 -1 0 Msboxa [(20)] .01131 .11337 1 0 Msboxa [(40)] .01131 .21203 1 0 Msboxa [(60)] .01131 .31069 1 0 Msboxa [(80)] .01131 .40935 1 0 Msboxa [(100)] .01131 .50801 1 0 Msboxa [(120)] .01131 .60667 1 0 Msboxa [(Channel #)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .2619 .01472 m .2619 .02097 L s P [(2000)] .2619 .01472 0 2 Mshowa p .002 w .5 .01472 m .5 .02097 L s P [(4000)] .5 .01472 0 2 Mshowa p .002 w .7381 .01472 m .7381 .02097 L s P [(6000)] .7381 .01472 0 2 Mshowa p .002 w .97619 .01472 m .97619 .02097 L s P [(8000)] .97619 .01472 0 2 Mshowa p .001 w .07143 .01472 m .07143 .01847 L s P p .001 w .11905 .01472 m .11905 .01847 L s P p .001 w .16667 .01472 m .16667 .01847 L s P p .001 w .21429 .01472 m .21429 .01847 L s P p .001 w .30952 .01472 m .30952 .01847 L s P p .001 w .35714 .01472 m .35714 .01847 L s P p .001 w .40476 .01472 m .40476 .01847 L s P p .001 w .45238 .01472 m .45238 .01847 L s P p .001 w .54762 .01472 m .54762 .01847 L s P p .001 w .59524 .01472 m .59524 .01847 L s P p .001 w .64286 .01472 m .64286 .01847 L s P p .001 w .69048 .01472 m .69048 .01847 L s P p .001 w .78571 .01472 m .78571 .01847 L s P p .001 w .83333 .01472 m .83333 .01847 L s P p .001 w .88095 .01472 m .88095 .01847 L s P p .001 w .92857 .01472 m .92857 .01847 L s P [(Frequency)] 1.025 .01472 -1 0 Mshowa p .002 w 0 .01472 m 1 .01472 L s P p .002 w .02381 .11337 m .03006 .11337 L s P [(20)] .01131 .11337 1 0 Mshowa p .002 w .02381 .21203 m .03006 .21203 L s P [(40)] .01131 .21203 1 0 Mshowa p .002 w .02381 .31069 m .03006 .31069 L s P [(60)] .01131 .31069 1 0 Mshowa p .002 w .02381 .40935 m .03006 .40935 L s P [(80)] .01131 .40935 1 0 Mshowa p .002 w .02381 .50801 m .03006 .50801 L s P [(100)] .01131 .50801 1 0 Mshowa p .002 w .02381 .60667 m .03006 .60667 L s P [(120)] .01131 .60667 1 0 Mshowa p .001 w .02381 .03445 m .02756 .03445 L s P p .001 w .02381 .05418 m .02756 .05418 L s P p .001 w .02381 .07391 m .02756 .07391 L s P p .001 w .02381 .09364 m .02756 .09364 L s P p .001 w .02381 .13311 m .02756 .13311 L s P p .001 w .02381 .15284 m .02756 .15284 L s P p .001 w .02381 .17257 m .02756 .17257 L s P p .001 w .02381 .1923 m .02756 .1923 L s P p .001 w .02381 .23176 m .02756 .23176 L s P p .001 w .02381 .2515 m .02756 .2515 L s P p .001 w .02381 .27123 m .02756 .27123 L s P p .001 w .02381 .29096 m .02756 .29096 L s P p .001 w .02381 .33042 m .02756 .33042 L s P p .001 w .02381 .35016 m .02756 .35016 L s P p .001 w .02381 .36989 m .02756 .36989 L s P p .001 w .02381 .38962 m .02756 .38962 L s P p .001 w .02381 .42908 m .02756 .42908 L s P p .001 w .02381 .44881 m .02756 .44881 L s P p .001 w .02381 .46855 m .02756 .46855 L s P p .001 w .02381 .48828 m .02756 .48828 L s P p .001 w .02381 .52774 m .02756 .52774 L s P p .001 w .02381 .54747 m .02756 .54747 L s P p .001 w .02381 .5672 m .02756 .5672 L s P p .001 w .02381 .58694 m .02756 .58694 L s P [(Channel #)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .03571 .60332 m .05531 .52914 L .0749 .47652 L .11409 .40236 L .15327 .34976 L .19246 .30896 L .23165 .27562 L .27083 .24744 L .31002 .22302 L .34921 .20149 L .38839 .18223 L .42758 .1648 L .46677 .1489 L .50595 .13426 L .54514 .12071 L .58433 .1081 L .62351 .0963 L .6627 .08522 L .70188 .07477 L .74107 .06489 L .78026 .05551 L .81944 .04659 L .85863 .03808 L .89782 .02996 L .937 .02218 L .97619 .01472 L s P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] We need to invert this equation to find the mapping between index and center frequency. This will allow us to calculate the appropriate center frequency for any stage in the filter bank. :[font = input; initialization; preserveAspect; startGroup; ] *) cfsoln = Simplify[Solve[index == i, cf][[1,1]]] (* :[font = output; output; inactive; preserveAspect; endGroup; ] cf -> -(EarQ*minBW) + (fn + EarQ*minBW)/E^((i*stepfactor)/EarQ) ;[o] fn + EarQ minBW cf -> -(EarQ minBW) + -------------------- (i stepfactor)/EarQ E :[font = input; preserveAspect; startGroup; ] N[cf/.cfsoln/.GlasbergBandwidthParms/.fn->8000/.stepfactor->.25/. i->70] :[font = output; output; inactive; preserveAspect; endGroup; ] 1015.639492230822716 ;[o] 1015.64 :[font = text; inactive; preserveAspect; ] We plot this solution to make sure it looks reasonable. :[font = input; preserveAspect; startGroup; ] Plot[cf/.cfsoln/.GlasbergBandwidthParms/. fac->1.0/.stepfactor->.25/.fn->8000,{i,0,120}, AxesLabel->{"Channel #","Frequency"}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00793651 0.0147151 7.35755e-05 [ [(20)] .18254 .01472 0 2 Msboxa [(40)] .34127 .01472 0 2 Msboxa [(60)] .5 .01472 0 2 Msboxa [(80)] .65873 .01472 0 2 Msboxa [(100)] .81746 .01472 0 2 Msboxa [(120)] .97619 .01472 0 2 Msboxa [(Channel #)] 1.025 .01472 -1 0 Msboxa [(2000)] .01131 .16187 1 0 Msboxa [(4000)] .01131 .30902 1 0 Msboxa [(6000)] .01131 .45617 1 0 Msboxa [(8000)] .01131 .60332 1 0 Msboxa [(Frequency)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .18254 .01472 m .18254 .02097 L s P [(20)] .18254 .01472 0 2 Mshowa p .002 w .34127 .01472 m .34127 .02097 L s P [(40)] .34127 .01472 0 2 Mshowa p .002 w .5 .01472 m .5 .02097 L s P [(60)] .5 .01472 0 2 Mshowa p .002 w .65873 .01472 m .65873 .02097 L s P [(80)] .65873 .01472 0 2 Mshowa p .002 w .81746 .01472 m .81746 .02097 L s P [(100)] .81746 .01472 0 2 Mshowa p .002 w .97619 .01472 m .97619 .02097 L s P [(120)] .97619 .01472 0 2 Mshowa p .001 w .05556 .01472 m .05556 .01847 L s P p .001 w .0873 .01472 m .0873 .01847 L s P p .001 w .11905 .01472 m .11905 .01847 L s P p .001 w .15079 .01472 m .15079 .01847 L s P p .001 w .21429 .01472 m .21429 .01847 L s P p .001 w .24603 .01472 m .24603 .01847 L s P p .001 w .27778 .01472 m .27778 .01847 L s P p .001 w .30952 .01472 m .30952 .01847 L s P p .001 w .37302 .01472 m .37302 .01847 L s P p .001 w .40476 .01472 m .40476 .01847 L s P p .001 w .43651 .01472 m .43651 .01847 L s P p .001 w .46825 .01472 m .46825 .01847 L s P p .001 w .53175 .01472 m .53175 .01847 L s P p .001 w .56349 .01472 m .56349 .01847 L s P p .001 w .59524 .01472 m .59524 .01847 L s P p .001 w .62698 .01472 m .62698 .01847 L s P p .001 w .69048 .01472 m .69048 .01847 L s P p .001 w .72222 .01472 m .72222 .01847 L s P p .001 w .75397 .01472 m .75397 .01847 L s P p .001 w .78571 .01472 m .78571 .01847 L s P p .001 w .84921 .01472 m .84921 .01847 L s P p .001 w .88095 .01472 m .88095 .01847 L s P p .001 w .9127 .01472 m .9127 .01847 L s P p .001 w .94444 .01472 m .94444 .01847 L s P [(Channel #)] 1.025 .01472 -1 0 Mshowa p .002 w 0 .01472 m 1 .01472 L s P p .002 w .02381 .16187 m .03006 .16187 L s P [(2000)] .01131 .16187 1 0 Mshowa p .002 w .02381 .30902 m .03006 .30902 L s P [(4000)] .01131 .30902 1 0 Mshowa p .002 w .02381 .45617 m .03006 .45617 L s P [(6000)] .01131 .45617 1 0 Mshowa p .002 w .02381 .60332 m .03006 .60332 L s P [(8000)] .01131 .60332 1 0 Mshowa p .001 w .02381 .04415 m .02756 .04415 L s P p .001 w .02381 .07358 m .02756 .07358 L s P p .001 w .02381 .10301 m .02756 .10301 L s P p .001 w .02381 .13244 m .02756 .13244 L s P p .001 w .02381 .1913 m .02756 .1913 L s P p .001 w .02381 .22073 m .02756 .22073 L s P p .001 w .02381 .25016 m .02756 .25016 L s P p .001 w .02381 .27959 m .02756 .27959 L s P p .001 w .02381 .33845 m .02756 .33845 L s P p .001 w .02381 .36788 m .02756 .36788 L s P p .001 w .02381 .39731 m .02756 .39731 L s P p .001 w .02381 .42674 m .02756 .42674 L s P p .001 w .02381 .4856 m .02756 .4856 L s P p .001 w .02381 .51503 m .02756 .51503 L s P p .001 w .02381 .54446 m .02756 .54446 L s P p .001 w .02381 .57389 m .02756 .57389 L s P [(Frequency)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02381 .60332 m .06349 .5269 L .10317 .46013 L .14286 .40179 L .18254 .35081 L .22222 .30626 L .2619 .26734 L .30159 .23333 L .34127 .20361 L .38095 .17764 L .42063 .15495 L .46032 .13513 L .5 .1178 L .53968 .10267 L .57937 .08944 L .61905 .07788 L .65873 .06779 L .69841 .05896 L .7381 .05125 L .77778 .04452 L .81746 .03863 L .85714 .03349 L .89683 .02899 L .93651 .02506 L .97619 .02163 L s P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Alternatively, we might know how many channels we want within a frequency range. We can solve the index equation for the proper stepfactor to use. ;[s] 5:0,0;99,1;104,0;129,1;139,0;148,-1; 2:3,13,9,Times,0,12,0,0,0;2,14,10,Times,2,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) stepSoln=Simplify[Solve[index==numChannels/. cf->lowFreq,stepfactor]] (* :[font = output; output; inactive; preserveAspect; endGroup; ] {{stepfactor -> (EarQ*(Log[fn + EarQ*minBW] - Log[lowFreq + EarQ*minBW]))/numChannels }} ;[o] EarQ (Log[fn + EarQ minBW] - Log[lowFreq + EarQ minBW]) {{stepfactor -> -------------------------------------------------------}} numChannels :[font = text; inactive; preserveAspect; ] To make this even easier to use, we can substitute this expression for the proper stepfactor into the equation for the center frequency. This gives us ;[s] 3:0,0;82,1;92,0;152,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) fixedChannelCF=Simplify[cfsoln/.stepSoln] (* :[font = output; output; inactive; preserveAspect; endGroup; ] {cf -> -(EarQ*minBW) + E^ ((i*(-Log[fn + EarQ*minBW] + Log[lowFreq + EarQ*minBW]))/ numChannels)*(fn + EarQ*minBW)} ;[o] {cf -> -(EarQ minBW) + E (i (-Log[fn + EarQ minBW] + Log[lowFreq + EarQ minBW]))/numChannels (fn + EarQ minBW)} :[font = input; preserveAspect; startGroup; ] cf/.fixedChannelCF/.GlasbergBandwidthParms/.fn->8000/. numChannels->100/.lowFreq->100/.i->59 :[font = output; output; inactive; preserveAspect; endGroup; ] 1002.297649082344222 ;[o] 1002.3 :[font = text; inactive; preserveAspect; ] Note that channel 0 is at the Nyquist rate. We should probably use channels 1 through numChannels when we design the filter bank. The plot below shows the center frequency for each of the 101 channels that range from the Nyquist rate (8000Hz) to 100Hz. ;[s] 3:0,0;87,1;98,0;254,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = input; preserveAspect; startGroup; ] Plot[cf/.fixedChannelCF/.GlasbergBandwidthParms/. numChannels->100/.lowFreq->100/.fn->8000, {i,0,100}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; endGroup; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00952381 0.0147151 7.35755e-05 [ [(20)] .21429 .01472 0 2 Msboxa [(40)] .40476 .01472 0 2 Msboxa [(60)] .59524 .01472 0 2 Msboxa [(80)] .78571 .01472 0 2 Msboxa [(100)] .97619 .01472 0 2 Msboxa [(2000)] .01131 .16187 1 0 Msboxa [(4000)] .01131 .30902 1 0 Msboxa [(6000)] .01131 .45617 1 0 Msboxa [(8000)] .01131 .60332 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21429 .01472 m .21429 .02097 L s P [(20)] .21429 .01472 0 2 Mshowa p .002 w .40476 .01472 m .40476 .02097 L s P [(40)] .40476 .01472 0 2 Mshowa p .002 w .59524 .01472 m .59524 .02097 L s P [(60)] .59524 .01472 0 2 Mshowa p .002 w .78571 .01472 m .78571 .02097 L s P [(80)] .78571 .01472 0 2 Mshowa p .002 w .97619 .01472 m .97619 .02097 L s P [(100)] .97619 .01472 0 2 Mshowa p .001 w .0619 .01472 m .0619 .01847 L s P p .001 w .1 .01472 m .1 .01847 L s P p .001 w .1381 .01472 m .1381 .01847 L s P p .001 w .17619 .01472 m .17619 .01847 L s P p .001 w .25238 .01472 m .25238 .01847 L s P p .001 w .29048 .01472 m .29048 .01847 L s P p .001 w .32857 .01472 m .32857 .01847 L s P p .001 w .36667 .01472 m .36667 .01847 L s P p .001 w .44286 .01472 m .44286 .01847 L s P p .001 w .48095 .01472 m .48095 .01847 L s P p .001 w .51905 .01472 m .51905 .01847 L s P p .001 w .55714 .01472 m .55714 .01847 L s P p .001 w .63333 .01472 m .63333 .01847 L s P p .001 w .67143 .01472 m .67143 .01847 L s P p .001 w .70952 .01472 m .70952 .01847 L s P p .001 w .74762 .01472 m .74762 .01847 L s P p .001 w .82381 .01472 m .82381 .01847 L s P p .001 w .8619 .01472 m .8619 .01847 L s P p .001 w .9 .01472 m .9 .01847 L s P p .001 w .9381 .01472 m .9381 .01847 L s P p .002 w 0 .01472 m 1 .01472 L s P p .002 w .02381 .16187 m .03006 .16187 L s P [(2000)] .01131 .16187 1 0 Mshowa p .002 w .02381 .30902 m .03006 .30902 L s P [(4000)] .01131 .30902 1 0 Mshowa p .002 w .02381 .45617 m .03006 .45617 L s P [(6000)] .01131 .45617 1 0 Mshowa p .002 w .02381 .60332 m .03006 .60332 L s P [(8000)] .01131 .60332 1 0 Mshowa p .001 w .02381 .04415 m .02756 .04415 L s P p .001 w .02381 .07358 m .02756 .07358 L s P p .001 w .02381 .10301 m .02756 .10301 L s P p .001 w .02381 .13244 m .02756 .13244 L s P p .001 w .02381 .1913 m .02756 .1913 L s P p .001 w .02381 .22073 m .02756 .22073 L s P p .001 w .02381 .25016 m .02756 .25016 L s P p .001 w .02381 .27959 m .02756 .27959 L s P p .001 w .02381 .33845 m .02756 .33845 L s P p .001 w .02381 .36788 m .02756 .36788 L s P p .001 w .02381 .39731 m .02756 .39731 L s P p .001 w .02381 .42674 m .02756 .42674 L s P p .001 w .02381 .4856 m .02756 .4856 L s P p .001 w .02381 .51503 m .02756 .51503 L s P p .001 w .02381 .54446 m .02756 .54446 L s P p .001 w .02381 .57389 m .02756 .57389 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02381 .60332 m .06349 .52731 L .10317 .46084 L .14286 .40271 L .18254 .35188 L .22222 .30744 L .2619 .26857 L .30159 .23459 L .34127 .20487 L .38095 .17888 L .42063 .15616 L .46032 .13628 L .5 .11891 L .53968 .10371 L .57937 .09043 L .61905 .07881 L .65873 .06865 L .69841 .05976 L .7381 .05199 L .77778 .0452 L .81746 .03926 L .85714 .03406 L .89683 .02952 L .93651 .02555 L .97619 .02207 L s P P % End of Graphics MathPictureEnd :[font = section; inactive; pageBreak; preserveAspect; startGroup; ] 3.0 Gammatone Filters :[font = text; inactive; preserveAspect; ] Roy PattersonÕs ear model is based on impulse responses of the form :[font = input; output; inactive; preserveAspect; ] g[t] = a t^(n-1)E^(-2 Pi b t)Cos[2 Pi fc t + phi] ;[o] n - 1 a t Cos[2 Pi fc t + phi] g[t] = ----------------------------- 2 Pi b t E :[font = text; inactive; preserveAspect; ] Here is the expected impulse response for a cochlear channel centered at 1000Hz (fc), a bandwidth (b) of 125Hz, and order (n) 4. :[font = input; preserveAspect; startGroup; ] Plot[t^(4-1)E^(-2 Pi 125 t)Cos[2 Pi 1000 t],{t,0,.015}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 63.4921 0.307834 1.06886e+08 [ [(0.002)] .15079 .30783 0 2 Msboxa [(0.004)] .27778 .30783 0 2 Msboxa [(0.006)] .40476 .30783 0 2 Msboxa [(0.008)] .53175 .30783 0 2 Msboxa [(0.01)] .65873 .30783 0 2 Msboxa [(0.012)] .78571 .30783 0 2 Msboxa [(0.014)] .9127 .30783 0 2 Msboxa [( -9)(-2. 10)] .01131 .09406 1 0 Msboxa [( -9)(-1. 10)] .01131 .20095 1 0 Msboxa [( -9)(1. 10)] .01131 .41472 1 0 Msboxa [( -9)(2. 10)] .01131 .52161 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .15079 .30783 m .15079 .31408 L s P [(0.002)] .15079 .30783 0 2 Mshowa p .002 w .27778 .30783 m .27778 .31408 L s P [(0.004)] .27778 .30783 0 2 Mshowa p .002 w .40476 .30783 m .40476 .31408 L s P [(0.006)] .40476 .30783 0 2 Mshowa p .002 w .53175 .30783 m .53175 .31408 L s P [(0.008)] .53175 .30783 0 2 Mshowa p .002 w .65873 .30783 m .65873 .31408 L s P [(0.01)] .65873 .30783 0 2 Mshowa p .002 w .78571 .30783 m .78571 .31408 L s P [(0.012)] .78571 .30783 0 2 Mshowa p .002 w .9127 .30783 m .9127 .31408 L s P [(0.014)] .9127 .30783 0 2 Mshowa p .001 w .04921 .30783 m .04921 .31158 L s P p .001 w .0746 .30783 m .0746 .31158 L s P p .001 w .1 .30783 m .1 .31158 L s P p .001 w .1254 .30783 m .1254 .31158 L s P p .001 w .17619 .30783 m .17619 .31158 L s P p .001 w .20159 .30783 m .20159 .31158 L s P p .001 w .22698 .30783 m .22698 .31158 L s P p .001 w .25238 .30783 m .25238 .31158 L s P p .001 w .30317 .30783 m .30317 .31158 L s P p .001 w .32857 .30783 m .32857 .31158 L s P p .001 w .35397 .30783 m .35397 .31158 L s P p .001 w .37937 .30783 m .37937 .31158 L s P p .001 w .43016 .30783 m .43016 .31158 L s P p .001 w .45556 .30783 m .45556 .31158 L s P p .001 w .48095 .30783 m .48095 .31158 L s P p .001 w .50635 .30783 m .50635 .31158 L s P p .001 w .55714 .30783 m .55714 .31158 L s P p .001 w .58254 .30783 m .58254 .31158 L s P p .001 w .60794 .30783 m .60794 .31158 L s P p .001 w .63333 .30783 m .63333 .31158 L s P p .001 w .68413 .30783 m .68413 .31158 L s P p .001 w .70952 .30783 m .70952 .31158 L s P p .001 w .73492 .30783 m .73492 .31158 L s P p .001 w .76032 .30783 m .76032 .31158 L s P p .001 w .81111 .30783 m .81111 .31158 L s P p .001 w .83651 .30783 m .83651 .31158 L s P p .001 w .8619 .30783 m .8619 .31158 L s P p .001 w .8873 .30783 m .8873 .31158 L s P p .001 w .9381 .30783 m .9381 .31158 L s P p .001 w .96349 .30783 m .96349 .31158 L s P p .001 w .98889 .30783 m .98889 .31158 L s P p .002 w 0 .30783 m 1 .30783 L s P p .002 w .02381 .09406 m .03006 .09406 L s P [( -9)(-2. 10)] .01131 .09406 1 0 Mshowa p .002 w .02381 .20095 m .03006 .20095 L s P [( -9)(-1. 10)] .01131 .20095 1 0 Mshowa p .002 w .02381 .41472 m .03006 .41472 L s P [( -9)(1. 10)] .01131 .41472 1 0 Mshowa p .002 w .02381 .52161 m .03006 .52161 L s P [( -9)(2. 10)] .01131 .52161 1 0 Mshowa p .001 w .02381 .11544 m .02756 .11544 L s P p .001 w .02381 .13682 m .02756 .13682 L s P p .001 w .02381 .15819 m .02756 .15819 L s P p .001 w .02381 .17957 m .02756 .17957 L s P p .001 w .02381 .22233 m .02756 .22233 L s P p .001 w .02381 .2437 m .02756 .2437 L s P p .001 w .02381 .26508 m .02756 .26508 L s P p .001 w .02381 .28646 m .02756 .28646 L s P p .001 w .02381 .32921 m .02756 .32921 L s P p .001 w .02381 .35059 m .02756 .35059 L s P p .001 w .02381 .37197 m .02756 .37197 L s P p .001 w .02381 .39334 m .02756 .39334 L s P p .001 w .02381 .4361 m .02756 .4361 L s P p .001 w .02381 .45748 m .02756 .45748 L s P p .001 w .02381 .47885 m .02756 .47885 L s P p .001 w .02381 .50023 m .02756 .50023 L s P p .001 w .02381 .07268 m .02756 .07268 L s P p .001 w .02381 .05131 m .02756 .05131 L s P p .001 w .02381 .02993 m .02756 .02993 L s P p .001 w .02381 .00855 m .02756 .00855 L s P p .001 w .02381 .54298 m .02756 .54298 L s P p .001 w .02381 .56436 m .02756 .56436 L s P p .001 w .02381 .58574 m .02756 .58574 L s P p .001 w .02381 .60712 m .02756 .60712 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02381 .30783 m .02505 .30784 L .02629 .30784 L .02753 .30785 L .02877 .30788 L .03125 .30795 L .03249 .30799 L .03373 .30803 L .03497 .30806 L .03621 .30806 L .03745 .30803 L .03869 .30795 L .03993 .3078 L .04117 .30758 L .04241 .30726 L .04365 .30686 L .04613 .30574 L .04861 .30421 L .05357 .30036 L .05605 .29845 L .05729 .29763 L .05853 .29695 L .05977 .29645 L .06101 .29619 L .06225 .29621 L .06349 .29654 L .06473 .29722 L .06597 .29828 L .06721 .29975 L .06845 .30163 L .07341 .31322 L .07589 .32108 L .07837 .32975 L .08085 .33858 L .08333 .3468 L .08457 .35042 L .08581 .35356 L .08705 .35613 L .08829 .35802 L .08953 .35914 L .09077 .3594 L .09201 .35874 L .09325 .35709 L .10317 .30783 L .10813 .26624 L .11062 .24515 L .1131 .22593 L .11434 .21753 L .11558 .21019 L .11682 .20409 L Mistroke .11806 .19941 L .1193 .19628 L .12054 .19485 L .12178 .1952 L .12302 .19742 L .12426 .20154 L .1255 .20758 L .12674 .21552 L .12798 .22529 L .13294 .28038 L .1379 .35173 L .14286 .42209 L .14534 .45081 L .14658 .46255 L .14782 .4722 L .14906 .47954 L .1503 .48438 L .15154 .48659 L .15278 .48605 L .15402 .48269 L .15526 .4765 L .1565 .4675 L .15774 .45577 L .16022 .42465 L .1627 .38465 L .16766 .28728 L .17262 .18651 L .1751 .14294 L .17634 .12421 L .17758 .10798 L .17882 .09454 L .18006 .08417 L .1813 .07707 L .18254 .07341 L .18378 .0733 L .18502 .0768 L .18626 .08392 L .1875 .09459 L .18998 .12607 L .19246 .16966 L .19742 .28282 L .20238 .40777 L .20486 .46507 L .20734 .51395 L .20858 .5342 L .20982 .5512 L .21106 .56463 L .2123 .57427 L .21354 .57993 L .21478 .58149 L Mistroke .21602 .57889 L .21726 .57214 L .2185 .5613 L .21974 .54653 L .22222 .506 L .2247 .45287 L .22718 .39023 L .23214 .25185 L .2371 .1241 L .23958 .07427 L .24082 .05436 L .24206 .03821 L .2433 .0261 L .24454 .01823 L .24578 .01472 L .24702 .01564 L .24826 .02099 L .2495 .0307 L .25074 .04464 L .25198 .06259 L .25446 .10941 L .25694 .16835 L .2619 .30783 L .26687 .44764 L .26935 .50696 L .27059 .5323 L .27183 .55424 L .27307 .57244 L .27431 .58663 L .27555 .59659 L .27679 .60218 L .27803 .60332 L .27927 .59999 L .28051 .59226 L .28175 .58024 L .28423 .5442 L .28671 .4941 L .29167 .36481 L .29663 .22358 L .29911 .15915 L .30159 .1041 L .30283 .08115 L .30407 .0617 L .30531 .04604 L .30655 .03439 L .30779 .02692 L .30903 .02371 L .31027 .02479 L .31151 .03014 L .31275 .03964 L Mistroke .31399 .05314 L .31647 .09116 L .31895 .14175 L .32143 .20174 L .32639 .33469 L .32887 .39957 L .33135 .45816 L .33383 .507 L .33507 .52687 L .33631 .5433 L .33755 .55607 L .33879 .56502 L .34003 .57004 L .34127 .57108 L .34251 .56815 L .34375 .56133 L .34499 .55074 L .34623 .53658 L .34871 .49854 L .35119 .44971 L .35615 .33246 L .36111 .2133 L .36359 .16195 L .36607 .1202 L .36731 .10368 L .36855 .09038 L .36979 .08046 L .37103 .07406 L .37227 .07122 L .37351 .07197 L .37475 .07626 L .37599 .08399 L .37723 .09501 L .37847 .10912 L .38095 .14561 L .39087 .35081 L .39335 .40105 L .39583 .44468 L .39707 .46323 L .39831 .47925 L .39955 .49251 L .40079 .50286 L .40203 .51017 L .40327 .51436 L .40451 .5154 L .40575 .51332 L .40699 .50817 L .40823 .50006 L .41071 .47567 L .41319 .44184 L Mistroke .41567 .40081 L .42063 .30783 L .4256 .21919 L .42808 .18308 L .42932 .16804 L .43056 .15527 L .4318 .14496 L .43304 .13721 L .43428 .13213 L .43552 .12974 L .43676 .13006 L .438 .13304 L .43924 .13861 L .44048 .14665 L .44296 .1695 L .44544 .19998 L .4504 .27553 L .45536 .35464 L .45784 .38962 L .46032 .4188 L .46156 .43071 L .4628 .44061 L .46404 .44839 L .46528 .45394 L .46652 .45723 L .46776 .45823 L .469 .45696 L .47024 .45347 L .47148 .44785 L .47272 .4402 L .4752 .41943 L .48016 .36152 L .48512 .29448 L .4876 .26258 L .49008 .2343 L .49256 .2112 L .4938 .20199 L .49504 .19451 L .49628 .18883 L .49752 .18503 L .49876 .18313 L .5 .18312 L .50124 .18499 L .50248 .18867 L .50372 .19409 L .50496 .20113 L .50744 .21954 L .50992 .24264 L .51488 .29668 L .51984 .35004 L Mistroke .52232 .3725 L .52356 .3821 L .5248 .39044 L .52604 .3974 L .52728 .40291 L .52852 .40691 L .52976 .40936 L .531 .41025 L .53224 .40958 L .53348 .4074 L .53472 .40376 L .5372 .39244 L .53968 .37646 L .5496 .2901 L .55208 .26961 L .55456 .25206 L .5558 .24468 L .55704 .23838 L .55828 .23323 L .55952 .22927 L .56076 .22657 L .562 .22513 L .56324 .22495 L .56448 .22602 L .56572 .22829 L .56696 .23173 L .56944 .24176 L .57192 .25537 L .5744 .27163 L .57937 .30783 L .58185 .32555 L .58433 .34162 L .58681 .35513 L .58805 .3607 L .58929 .36538 L .59053 .36911 L .59177 .37186 L .59301 .3736 L .59425 .37433 L .59549 .37404 L .59673 .37277 L .59797 .37054 L .59921 .36742 L .60169 .35872 L .60417 .34732 L .60913 .31955 L .61409 .29102 L .61657 .27859 L .61905 .26834 L .62029 .2642 L Mistroke .62153 .26079 L .62277 .25815 L .62401 .2563 L .62525 .25525 L .62649 .25502 L .62773 .25558 L .62897 .25691 L .63021 .25899 L .63145 .26176 L .63393 .26915 L .63889 .28938 L .64385 .31239 L .64633 .32319 L .64881 .33269 L .65129 .34037 L .65253 .3434 L .65377 .34584 L .65501 .34766 L .65625 .34885 L .65749 .34941 L .65873 .34933 L .65997 .34863 L .66121 .34733 L .66245 .34546 L .66369 .34306 L .66617 .33687 L .66865 .3292 L .67361 .31146 L .67857 .29421 L .68105 .28703 L .68229 .28399 L .68353 .28136 L .68477 .27918 L .68601 .27747 L .68725 .27625 L .68849 .27552 L .68973 .2753 L .69097 .27557 L .69221 .27631 L .69345 .27752 L .69469 .27915 L .69593 .28119 L .69841 .28629 L .70337 .29933 L .70833 .31333 L .71081 .31963 L .71329 .325 L .71453 .32724 L .71577 .32914 L .71701 .33068 L Mistroke .71825 .33185 L .71949 .33264 L .72073 .33304 L .72197 .33306 L .72321 .33269 L .72445 .33196 L .72569 .33089 L .72817 .32779 L .73065 .32363 L .73313 .3187 L .7381 .30783 L .74058 .30256 L .74306 .29782 L .74554 .29385 L .74678 .29222 L .74802 .29087 L .74926 .28979 L .7505 .28901 L .75174 .28853 L .75298 .28834 L .75422 .28845 L .75546 .28885 L .7567 .28953 L .75794 .29046 L .76042 .29304 L .7629 .29639 L .76786 .30446 L .77282 .31266 L .7753 .3162 L .77778 .3191 L .77902 .32027 L .78026 .32122 L .7815 .32195 L .78274 .32246 L .78398 .32274 L .78522 .32278 L .78646 .32261 L .7877 .32221 L .78894 .32161 L .79018 .32081 L .79266 .3187 L .79762 .31299 L .80258 .30657 L .80506 .30357 L .80754 .30095 L .81002 .29885 L .81126 .29803 L .8125 .29737 L .81374 .29688 L .81498 .29656 L Mistroke .81622 .29642 L .81746 .29646 L .8187 .29666 L .81994 .29703 L .82118 .29756 L .82242 .29822 L .8249 .29993 L .82738 .30203 L .83234 .30685 L .8373 .3115 L .83978 .31342 L .84102 .31423 L .84226 .31493 L .8435 .31551 L .84474 .31596 L .84598 .31627 L .84722 .31646 L .84846 .31651 L .8497 .31643 L .85094 .31622 L .85218 .31589 L .85342 .31545 L .85466 .3149 L .85714 .31353 L .8621 .31007 L .86706 .30639 L .86954 .30474 L .87202 .30335 L .87326 .30277 L .8745 .30228 L .87574 .30188 L .87698 .30158 L .87822 .30138 L .87946 .30129 L .8807 .30129 L .88194 .30139 L .88318 .30158 L .88442 .30187 L .8869 .30268 L .88938 .30376 L .89187 .30504 L .89683 .30783 L .89931 .30918 L .90179 .31039 L .90427 .3114 L .90551 .31181 L .90675 .31215 L .90799 .31242 L .90923 .31261 L .91047 .31273 L Mistroke .91171 .31277 L .91295 .31274 L .91419 .31264 L .91543 .31246 L .91667 .31222 L .91915 .31156 L .92163 .31071 L .92659 .30868 L .93155 .30663 L .93403 .30575 L .93651 .30503 L .93775 .30474 L .93899 .30451 L .94023 .30433 L .94147 .30421 L .94271 .30414 L .94395 .30413 L .94519 .30418 L .94643 .30428 L .94767 .30443 L .94891 .30463 L .95139 .30516 L .95635 .30657 L .97619 .31059 L Mfstroke P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Patterson recommends setting the bandwidth, b, in the Gammatone filter to 1.019 times the ERB. :[font = text; inactive; preserveAspect; ] Martin Cooke [Cooke1991] describes an implementation that is similar to the one developed here, but not quite as efficient. Cooke develops a digital filter for the baseband Gammatone filter using the impulse invariance transformation. The original sound is first multiplied by a complex exponential at the desired center frequency, then filtered with a baseband Gammatone filter, then post-multiplied by the same exponential. The filter is a fourth order filter but with complex data so the net computational effort for the filter is the same as an eighth order filter. The filter described in this report is an eighth order filter, but doesnÕt need the pre- and post-modulations by a complex exponential. This difference is shown in the following figure. In both implentations, the cost of G(w) is equivalent to an eighth order digital filter. ;[s] 3:0,0;795,1;796,0;847,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Symbol,0,12,0,0,0; :[font = postscript; PICT; formatAsPICT; output; inactive; preserveAspect; pictureLeft = 0; pictureWidth = 434; pictureHeight = 130; pictureID = 30813; ] :[font = text; inactive; preserveAspect; ] Section 3 of this report describes the properties and Laplace Transform of a Gammatone filter. First, in Section 3.1, the Laplace transform of the Gammatone filter is derived. In Section 3.2 the properties of this filter are explored. Sections 3.3 and 3.4 show how to convert the continuous Gammatone filter into a digital filter. Section 3.3 shows a numerical example while 3.4 shows the more general symbolic result. Finally, Section 3.5 shows a simplied version of the Gammatone filter without the zeros in the original filter. This all-pole version will be approximately half the computational cost of the exact formulation but will not be quite as sharp on the low frequency side of the resonance. :[font = subsection; inactive; preserveAspect; startGroup; ] 3.1 Laplace Transform :[font = text; inactive; preserveAspect; ] It would be nice if we could implement a channel of this ear model as a simple digital filter instead of the frequency-domain methods that have been used in the past. The damped exponential looks particularly easy to deal with. First letÕs recall a few Laplace transforms: :[font = input; output; inactive; preserveAspect; ] F[s] = Integrate[E^(-t s)f[t],{t,0,Inf}] ;[o] f[t] F[s] = Integrate[----, {t, 0, Inf}] t s E :[font = input; output; inactive; preserveAspect; ] f[t] -> F[s] ;[o] f[t] -> F[s] :[font = input; output; inactive; preserveAspect; ] t f[t] -> -F'[s] ;[o] t f[t] -> -F'[s] :[font = input; output; inactive; preserveAspect; ] t^n f[t] -> (-1)^n D[F[s],{s,n}] ;[o] n n t f[t] -> (-1) D[F[s], {s, n}] :[font = text; inactive; preserveAspect; ] In Mathematica notation, D[F[s],{s,n}] indicates the n-th derivative of the function F[s] with respect to variable s. Finally, the following Laplace tranform pair is used [CRC1966]. ;[s] 9:0,0;3,1;14,0;25,2;38,0;85,1;89,0;115,1;116,0;182,-1; 3:5,13,9,Times,0,12,0,0,0;3,14,10,Times,2,12,0,0,0;1,13,9,Times,1,12,0,0,0; :[font = input; output; inactive; preserveAspect; ] E^(-B t) Cos[w t] -> (s+B)/((s+B)^2+w^2) ;[o] Cos[w t] s + B -------- -> ------------- B t 2 2 E (s + B) + w :[font = text; inactive; preserveAspect; ] Note that later we will replace B with 2pb or 2p 1.019 ERB(f) and w will be replaced with 2p cf. We ignore the optional phase term in the original Gammatone function because it is a minor effect which we do not feel is important for later processing. Now combining this identity with the Laplace transform of a function multiplied by tn we get ;[s] 9:0,0;40,2;41,0;47,2;49,0;91,2;92,0;336,1;337,0;345,-1; 3:5,13,9,Times,0,12,0,0,0;1,21,13,Times,32,12,0,0,0;3,14,10,Symbol,0,12,0,0,0; :[font = input; output; inactive; preserveAspect; ] t^n E^(-B t) Cos[w t] -> (-1)^n D[(s+B)/((s+B)^2+w^2),{s,n}] ;[o] n t Cos[w t] n s + B ----------- -> (-1) D[-------------, {s, n}] B t 2 2 E (s + B) + w :[font = text; inactive; preserveAspect; ] This is the basic form that we want. LetÕs see what derivatives do to the filter. According to Patterson [Patterson1992], we are mostly interested in the fourth order Gammatone filter, or n=4. Thus we are interested in the third derivative of the Gammatone function above. Here are the first three derivatives. We have ignored the factor of (-1)n because we will later normalize the gain of each filter. ;[s] 3:0,0;350,1;351,0;409,-1; 2:2,13,9,Times,0,12,0,0,0;1,21,13,Times,32,12,0,0,0; :[font = input; output; initialization; preserveAspect; ] *) firstGammaLaplace=(s+B)/((s+B)^2+w^2); (* ;[o] s + B firstGammaLaplace = -------------; 2 2 (s + B) + w :[font = input; preserveAspect; startGroup; ] D[firstGammaLaplace,{s,1}] :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*(B + s)^2)/((B + s)^2 + w^2)^2 + ((B + s)^2 + w^2)^(-1) ;[o] 2 -2 (B + s) 1 ---------------- + ------------- 2 2 2 2 2 ((B + s) + w ) (B + s) + w :[font = input; preserveAspect; startGroup; ] D[firstGammaLaplace,{s,2}] :[font = output; output; inactive; preserveAspect; endGroup; ] (8*(B + s)^3)/((B + s)^2 + w^2)^3 - (6*(B + s))/((B + s)^2 + w^2)^2 ;[o] 3 8 (B + s) 6 (B + s) ---------------- - ---------------- 2 2 3 2 2 2 ((B + s) + w ) ((B + s) + w ) :[font = input; initialization; preserveAspect; startGroup; ] *) filter = D[firstGammaLaplace,{s,3}] (* :[font = output; output; inactive; preserveAspect; endGroup; ] (-48*(B + s)^4)/((B + s)^2 + w^2)^4 + (48*(B + s)^2)/((B + s)^2 + w^2)^3 - 6/((B + s)^2 + w^2)^2 ;[o] 4 2 -48 (B + s) 48 (B + s) 6 ---------------- + ---------------- - ---------------- 2 2 4 2 2 3 2 2 2 ((B + s) + w ) ((B + s) + w ) ((B + s) + w ) :[font = text; inactive; preserveAspect; ] We have saved this filter by storing it in a variable called filter. What does this look like when it is all put together? The Mathematica function Together will simplify the filter function. ;[s] 7:0,0;61,1;67,0;129,1;140,0;150,2;158,0;194,-1; 3:4,13,9,Times,0,12,0,0,0;2,14,10,Times,2,12,0,0,0;1,13,9,Times,1,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) rationalFilter = Together[filter] (* :[font = output; output; inactive; preserveAspect; endGroup; ] (6*(-B^4 - 4*B^3*s - 6*B^2*s^2 - 4*B*s^3 - s^4 + 6*B^2*w^2 + 12*B*s*w^2 + 6*s^2*w^2 - w^4))/(B^2 + 2*B*s + s^2 + w^2)^4 ;[o] 4 3 2 2 3 4 2 2 2 (6 (-B - 4 B s - 6 B s - 4 B s - s + 6 B w + 12 B s w + 2 2 4 2 2 2 4 6 s w - w )) / (B + 2 B s + s + w ) :[font = text; inactive; preserveAspect; ] Ahh, this is interesting. The highest order of s in the numerator or the denominator is eight. Thus an eighth order filter can be used to implement the fourth order gammatone filter. :[font = text; inactive; preserveAspect; ] The expression in the denominator has two unique solutions, but each root is duplicated four times. Thus we have a set of four conjugate pole-pairs, all at the same location. Where are the zeros? We use the Mathematica function Solve to find the complex frequencies, s, where the numerator goes to zero. ;[s] 7:0,0;209,1;220,0;230,2;235,0;269,2;270,0;307,-1; 3:4,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0;2,13,9,Times,1,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) zeros = Simplify[Solve[Numerator[rationalFilter]==0,s]] (* :[font = output; output; inactive; preserveAspect; endGroup; ] {{s -> -B + (3 + 2^(3/2))^(1/2)*w}, {s -> -B - (3 + 2^(3/2))^(1/2)*w}, {s -> -B + (3 - 2^(3/2))^(1/2)*w}, {s -> -B - (3 - 2^(3/2))^(1/2)*w}} ;[o] 3/2 3/2 {{s -> -B + Sqrt[3 + 2 ] w}, {s -> -B - Sqrt[3 + 2 ] w}, 3/2 3/2 {s -> -B + Sqrt[3 - 2 ] w}, {s -> -B - Sqrt[3 - 2 ] w}} :[font = text; inactive; preserveAspect; ] Which can be simplified to the following list (thanks to John Holdworth for pointing this out): :[font = output; output; inactive; preserveAspect; ] {{s -> -B + (1 + 2^(1/2))*w}, {s -> -B - (1 + 2^(1/2))*w}, {s -> -B + (-1 + 2^(1/2))*w}, {s -> -B - (-1 + 2^(1/2))*w}} ;[o] {{s -> -B + (1 + Sqrt[2]) w}, {s -> -B - (1 + Sqrt[2]) w}, {s -> -B + (-1 + Sqrt[2]) w}, {s -> -B - (-1 + Sqrt[2]) w}} :[font = text; inactive; preserveAspect; ] The Mathematica function N is used to convert the roots in the list above into floating point numbers. We lose precision when we do this, so we save this for last. ;[s] 5:0,0;4,1;15,0;25,2;26,0;165,-1; 3:3,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0;1,13,9,Times,1,12,0,0,0; :[font = input; preserveAspect; startGroup; ] N[zeros] :[font = output; output; inactive; preserveAspect; endGroup; ] {{s -> -1.*B + 2.414213562373095049*w}, {s -> -1.*B - 2.414213562373095049*w}, {s -> -1.*B + 0.4142135623730950488*w}, {s -> -1.*B - 0.4142135623730950488*w}} ;[o] {{s -> -1. B + 2.41421 w}, {s -> -1. B - 2.41421 w}, {s -> -1. B + 0.414214 w}, {s -> -1. B - 0.414214 w}} :[font = text; inactive; preserveAspect; ] This is a constellation of zeros around the point ÐB. Two zeros move left and right along the real axis by 2.414w, two other zeros move along the real axis by .414w. :[font = text; inactive; preserveAspect; ] It is interesting to note that if we define the impulse response with a sine instead of a cosine that one of the zeros disappear. The intial Laplace transform has two poles and no zeros. As we take each derivative in the Laplace domain (equivalent to multiplying the impulse response by t) we gain an extra zero. The resulting impulse response has just three zeros. We will expand on this in a later section. :[font = input; initialization; preserveAspect; ] *) firstSineGammaLaplace=B/((s+B)^2+w^2); (* :[font = input; preserveAspect; startGroup; ] Solve[Numerator[D[firstSineGammaLaplace,{s,3}]]==0,s] :[font = output; output; inactive; preserveAspect; endGroup; ] {{s -> -B}, {s -> -B + w}, {s -> -B - w}} ;[o] {{s -> -B}, {s -> -B + w}, {s -> -B - w}} :[font = text; inactive; preserveAspect; ] We can solve a similar equation to find the roots of the Gammatone filter denominator. In this case there are four sets of complex-conjugate pole pairs. We put them in a list called poles for later reference. ;[s] 3:0,0;184,1;189,0;211,-1; 2:2,13,9,Times,0,12,0,0,0;1,13,9,Times,1,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) poles = Simplify[Solve[Denominator[rationalFilter]==0,s]] (* :[font = output; output; inactive; preserveAspect; endGroup; ] {{s -> -B + I*w}, {s -> -B - I*w}, {s -> -B + I*w}, {s -> -B - I*w}, {s -> -B + I*w}, {s -> -B - I*w}, {s -> -B + I*w}, {s -> -B - I*w}} ;[o] {{s -> -B + I w}, {s -> -B - I w}, {s -> -B + I w}, {s -> -B - I w}, {s -> -B + I w}, {s -> -B - I w}, {s -> -B + I w}, {s -> -B - I w}} :[font = text; inactive; preserveAspect; ] We can now plot the location of these poles and zeros assuming a gammatone filter with a bandwidth of 125Hz and a center frequency of 1000Hz (this approximates a 1000Hz cochlear channel.) In the graph below, the four zeros are shown along the real (horizontal) axis. There are four sets of poles at each of the dots indicated near ±6000j (which indicates a resonance near 1000Hz.) :[font = input; initialization; dontPreserveAspect; keywords = "PlotPoles"] *) PlotPolesWithDots[complexpolelist_]:= ListPlot[Map[{Re[#],Im[#]}&,complexpolelist], Prolog->{AbsolutePointSize[10]}, AspectRatio->Automatic, DisplayFunction->Identity]; (* :[font = input; preserveAspect; startGroup; ] Show[{PlotPolesWithDots[N[Map[Part[#,1,2]&,poles]/. B->2 Pi 125/.w->2 Pi f/.f->1000]], PlotPolesWithDots[N[Map[Part[#,1,2]&,zeros]/. B->2 Pi 125/.w->2 Pi f/.f->1000]]}, DisplayFunction->$DisplayFunction]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 344; pictureHeight = 142; endGroup; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .41421 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.524656 3.13924e-05 0.207107 3.13924e-05 [ [(-15000)] .05377 .20711 0 2 Msboxa [(-10000)] .21073 .20711 0 2 Msboxa [(-5000)] .36769 .20711 0 2 Msboxa [(5000)] .68162 .20711 0 2 Msboxa [(10000)] .83858 .20711 0 2 Msboxa [(15000)] .99554 .20711 0 2 Msboxa [(-6000)] .51216 .01875 1 0 Msboxa [(-4000)] .51216 .08154 1 0 Msboxa [(-2000)] .51216 .14432 1 0 Msboxa [(2000)] .51216 .26989 1 0 Msboxa [(4000)] .51216 .33268 1 0 Msboxa [(6000)] .51216 .39546 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .41521 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .05377 .20711 m .05377 .21336 L s P [(-15000)] .05377 .20711 0 2 Mshowa p .002 w .21073 .20711 m .21073 .21336 L s P [(-10000)] .21073 .20711 0 2 Mshowa p .002 w .36769 .20711 m .36769 .21336 L s P [(-5000)] .36769 .20711 0 2 Mshowa p .002 w .68162 .20711 m .68162 .21336 L s P [(5000)] .68162 .20711 0 2 Mshowa p .002 w .83858 .20711 m .83858 .21336 L s P [(10000)] .83858 .20711 0 2 Mshowa p .002 w .99554 .20711 m .99554 .21336 L s P [(15000)] .99554 .20711 0 2 Mshowa p .001 w .08516 .20711 m .08516 .21086 L s P p .001 w .11655 .20711 m .11655 .21086 L s P p .001 w .14795 .20711 m .14795 .21086 L s P p .001 w .17934 .20711 m .17934 .21086 L s P p .001 w .24212 .20711 m .24212 .21086 L s P p .001 w .27352 .20711 m .27352 .21086 L s P p .001 w .30491 .20711 m .30491 .21086 L s P p .001 w .3363 .20711 m .3363 .21086 L s P p .001 w .39909 .20711 m .39909 .21086 L s P p .001 w .43048 .20711 m .43048 .21086 L s P p .001 w .46187 .20711 m .46187 .21086 L s P p .001 w .49326 .20711 m .49326 .21086 L s P p .001 w .55605 .20711 m .55605 .21086 L s P p .001 w .58744 .20711 m .58744 .21086 L s P p .001 w .61883 .20711 m .61883 .21086 L s P p .001 w .65023 .20711 m .65023 .21086 L s P p .001 w .71301 .20711 m .71301 .21086 L s P p .001 w .7444 .20711 m .7444 .21086 L s P p .001 w .7758 .20711 m .7758 .21086 L s P p .001 w .80719 .20711 m .80719 .21086 L s P p .001 w .86997 .20711 m .86997 .21086 L s P p .001 w .90136 .20711 m .90136 .21086 L s P p .001 w .93276 .20711 m .93276 .21086 L s P p .001 w .96415 .20711 m .96415 .21086 L s P p .001 w .02238 .20711 m .02238 .21086 L s P p .002 w 0 .20711 m 1 .20711 L s P p .002 w .52466 .01875 m .53091 .01875 L s P [(-6000)] .51216 .01875 1 0 Mshowa p .002 w .52466 .08154 m .53091 .08154 L s P [(-4000)] .51216 .08154 1 0 Mshowa p .002 w .52466 .14432 m .53091 .14432 L s P [(-2000)] .51216 .14432 1 0 Mshowa p .002 w .52466 .26989 m .53091 .26989 L s P [(2000)] .51216 .26989 1 0 Mshowa p .002 w .52466 .33268 m .53091 .33268 L s P [(4000)] .51216 .33268 1 0 Mshowa p .002 w .52466 .39546 m .53091 .39546 L s P [(6000)] .51216 .39546 1 0 Mshowa p .001 w .52466 .03131 m .52841 .03131 L s P p .001 w .52466 .04387 m .52841 .04387 L s P p .001 w .52466 .05642 m .52841 .05642 L s P p .001 w .52466 .06898 m .52841 .06898 L s P p .001 w .52466 .09409 m .52841 .09409 L s P p .001 w .52466 .10665 m .52841 .10665 L s P p .001 w .52466 .11921 m .52841 .11921 L s P p .001 w .52466 .13176 m .52841 .13176 L s P p .001 w .52466 .15688 m .52841 .15688 L s P p .001 w .52466 .16944 m .52841 .16944 L s P p .001 w .52466 .18199 m .52841 .18199 L s P p .001 w .52466 .19455 m .52841 .19455 L s P p .001 w .52466 .21966 m .52841 .21966 L s P p .001 w .52466 .23222 m .52841 .23222 L s P p .001 w .52466 .24478 m .52841 .24478 L s P p .001 w .52466 .25733 m .52841 .25733 L s P p .001 w .52466 .28245 m .52841 .28245 L s P p .001 w .52466 .29501 m .52841 .29501 L s P p .001 w .52466 .30756 m .52841 .30756 L s P p .001 w .52466 .32012 m .52841 .32012 L s P p .001 w .52466 .34523 m .52841 .34523 L s P p .001 w .52466 .35779 m .52841 .35779 L s P p .001 w .52466 .37035 m .52841 .37035 L s P p .001 w .52466 .3829 m .52841 .3829 L s P p .001 w .52466 .0062 m .52841 .0062 L s P p .001 w .52466 .40802 m .52841 .40802 L s P p .002 w .52466 0 m .52466 .41421 L s P P 0 0 m 1 0 L 1 .41421 L 0 .41421 L closepath clip newpath p p 10 Mabswid .5 .40435 Mdot .5 .00986 Mdot .5 .40435 Mdot .5 .00986 Mdot .5 .40435 Mdot .5 .00986 Mdot .5 .40435 Mdot .5 .00986 Mdot P p 10 Mabswid .97619 .20711 Mdot .02381 .20711 Mdot .5817 .20711 Mdot .4183 .20711 Mdot P P % End of Graphics MathPictureEnd :[font = subsection; inactive; preserveAspect; startGroup; ] 3.2 Signal Processing :[font = text; inactive; preserveAspect; ] This section analyses the continuous Gammatone filter and shows some of its properties. We will use an ERB filter centered at 1000 Hz to illustrate the following two sections. First, letÕs load a package of filter design and signal processing routines [Slaney1993]. :[font = input; initialization; preserveAspect; ] *) <(2 Pi 1.019 ERB[cf,EarQ,minBW,order])/. GlasbergBandwidthParms/. w->2 Pi cf] (* :[font = input; preserveAspect; startGroup; ] N[F[s, 1000]] :[font = output; output; inactive; preserveAspect; endGroup; ] (6.*(-(1.388236585039688301*10^15) + 3.998652157547886688*10^11*s + 2.325433567936926801*10^8*s^2 - 3396.919715448856163*s^3 - 1.*s^4) )/(4.019960907643275559*10^7 + 1698.459857724428082*s + s^2)^4 ;[o] 15 11 8 2 3 (6. (-1.38824 10 + 3.99865 10 s + 2.32543 10 s - 3396.92 s - 4 7 2 4 1. s )) / (4.01996 10 + 1698.46 s + s ) :[font = text; inactive; preserveAspect; ] LetÕs plot the filterÕs response. We normalize the filter by its response at 1000Hz so that we get a dB scale in terms of the maximum response. :[font = input; preserveAspect; startGroup; ] ContinuousFreqResponse[F[s,1000]/ ContinuousFilterMag[F[s,1000],1000], 5000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000190476 0.603319 0.00506758 [ [(1000)] .21429 .60332 0 2 Msboxa [(2000)] .40476 .60332 0 2 Msboxa [(3000)] .59524 .60332 0 2 Msboxa [(4000)] .78571 .60332 0 2 Msboxa [(5000)] .97619 .60332 0 2 Msboxa [( Hz)] 1.025 .60332 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-100)] .01131 .09656 1 0 Msboxa [(-80)] .01131 .19791 1 0 Msboxa [(-60)] .01131 .29926 1 0 Msboxa [(-40)] .01131 .40062 1 0 Msboxa [(-20)] .01131 .50197 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21429 .60332 m .21429 .60957 L s P [(1000)] .21429 .60332 0 2 Mshowa p .002 w .40476 .60332 m .40476 .60957 L s P [(2000)] .40476 .60332 0 2 Mshowa p .002 w .59524 .60332 m .59524 .60957 L s P [(3000)] .59524 .60332 0 2 Mshowa p .002 w .78571 .60332 m .78571 .60957 L s P [(4000)] .78571 .60332 0 2 Mshowa p .002 w .97619 .60332 m .97619 .60957 L s P [(5000)] .97619 .60332 0 2 Mshowa p .001 w .0619 .60332 m .0619 .60707 L s P p .001 w .1 .60332 m .1 .60707 L s P p .001 w .1381 .60332 m .1381 .60707 L s P p .001 w .17619 .60332 m .17619 .60707 L s P p .001 w .25238 .60332 m .25238 .60707 L s P p .001 w .29048 .60332 m .29048 .60707 L s P p .001 w .32857 .60332 m .32857 .60707 L s P p .001 w .36667 .60332 m .36667 .60707 L s P p .001 w .44286 .60332 m .44286 .60707 L s P p .001 w .48095 .60332 m .48095 .60707 L s P p .001 w .51905 .60332 m .51905 .60707 L s P p .001 w .55714 .60332 m .55714 .60707 L s P p .001 w .63333 .60332 m .63333 .60707 L s P p .001 w .67143 .60332 m .67143 .60707 L s P p .001 w .70952 .60332 m .70952 .60707 L s P p .001 w .74762 .60332 m .74762 .60707 L s P p .001 w .82381 .60332 m .82381 .60707 L s P p .001 w .8619 .60332 m .8619 .60707 L s P p .001 w .9 .60332 m .9 .60707 L s P p .001 w .9381 .60332 m .9381 .60707 L s P [( Hz)] 1.025 .60332 -1 0 Mshowa p .002 w 0 .60332 m 1 .60332 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .09656 m .03006 .09656 L s P [(-100)] .01131 .09656 1 0 Mshowa p .002 w .02381 .19791 m .03006 .19791 L s P [(-80)] .01131 .19791 1 0 Mshowa p .002 w .02381 .29926 m .03006 .29926 L s P [(-60)] .01131 .29926 1 0 Mshowa p .002 w .02381 .40062 m .03006 .40062 L s P [(-40)] .01131 .40062 1 0 Mshowa p .002 w .02381 .50197 m .03006 .50197 L s P [(-20)] .01131 .50197 1 0 Mshowa p .001 w .02381 .01548 m .02756 .01548 L s P p .001 w .02381 .03575 m .02756 .03575 L s P p .001 w .02381 .05602 m .02756 .05602 L s P p .001 w .02381 .07629 m .02756 .07629 L s P p .001 w .02381 .11683 m .02756 .11683 L s P p .001 w .02381 .1371 m .02756 .1371 L s P p .001 w .02381 .15737 m .02756 .15737 L s P p .001 w .02381 .17764 m .02756 .17764 L s P p .001 w .02381 .21818 m .02756 .21818 L s P p .001 w .02381 .23845 m .02756 .23845 L s P p .001 w .02381 .25872 m .02756 .25872 L s P p .001 w .02381 .27899 m .02756 .27899 L s P p .001 w .02381 .31953 m .02756 .31953 L s P p .001 w .02381 .3398 m .02756 .3398 L s P p .001 w .02381 .36007 m .02756 .36007 L s P p .001 w .02381 .38035 m .02756 .38035 L s P p .001 w .02381 .42089 m .02756 .42089 L s P p .001 w .02381 .44116 m .02756 .44116 L s P p .001 w .02381 .46143 m .02756 .46143 L s P p .001 w .02381 .4817 m .02756 .4817 L s P p .001 w .02381 .52224 m .02756 .52224 L s P p .001 w .02381 .54251 m .02756 .54251 L s P p .001 w .02381 .56278 m .02756 .56278 L s P p .001 w .02381 .58305 m .02756 .58305 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02381 .27319 m .02505 .27321 L .02629 .27328 L .02753 .27339 L .02877 .27354 L .03125 .27399 L .03373 .27461 L .03869 .27635 L .04365 .27874 L .05357 .2852 L .06349 .2936 L .08334 .315 L .10318 .34165 L .12302 .37381 L .14286 .41288 L .1627 .46135 L .18254 .52193 L .19246 .55564 L .19742 .57189 L .20238 .58626 L .20486 .59225 L .20734 .59714 L .20858 .5991 L .20982 .60071 L .21106 .60195 L .2123 .6028 L .21354 .60325 L .21478 .60329 L .21602 .60292 L .21726 .60215 L .21974 .59945 L .22098 .59755 L .22222 .59532 L .26191 .47246 L .28175 .42175 L .30159 .38101 L .34127 .31895 L .38095 .27275 L .42064 .23615 L .46032 .20595 L .5 .18031 L .53968 .15805 L .57937 .13842 L .61905 .12088 L .65873 .10503 L .69841 .09059 L .7381 .07732 L .77778 .06506 L .81746 .05366 L .85714 .04301 L Mistroke .89683 .03302 L .93651 .02361 L .97619 .01472 L Mfstroke P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Just to make sure, letÕs find the 3dB points of this filter. The FilterSearch routine finds the frequency that gives an arbitrary response. First, look for the point that is 3dB down in the octave (500->1000 Hz) below the CF, and then find it in the octave above. After determining the 3dB points, the filterÕs quality factor can be calculated. ;[s] 3:0,0;66,1;78,0;348,-1; 2:2,13,9,Times,0,12,0,0,0;1,13,9,Times,1,12,0,0,0; :[font = input; preserveAspect; startGroup; ] lower3dB = FilterSearch[F[s,1000], N[ContinuousFilterMag[F[s,1000],1000] *Sqrt[2]/2], 500,1000] :[font = output; output; inactive; preserveAspect; endGroup; ] 941.2093162536621094 ;[o] 941.209 :[font = input; preserveAspect; startGroup; ] upper3dB = FilterSearch[F[s,1000], N[ContinuousFilterMag[F[s,1000],1000] *Sqrt[2]/2], 1000,2000] :[font = output; output; inactive; preserveAspect; endGroup; ] 1058.789253234863281 ;[o] 1058.79 :[font = text; inactive; preserveAspect; ] The bandwidth of this filter is equal to :[font = input; preserveAspect; startGroup; ] upper3dB - lower3dB :[font = output; output; inactive; preserveAspect; endGroup; ] 117.5799369812011719 ;[o] 117.58 :[font = text; inactive; preserveAspect; ] Finally, the Q3dB is given by ;[s] 3:0,0;14,1;17,0;30,-1; 2:2,13,9,Times,0,12,0,0,0;1,21,13,Times,64,12,0,0,0; :[font = input; preserveAspect; startGroup; ] 1000/(upper3dB - lower3dB) :[font = output; output; inactive; preserveAspect; endGroup; ] 8.504852321530681353 ;[o] 8.50485 :[font = text; inactive; preserveAspect; ] The ERB here is close to the 3dB bandwidth. :[font = input; preserveAspect; startGroup; ] ERB[1000,EarQ,minBW, order]/.GlasbergBandwidthParms :[font = output; output; inactive; preserveAspect; endGroup; ] 132.639 ;[o] 132.639 :[font = text; inactive; preserveAspect; ] The filter design package [Slaney1993] wants to represent filters in terms of a structure called the GZP, or Gain-Zeros-Poles. These lists are easier to work with than polynomial equations and are simply a list of poles and zeros of the filter. The Map function allows us to pick apart the solutions stored in the poles and zeros variables computed in Section 3.1. The gain term, first element in the list, is equal to six over the gain of the original F[s] filter at 1000Hz. We want to normalize the filter so it has unity gain and the six comes from the original rationalFilter definition. ;[s] 5:0,0;249,1;252,0;565,2;579,0;592,-1; 3:3,13,9,Times,0,12,0,0,0;1,13,9,Times,1,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) GZP = List[6/N[ContinuousFilterMag[F[s,1000],1000]], Map[Last,zeros,2], Map[Last,poles,2]]/.w->2 Pi cf (* :[font = output; output; inactive; preserveAspect; endGroup; ] {1.040213557745285881*10^12, {-B + 2*(3 + 2^(3/2))^(1/2)*cf*Pi, -B - 2*(3 + 2^(3/2))^(1/2)*cf*Pi, -B + 2*(3 - 2^(3/2))^(1/2)*cf*Pi, -B - 2*(3 - 2^(3/2))^(1/2)*cf*Pi}, {-B + 2*I*cf*Pi, -B - 2*I*cf*Pi, -B + 2*I*cf*Pi, -B - 2*I*cf*Pi, -B + 2*I*cf*Pi, -B - 2*I*cf*Pi, -B + 2*I*cf*Pi, -B - 2*I*cf*Pi}} ;[o] 12 3/2 {1.04021 10 , {-B + 2 Sqrt[3 + 2 ] cf Pi, 3/2 3/2 -B - 2 Sqrt[3 + 2 ] cf Pi, -B + 2 Sqrt[3 - 2 ] cf Pi, 3/2 -B - 2 Sqrt[3 - 2 ] cf Pi}, {-B + 2 I cf Pi, -B - 2 I cf Pi, -B + 2 I cf Pi, -B - 2 I cf Pi, -B + 2 I cf Pi, -B - 2 I cf Pi, -B + 2 I cf Pi, -B - 2 I cf Pi}} :[font = text; inactive; preserveAspect; ] We compute the exact numerical version of this GZP structure, this time assuming a 1000Hz filter, so that we have exact numbers to talk about. WeÕll plot the resulting filter, just to make sure that we have still have a bandpass filter at 1000Hz. :[font = input; initialization; preserveAspect; startGroup; ] *) numGZP = N[GZP/.B->2 Pi 1.019 ERB[cf,EarQ,minBW,order]/. GlasbergBandwidthParms/.cf->1000] (* :[font = output; output; inactive; preserveAspect; endGroup; ] {1.040213557745285881*10^12, {14319.72125463410493, -16018.18111235853301, 1753.350640274931977, -3451.810497999360058}, {-849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I, -849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I, -849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I, -849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I}} ;[o] 12 {1.04021 10 , {14319.7, -16018.2, 1753.35, -3451.81}, {-849.23 + 6283.19 I, -849.23 - 6283.19 I, -849.23 + 6283.19 I, -849.23 - 6283.19 I, -849.23 + 6283.19 I, -849.23 - 6283.19 I, -849.23 + 6283.19 I, -849.23 - 6283.19 I}} :[font = input; preserveAspect; startGroup; ] FilterFromGZP[numGZP] :[font = output; output; inactive; preserveAspect; endGroup; ] (1.040213557745285881*10^12*(-14319.72125463410493 + s)* (-1753.350640274931976 + s)*(3451.810497999360058 + s)* (16018.18111235853301 + s))/ ((849.2299288622140409 - 6283.185307179586476*I + s)^4* (849.2299288622140409 + 6283.185307179586476*I + s)^4) ;[o] 12 1.04021 10 (-14319.7 + s) (-1753.35 + s) (3451.81 + s) (16018.2 + s) ---------------------------------------------------------------------- 4 4 (849.23 - 6283.19 I + s) (849.23 + 6283.19 I + s) :[font = input; preserveAspect; startGroup; ] ContinuousFreqResponse[FilterFromGZP[numGZP],3000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00031746 0.603319 0.00631763 [ [(500)] .18254 .60332 0 2 Msboxa [(1000)] .34127 .60332 0 2 Msboxa [(1500)] .5 .60332 0 2 Msboxa [(2000)] .65873 .60332 0 2 Msboxa [(2500)] .81746 .60332 0 2 Msboxa [(3000)] .97619 .60332 0 2 Msboxa [( Hz)] 1.025 .60332 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-80)] .01131 .09791 1 0 Msboxa [(-60)] .01131 .22426 1 0 Msboxa [(-40)] .01131 .35061 1 0 Msboxa [(-20)] .01131 .47697 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .18254 .60332 m .18254 .60957 L s P [(500)] .18254 .60332 0 2 Mshowa p .002 w .34127 .60332 m .34127 .60957 L s P [(1000)] .34127 .60332 0 2 Mshowa p .002 w .5 .60332 m .5 .60957 L s P [(1500)] .5 .60332 0 2 Mshowa p .002 w .65873 .60332 m .65873 .60957 L s P [(2000)] .65873 .60332 0 2 Mshowa p .002 w .81746 .60332 m .81746 .60957 L s P [(2500)] .81746 .60332 0 2 Mshowa p .002 w .97619 .60332 m .97619 .60957 L s P [(3000)] .97619 .60332 0 2 Mshowa p .001 w .05556 .60332 m .05556 .60707 L s P p .001 w .0873 .60332 m .0873 .60707 L s P p .001 w .11905 .60332 m .11905 .60707 L s P p .001 w .15079 .60332 m .15079 .60707 L s P p .001 w .21429 .60332 m .21429 .60707 L s P p .001 w .24603 .60332 m .24603 .60707 L s P p .001 w .27778 .60332 m .27778 .60707 L s P p .001 w .30952 .60332 m .30952 .60707 L s P p .001 w .37302 .60332 m .37302 .60707 L s P p .001 w .40476 .60332 m .40476 .60707 L s P p .001 w .43651 .60332 m .43651 .60707 L s P p .001 w .46825 .60332 m .46825 .60707 L s P p .001 w .53175 .60332 m .53175 .60707 L s P p .001 w .56349 .60332 m .56349 .60707 L s P p .001 w .59524 .60332 m .59524 .60707 L s P p .001 w .62698 .60332 m .62698 .60707 L s P p .001 w .69048 .60332 m .69048 .60707 L s P p .001 w .72222 .60332 m .72222 .60707 L s P p .001 w .75397 .60332 m .75397 .60707 L s P p .001 w .78571 .60332 m .78571 .60707 L s P p .001 w .84921 .60332 m .84921 .60707 L s P p .001 w .88095 .60332 m .88095 .60707 L s P p .001 w .9127 .60332 m .9127 .60707 L s P p .001 w .94444 .60332 m .94444 .60707 L s P [( Hz)] 1.025 .60332 -1 0 Mshowa p .002 w 0 .60332 m 1 .60332 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .09791 m .03006 .09791 L s P [(-80)] .01131 .09791 1 0 Mshowa p .002 w .02381 .22426 m .03006 .22426 L s P [(-60)] .01131 .22426 1 0 Mshowa p .002 w .02381 .35061 m .03006 .35061 L s P [(-40)] .01131 .35061 1 0 Mshowa p .002 w .02381 .47697 m .03006 .47697 L s P [(-20)] .01131 .47697 1 0 Mshowa p .001 w .02381 .12318 m .02756 .12318 L s P p .001 w .02381 .14845 m .02756 .14845 L s P p .001 w .02381 .17372 m .02756 .17372 L s P p .001 w .02381 .19899 m .02756 .19899 L s P p .001 w .02381 .24953 m .02756 .24953 L s P p .001 w .02381 .2748 m .02756 .2748 L s P p .001 w .02381 .30007 m .02756 .30007 L s P p .001 w .02381 .32534 m .02756 .32534 L s P p .001 w .02381 .37588 m .02756 .37588 L s P p .001 w .02381 .40115 m .02756 .40115 L s P p .001 w .02381 .42643 m .02756 .42643 L s P p .001 w .02381 .4517 m .02756 .4517 L s P p .001 w .02381 .50224 m .02756 .50224 L s P p .001 w .02381 .52751 m .02756 .52751 L s P p .001 w .02381 .55278 m .02756 .55278 L s P p .001 w .02381 .57805 m .02756 .57805 L s P p .001 w .02381 .07264 m .02756 .07264 L s P p .001 w .02381 .04737 m .02756 .04737 L s P p .001 w .02381 .0221 m .02756 .0221 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02381 .19175 m .02505 .19176 L .02629 .19179 L .02753 .19184 L .02877 .19191 L .03001 .192 L .03125 .19211 L .03373 .19239 L .03869 .19319 L .04365 .1943 L .05357 .19739 L .0635 .20157 L .08334 .21275 L .10318 .22703 L .14286 .26304 L .18254 .30857 L .22222 .3659 L .26191 .44016 L .30159 .53549 L .31151 .56021 L .32143 .58206 L .32639 .59086 L .32887 .59452 L .33135 .59761 L .33383 .60007 L .33507 .60105 L .33631 .60186 L .33755 .6025 L .33879 .60295 L .34003 .60323 L .34127 .60332 L .34251 .60323 L .34375 .60295 L .34499 .6025 L .34623 .60186 L .34871 .60007 L .35119 .5976 L .35615 .59085 L .36111 .58205 L .37103 .5602 L .38095 .53548 L .42064 .44018 L .46032 .36594 L .5 .30851 L .53968 .26234 L .57937 .22395 L .61905 .1912 L .65873 .1627 L .69841 .13751 L .7381 .11495 L Mistroke .77778 .09456 L .81746 .07596 L .85714 .05887 L .89683 .04308 L .93651 .02841 L .97619 .01472 L Mfstroke P P % End of Graphics MathPictureEnd :[font = subsection; inactive; preserveAspect; startGroup; ] 3.3 Numerical Z-Transform :[font = text; inactive; preserveAspect; ] We can implement the fourth-order Gammatone impulse response as a cascade of four second-order filters. The analysis to this point is in the Laplace, or continuous domain. We need to convert these filters into their equivalent sampled form for use in a program. This section describes this conversion using the numerical example shown in the previous section; Section 3.4 describes the more general symbolic method. :[font = text; inactive; preserveAspect; ] An easy way to convert a continuous (analog) filter into its digital equivalent is to use the impulse invariance design technique. The impulse invariance technique maps a continuous filter into an equivalent sampled version by matching the impulse response in the time domain. But, due to aliasing, this might not be the most accurate result. CookeÕs report addresses several alternatives and concludes that the impulse invariance technique is most accurate for baseband gammatone filters because there is very little aliasing. In our case, since the desired filter responses are defined in terms of their impulse response, the impulse invariance design technique seems the most natural. :[font = text; inactive; preserveAspect; ] The impulse invariance filter transformation requires that we expand the filter into its partial fractions expansion, and then replace each pole by its discrete equivalent. A single pole has a simple impulse response (itÕs just a decaying exponential) so the equivalent digital filter is a single discrete pole. :[font = text; inactive; preserveAspect; ] The final digital filter will be a cascade of four biquadratic sections per cochlear channel. This costs us 20 multiplies and 12 adds per channel. :[font = text; inactive; preserveAspect; ] Unfortunately, we canÕt do a simple partial fractions expansion because we have multiple poles at the same location. Instead we split the filter into a cascade of four biquadratic sections. We first group the poles into complex-conjugate pairs. We will form four filters by taking part of the gain, two of the zeros, and a pair of poles. Since we have four zeros, weÕll assign one zero to each of the four filters. A continuous filter with a complex root is transformed into a digital filter with complex coefficients. But by combining the result of transforming two complex conjugate poles, the resulting digital filter has real coefficients. :[font = input; initialization; preserveAspect; startGroup; ] *) conjugatePoles = GroupRoots[numGZP[[3]]] (* :[font = output; output; inactive; preserveAspect; endGroup; ] {{-849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I}, {-849.2299288622140409 - 6283.185307179586476*I, -849.2299288622140409 + 6283.185307179586476*I}, {-849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I}, {-849.2299288622140409 - 6283.185307179586476*I, -849.2299288622140409 + 6283.185307179586476*I}} ;[o] {{-849.23 + 6283.19 I, -849.23 - 6283.19 I}, {-849.23 - 6283.19 I, -849.23 + 6283.19 I}, {-849.23 + 6283.19 I, -849.23 - 6283.19 I}, {-849.23 - 6283.19 I, -849.23 + 6283.19 I}} :[font = input; initialization; preserveAspect; startGroup; ] *) gammaZeros = numGZP[[2]] (* :[font = output; output; inactive; preserveAspect; endGroup; ] {14319.72125463410493, -16018.18111235853301, 1753.350640274931977, -3451.810497999360058} ;[o] {14319.7, -16018.2, 1753.35, -3451.81} :[font = text; inactive; preserveAspect; ] We really should keep the gain in each filter, perhaps putting 1/4 of the gain into each filter. But this makes the numbers weird, and make it hard to see the right answer. LetÕs arbitrarily set the gain of each of the following four filters to 1. Later we will adjust the gain numerically, if needed. Each filter has two conjugate poles and a single zero along the real axis. :[font = input; initialization; preserveAspect; startGroup; ] *) filter1 = List[1, List[gammaZeros[[1]]], conjugatePoles[[1]]] filter2 = List[1, List[gammaZeros[[2]]], conjugatePoles[[2]]] filter3 = List[1,List[gammaZeros[[3]]], conjugatePoles[[3]]] filter4 = List[1,List[gammaZeros[[4]]], conjugatePoles[[4]]] (* :[font = output; output; inactive; preserveAspect; ] {1, {14319.72125463410493}, {-849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I}} ;[o] {1, {14319.7}, {-849.23 + 6283.19 I, -849.23 - 6283.19 I}} :[font = output; output; inactive; preserveAspect; ] {1, {-16018.18111235853301}, {-849.2299288622140409 - 6283.185307179586476*I, -849.2299288622140409 + 6283.185307179586476*I}} ;[o] {1, {-16018.2}, {-849.23 - 6283.19 I, -849.23 + 6283.19 I}} :[font = output; output; inactive; preserveAspect; ] {1, {1753.350640274931977}, {-849.2299288622140409 + 6283.185307179586476*I, -849.2299288622140409 - 6283.185307179586476*I}} ;[o] {1, {1753.35}, {-849.23 + 6283.19 I, -849.23 - 6283.19 I}} :[font = output; output; inactive; preserveAspect; endGroup; ] {1, {-3451.810497999360058}, {-849.2299288622140409 - 6283.185307179586476*I, -849.2299288622140409 + 6283.185307179586476*I}} ;[o] {1, {-3451.81}, {-849.23 - 6283.19 I, -849.23 + 6283.19 I}} :[font = text; inactive; preserveAspect; ] For each filter, we use the StandardZTransform function to map the biquadratic (continuous domain) filter into the equivalent Z-domain filter. The z-domain filters can be implemented on a digital computer. We do this for each of the specific four filters we designed at 1000Hz to make sure we can do this properly. The StandardZTransform function converts a list of poles in GZP format into a rational function of the variable z. We use the Simplify function to put the equations in the canonical form. ;[s] 7:0,0;28,1;46,0;321,1;339,0;444,1;452,0;506,-1; 2:4,13,9,Times,0,12,0,0,0;3,13,9,Times,1,12,0,0,0; :[font = input; preserveAspect; startGroup; ] zfilt1 = Simplify[StandardZTransform[filter1, 1/16000]] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0000625*(-1.752243064078298441 + z)*z)/ (0.8992863801631705324 - 1.752243064078298443*z + z^2) ;[o] 0.0000625 (-1.75224 + z) z -------------------------- 2 0.899286 - 1.75224 z + z :[font = text; inactive; preserveAspect; ] The frequency response of this filter is found by substituting e i 2p f/fs for z in the above equation with f set to the frequency of interest and fs set to the digital sampling rate (16000 in this example) ;[s] 5:0,0;64,1;68,2;69,1;74,0;207,-1; 3:2,13,9,Times,0,12,0,0,0;2,21,13,Times,32,12,0,0,0;1,22,14,Symbol,32,12,0,0,0; :[font = input; preserveAspect; startGroup; ] FreqResponse[zfilt1,16000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 1.71685 0.0196692 [ [(2000)] .26238 .04497 0 2 Msboxa [(4000)] .50095 .04497 0 2 Msboxa [(6000)] .73953 .04497 0 2 Msboxa [(8000)] .9781 .04497 0 2 Msboxa [( Hz)] 1.025 .04497 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-80)] .01131 .14331 1 0 Msboxa [(-75)] .01131 .24166 1 0 Msboxa [(-70)] .01131 .34001 1 0 Msboxa [(-65)] .01131 .43835 1 0 Msboxa [(-60)] .01131 .5367 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .04497 m .26238 .05122 L s P [(2000)] .26238 .04497 0 2 Mshowa p .002 w .50095 .04497 m .50095 .05122 L s P [(4000)] .50095 .04497 0 2 Mshowa p .002 w .73953 .04497 m .73953 .05122 L s P [(6000)] .73953 .04497 0 2 Mshowa p .002 w .9781 .04497 m .9781 .05122 L s P [(8000)] .9781 .04497 0 2 Mshowa p .001 w .07152 .04497 m .07152 .04872 L s P p .001 w .11924 .04497 m .11924 .04872 L s P p .001 w .16695 .04497 m .16695 .04872 L s P p .001 w .21467 .04497 m .21467 .04872 L s P p .001 w .3101 .04497 m .3101 .04872 L s P p .001 w .35781 .04497 m .35781 .04872 L s P p .001 w .40553 .04497 m .40553 .04872 L s P p .001 w .45324 .04497 m .45324 .04872 L s P p .001 w .54867 .04497 m .54867 .04872 L s P p .001 w .59638 .04497 m .59638 .04872 L s P p .001 w .6441 .04497 m .6441 .04872 L s P p .001 w .69181 .04497 m .69181 .04872 L s P p .001 w .78724 .04497 m .78724 .04872 L s P p .001 w .83496 .04497 m .83496 .04872 L s P p .001 w .88267 .04497 m .88267 .04872 L s P p .001 w .93038 .04497 m .93038 .04872 L s P [( Hz)] 1.025 .04497 -1 0 Mshowa p .002 w 0 .04497 m 1 .04497 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .14331 m .03006 .14331 L s P [(-80)] .01131 .14331 1 0 Mshowa p .002 w .02381 .24166 m .03006 .24166 L s P [(-75)] .01131 .24166 1 0 Mshowa p .002 w .02381 .34001 m .03006 .34001 L s P [(-70)] .01131 .34001 1 0 Mshowa p .002 w .02381 .43835 m .03006 .43835 L s P [(-65)] .01131 .43835 1 0 Mshowa p .002 w .02381 .5367 m .03006 .5367 L s P [(-60)] .01131 .5367 1 0 Mshowa p .001 w .02381 .06464 m .02756 .06464 L s P p .001 w .02381 .08431 m .02756 .08431 L s P p .001 w .02381 .10398 m .02756 .10398 L s P p .001 w .02381 .12365 m .02756 .12365 L s P p .001 w .02381 .16298 m .02756 .16298 L s P p .001 w .02381 .18265 m .02756 .18265 L s P p .001 w .02381 .20232 m .02756 .20232 L s P p .001 w .02381 .22199 m .02756 .22199 L s P p .001 w .02381 .26133 m .02756 .26133 L s P p .001 w .02381 .281 m .02756 .281 L s P p .001 w .02381 .30067 m .02756 .30067 L s P p .001 w .02381 .32034 m .02756 .32034 L s P p .001 w .02381 .35968 m .02756 .35968 L s P p .001 w .02381 .37935 m .02756 .37935 L s P p .001 w .02381 .39901 m .02756 .39901 L s P p .001 w .02381 .41868 m .02756 .41868 L s P p .001 w .02381 .45802 m .02756 .45802 L s P p .001 w .02381 .47769 m .02756 .47769 L s P p .001 w .02381 .49736 m .02756 .49736 L s P p .001 w .02381 .51703 m .02756 .51703 L s P p .001 w .02381 .0253 m .02756 .0253 L s P p .001 w .02381 .00563 m .02756 .00563 L s P p .001 w .02381 .55637 m .02756 .55637 L s P p .001 w .02381 .57604 m .02756 .57604 L s P p .001 w .02381 .59571 m .02756 .59571 L s P p .001 w .02381 .61538 m .02756 .61538 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02393 .34189 m .02517 .34192 L .02641 .34199 L .02765 .3421 L .02889 .34226 L .03137 .34272 L .03385 .34335 L .03633 .34415 L .03881 .34514 L .04377 .34767 L .04873 .35095 L .05369 .35499 L .06361 .36549 L .07353 .37952 L .08345 .39756 L .09336 .42037 L .10328 .44902 L .12312 .52927 L .12808 .55384 L .13304 .57771 L .13552 .58808 L .13676 .59254 L .138 .59636 L .13924 .59944 L .14048 .60168 L .14172 .60299 L .14296 .60332 L .1442 .60265 L .14544 .601 L .14668 .5984 L .14792 .59494 L .1504 .58583 L .15288 .57453 L .1628 .52164 L .17272 .47232 L .18264 .43101 L .20248 .36735 L .22232 .32022 L .24216 .28336 L .26199 .25338 L .30167 .20685 L .34135 .17183 L .38103 .14419 L .4207 .12168 L .46038 .10295 L .50006 .08715 L .53974 .07368 L .57941 .06216 L .61909 .05229 L .65877 .04385 L Mistroke .69845 .03668 L .73813 .03066 L .7778 .02569 L .81748 .02171 L .85716 .01865 L .877 .01746 L .89684 .01648 L .91667 .01572 L .92659 .01542 L .93651 .01518 L .94643 .01498 L .95139 .0149 L .95635 .01484 L .96131 .01479 L .96379 .01477 L .96627 .01475 L .96875 .01474 L .96999 .01473 L .97123 .01473 L .97247 .01472 L .97371 .01472 L .97495 .01472 L .97619 .01472 L Mfstroke P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Finally, we can use the FindImpulseResponse function to digitally simulate the resulting filter and show its response. ;[s] 3:0,0;24,1;43,0;119,-1; 2:2,13,9,Times,0,12,0,0,0;1,13,9,Times,1,12,0,0,0; :[font = input; preserveAspect; startGroup; ] ListPlot[FindImpulseResponse[zfilt1,50],PlotJoined->True]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.0190476 0.370577 2841.17 [ [(10)] .21429 .37058 0 2 Msboxa [(20)] .40476 .37058 0 2 Msboxa [(30)] .59524 .37058 0 2 Msboxa [(40)] .78571 .37058 0 2 Msboxa [(50)] .97619 .37058 0 2 Msboxa [(-0.0001)] .01131 .08646 1 0 Msboxa [(-0.00005)] .01131 .22852 1 0 Msboxa [(0.00005)] .01131 .51264 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21429 .37058 m .21429 .37683 L s P [(10)] .21429 .37058 0 2 Mshowa p .002 w .40476 .37058 m .40476 .37683 L s P [(20)] .40476 .37058 0 2 Mshowa p .002 w .59524 .37058 m .59524 .37683 L s P [(30)] .59524 .37058 0 2 Mshowa p .002 w .78571 .37058 m .78571 .37683 L s P [(40)] .78571 .37058 0 2 Mshowa p .002 w .97619 .37058 m .97619 .37683 L s P [(50)] .97619 .37058 0 2 Mshowa p .001 w .0619 .37058 m .0619 .37433 L s P p .001 w .1 .37058 m .1 .37433 L s P p .001 w .1381 .37058 m .1381 .37433 L s P p .001 w .17619 .37058 m .17619 .37433 L s P p .001 w .25238 .37058 m .25238 .37433 L s P p .001 w .29048 .37058 m .29048 .37433 L s P p .001 w .32857 .37058 m .32857 .37433 L s P p .001 w .36667 .37058 m .36667 .37433 L s P p .001 w .44286 .37058 m .44286 .37433 L s P p .001 w .48095 .37058 m .48095 .37433 L s P p .001 w .51905 .37058 m .51905 .37433 L s P p .001 w .55714 .37058 m .55714 .37433 L s P p .001 w .63333 .37058 m .63333 .37433 L s P p .001 w .67143 .37058 m .67143 .37433 L s P p .001 w .70952 .37058 m .70952 .37433 L s P p .001 w .74762 .37058 m .74762 .37433 L s P p .001 w .82381 .37058 m .82381 .37433 L s P p .001 w .8619 .37058 m .8619 .37433 L s P p .001 w .9 .37058 m .9 .37433 L s P p .001 w .9381 .37058 m .9381 .37433 L s P p .002 w 0 .37058 m 1 .37058 L s P p .002 w .02381 .08646 m .03006 .08646 L s P [(-0.0001)] .01131 .08646 1 0 Mshowa p .002 w .02381 .22852 m .03006 .22852 L s P [(-0.00005)] .01131 .22852 1 0 Mshowa p .002 w .02381 .51264 m .03006 .51264 L s P [(0.00005)] .01131 .51264 1 0 Mshowa p .001 w .02381 .11487 m .02756 .11487 L s P p .001 w .02381 .14328 m .02756 .14328 L s P p .001 w .02381 .1717 m .02756 .1717 L s P p .001 w .02381 .20011 m .02756 .20011 L s P p .001 w .02381 .25693 m .02756 .25693 L s P p .001 w .02381 .28534 m .02756 .28534 L s P p .001 w .02381 .31375 m .02756 .31375 L s P p .001 w .02381 .34217 m .02756 .34217 L s P p .001 w .02381 .39899 m .02756 .39899 L s P p .001 w .02381 .4274 m .02756 .4274 L s P p .001 w .02381 .45581 m .02756 .45581 L s P p .001 w .02381 .48422 m .02756 .48422 L s P p .001 w .02381 .05805 m .02756 .05805 L s P p .001 w .02381 .02964 m .02756 .02964 L s P p .001 w .02381 .00123 m .02756 .00123 L s P p .001 w .02381 .54105 m .02756 .54105 L s P p .001 w .02381 .56946 m .02756 .56946 L s P p .001 w .02381 .59787 m .02756 .59787 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .04286 .54815 m .0619 .37058 L .08095 .21089 L .1 .09076 L .11905 .02388 L .1381 .01472 L .15714 .0588 L .17619 .14429 L .19524 .25444 L .21429 .37058 L .23333 .47502 L .25238 .55358 L .27143 .59732 L .29048 .60332 L .30952 .57449 L .32857 .51858 L .34762 .44653 L .36667 .37058 L .38571 .30227 L .40476 .25089 L .42381 .22228 L .44286 .21836 L .4619 .23722 L .48095 .27378 L .5 .3209 L .51905 .37058 L .5381 .41525 L .55714 .44886 L .57619 .46757 L .59524 .47013 L .61429 .4578 L .63333 .43388 L .65238 .40307 L .67143 .37058 L .69048 .34136 L .70952 .31938 L .72857 .30714 L .74762 .30547 L .76667 .31353 L .78571 .32917 L .80476 .34933 L .82381 .37058 L .84286 .38969 L .8619 .40406 L .88095 .41206 L .9 .41316 L .91905 .40789 L .9381 .39766 L .95714 .38447 L .97619 .37058 L Mistroke Mfstroke % End of Graphics MathPictureEnd :[font = input; preserveAspect; startGroup; ] zfilt2 = Simplify[StandardZTransform[filter2, 1/16000]] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0000625*z^2)/(0.8992863801631705324 - 1.752243064078298443*z + z^2) ;[o] 2 0.0000625 z ------------------------- 2 0.899286 - 1.75224 z + z :[font = input; preserveAspect; startGroup; ] FreqResponse[zfilt2,16000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 1.43425 0.0148904 [ [(2000)] .26238 .09411 0 2 Msboxa [(4000)] .50095 .09411 0 2 Msboxa [(6000)] .73953 .09411 0 2 Msboxa [(8000)] .9781 .09411 0 2 Msboxa [( Hz)] 1.025 .09411 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-80)] .01131 .24301 1 0 Msboxa [(-70)] .01131 .39192 1 0 Msboxa [(-60)] .01131 .54082 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .09411 m .26238 .10036 L s P [(2000)] .26238 .09411 0 2 Mshowa p .002 w .50095 .09411 m .50095 .10036 L s P [(4000)] .50095 .09411 0 2 Mshowa p .002 w .73953 .09411 m .73953 .10036 L s P [(6000)] .73953 .09411 0 2 Mshowa p .002 w .9781 .09411 m .9781 .10036 L s P [(8000)] .9781 .09411 0 2 Mshowa p .001 w .07152 .09411 m .07152 .09786 L s P p .001 w .11924 .09411 m .11924 .09786 L s P p .001 w .16695 .09411 m .16695 .09786 L s P p .001 w .21467 .09411 m .21467 .09786 L s P p .001 w .3101 .09411 m .3101 .09786 L s P p .001 w .35781 .09411 m .35781 .09786 L s P p .001 w .40553 .09411 m .40553 .09786 L s P p .001 w .45324 .09411 m .45324 .09786 L s P p .001 w .54867 .09411 m .54867 .09786 L s P p .001 w .59638 .09411 m .59638 .09786 L s P p .001 w .6441 .09411 m .6441 .09786 L s P p .001 w .69181 .09411 m .69181 .09786 L s P p .001 w .78724 .09411 m .78724 .09786 L s P p .001 w .83496 .09411 m .83496 .09786 L s P p .001 w .88267 .09411 m .88267 .09786 L s P p .001 w .93038 .09411 m .93038 .09786 L s P [( Hz)] 1.025 .09411 -1 0 Mshowa p .002 w 0 .09411 m 1 .09411 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .24301 m .03006 .24301 L s P [(-80)] .01131 .24301 1 0 Mshowa p .002 w .02381 .39192 m .03006 .39192 L s P [(-70)] .01131 .39192 1 0 Mshowa p .002 w .02381 .54082 m .03006 .54082 L s P [(-60)] .01131 .54082 1 0 Mshowa p .001 w .02381 .12389 m .02756 .12389 L s P p .001 w .02381 .15367 m .02756 .15367 L s P p .001 w .02381 .18345 m .02756 .18345 L s P p .001 w .02381 .21323 m .02756 .21323 L s P p .001 w .02381 .27279 m .02756 .27279 L s P p .001 w .02381 .30257 m .02756 .30257 L s P p .001 w .02381 .33235 m .02756 .33235 L s P p .001 w .02381 .36214 m .02756 .36214 L s P p .001 w .02381 .4217 m .02756 .4217 L s P p .001 w .02381 .45148 m .02756 .45148 L s P p .001 w .02381 .48126 m .02756 .48126 L s P p .001 w .02381 .51104 m .02756 .51104 L s P p .001 w .02381 .06433 m .02756 .06433 L s P p .001 w .02381 .03455 m .02756 .03455 L s P p .001 w .02381 .00477 m .02756 .00477 L s P p .001 w .02381 .5706 m .02756 .5706 L s P p .001 w .02381 .60038 m .02756 .60038 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02393 .43017 m .02517 .43018 L .02641 .43022 L .02765 .43029 L .02889 .43039 L .03137 .43066 L .03385 .43105 L .03633 .43154 L .03881 .43214 L .04377 .43368 L .04873 .43569 L .05369 .43817 L .06361 .44469 L .07353 .45351 L .08345 .46504 L .09336 .47989 L .10328 .4989 L .12312 .55367 L .12808 .57067 L .13304 .58711 L .13552 .59413 L .13676 .59709 L .138 .59957 L .13924 .60148 L .14048 .60275 L .14172 .60332 L .14296 .60315 L .1442 .60221 L .14544 .60053 L .14668 .59814 L .14792 .59509 L .1504 .58733 L .15288 .57791 L .1628 .53437 L .18264 .45864 L .20248 .40331 L .22232 .36057 L .26199 .29638 L .30167 .2485 L .34135 .21039 L .38103 .17891 L .4207 .15233 L .46038 .12956 L .50006 .10988 L .53974 .0928 L .57941 .07795 L .61909 .06506 L .65877 .05392 L .69845 .04438 L .73813 .03632 L Mistroke .7778 .02962 L .81748 .02423 L .85716 .02008 L .877 .01845 L .89684 .01713 L .91667 .01609 L .92659 .01568 L .93651 .01534 L .94643 .01508 L .95139 .01497 L .95635 .01489 L .96131 .01482 L .96379 .01479 L .96627 .01476 L .96875 .01475 L .96999 .01474 L .97123 .01473 L .97247 .01473 L .97371 .01472 L .97495 .01472 L .97619 .01472 L Mfstroke P P % End of Graphics MathPictureEnd :[font = input; preserveAspect; startGroup; ] ListPlot[FindImpulseResponse[zfilt2,50],PlotJoined->True]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.0190476 0.247457 2555.02 [ [(10)] .21429 .24746 0 2 Msboxa [(20)] .40476 .24746 0 2 Msboxa [(30)] .59524 .24746 0 2 Msboxa [(40)] .78571 .24746 0 2 Msboxa [(50)] .97619 .24746 0 2 Msboxa [(-0.00005)] .01131 .11971 1 0 Msboxa [(0.00005)] .01131 .37521 1 0 Msboxa [(0.0001)] .01131 .50296 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21429 .24746 m .21429 .25371 L s P [(10)] .21429 .24746 0 2 Mshowa p .002 w .40476 .24746 m .40476 .25371 L s P [(20)] .40476 .24746 0 2 Mshowa p .002 w .59524 .24746 m .59524 .25371 L s P [(30)] .59524 .24746 0 2 Mshowa p .002 w .78571 .24746 m .78571 .25371 L s P [(40)] .78571 .24746 0 2 Mshowa p .002 w .97619 .24746 m .97619 .25371 L s P [(50)] .97619 .24746 0 2 Mshowa p .001 w .0619 .24746 m .0619 .25121 L s P p .001 w .1 .24746 m .1 .25121 L s P p .001 w .1381 .24746 m .1381 .25121 L s P p .001 w .17619 .24746 m .17619 .25121 L s P p .001 w .25238 .24746 m .25238 .25121 L s P p .001 w .29048 .24746 m .29048 .25121 L s P p .001 w .32857 .24746 m .32857 .25121 L s P p .001 w .36667 .24746 m .36667 .25121 L s P p .001 w .44286 .24746 m .44286 .25121 L s P p .001 w .48095 .24746 m .48095 .25121 L s P p .001 w .51905 .24746 m .51905 .25121 L s P p .001 w .55714 .24746 m .55714 .25121 L s P p .001 w .63333 .24746 m .63333 .25121 L s P p .001 w .67143 .24746 m .67143 .25121 L s P p .001 w .70952 .24746 m .70952 .25121 L s P p .001 w .74762 .24746 m .74762 .25121 L s P p .001 w .82381 .24746 m .82381 .25121 L s P p .001 w .8619 .24746 m .8619 .25121 L s P p .001 w .9 .24746 m .9 .25121 L s P p .001 w .9381 .24746 m .9381 .25121 L s P p .002 w 0 .24746 m 1 .24746 L s P p .002 w .02381 .11971 m .03006 .11971 L s P [(-0.00005)] .01131 .11971 1 0 Mshowa p .002 w .02381 .37521 m .03006 .37521 L s P [(0.00005)] .01131 .37521 1 0 Mshowa p .002 w .02381 .50296 m .03006 .50296 L s P [(0.0001)] .01131 .50296 1 0 Mshowa p .001 w .02381 .14526 m .02756 .14526 L s P p .001 w .02381 .17081 m .02756 .17081 L s P p .001 w .02381 .19636 m .02756 .19636 L s P p .001 w .02381 .22191 m .02756 .22191 L s P p .001 w .02381 .27301 m .02756 .27301 L s P p .001 w .02381 .29856 m .02756 .29856 L s P p .001 w .02381 .32411 m .02756 .32411 L s P p .001 w .02381 .34966 m .02756 .34966 L s P p .001 w .02381 .40076 m .02756 .40076 L s P p .001 w .02381 .42631 m .02756 .42631 L s P p .001 w .02381 .45186 m .02756 .45186 L s P p .001 w .02381 .47741 m .02756 .47741 L s P p .001 w .02381 .09416 m .02756 .09416 L s P p .001 w .02381 .06861 m .02756 .06861 L s P p .001 w .02381 .04305 m .02756 .04305 L s P p .001 w .02381 .0175 m .02756 .0175 L s P p .001 w .02381 .52851 m .02756 .52851 L s P p .001 w .02381 .55406 m .02756 .55406 L s P p .001 w .02381 .57961 m .02756 .57961 L s P p .001 w .02381 .60516 m .02756 .60516 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .04286 .40715 m .0619 .52727 L .08095 .59415 L .1 .60332 L .11905 .55924 L .1381 .47375 L .15714 .36359 L .17619 .24746 L .19524 .14302 L .21429 .06445 L .23333 .02071 L .25238 .01472 L .27143 .04355 L .29048 .09946 L .30952 .1715 L .32857 .24746 L .34762 .31576 L .36667 .36715 L .38571 .39575 L .40476 .39967 L .42381 .38082 L .44286 .34425 L .4619 .29713 L .48095 .24746 L .5 .20278 L .51905 .16918 L .5381 .15047 L .55714 .1479 L .57619 .16024 L .59524 .18415 L .61429 .21497 L .63333 .24746 L .65238 .27667 L .67143 .29865 L .69048 .31089 L .70952 .31257 L .72857 .3045 L .74762 .28886 L .76667 .26871 L .78571 .24746 L .80476 .22835 L .82381 .21397 L .84286 .20597 L .8619 .20487 L .88095 .21015 L .9 .22038 L .91905 .23356 L .9381 .24746 L .95714 .25995 L .97619 .26936 L Mistroke Mfstroke % End of Graphics MathPictureEnd :[font = input; preserveAspect; startGroup; ] zfilt3 = Simplify[StandardZTransform[filter3, 1/16000]] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0000625*(-1.026440222362878986 + z)*z)/ (0.8992863801631705324 - 1.752243064078298443*z + z^2) ;[o] 0.0000625 (-1.02644 + z) z -------------------------- 2 0.899286 - 1.75224 z + z :[font = input; preserveAspect; startGroup; ] FreqResponse[zfilt3,16000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 1.67251 0.016748 [ [(2000)] .26238 .08146 0 2 Msboxa [(4000)] .50095 .08146 0 2 Msboxa [(6000)] .73953 .08146 0 2 Msboxa [(8000)] .9781 .08146 0 2 Msboxa [( Hz)] 1.025 .08146 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-90)] .01131 .1652 1 0 Msboxa [(-85)] .01131 .24894 1 0 Msboxa [(-80)] .01131 .33268 1 0 Msboxa [(-75)] .01131 .41642 1 0 Msboxa [(-70)] .01131 .50015 1 0 Msboxa [(-65)] .01131 .58389 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .08146 m .26238 .08771 L s P [(2000)] .26238 .08146 0 2 Mshowa p .002 w .50095 .08146 m .50095 .08771 L s P [(4000)] .50095 .08146 0 2 Mshowa p .002 w .73953 .08146 m .73953 .08771 L s P [(6000)] .73953 .08146 0 2 Mshowa p .002 w .9781 .08146 m .9781 .08771 L s P [(8000)] .9781 .08146 0 2 Mshowa p .001 w .07152 .08146 m .07152 .08521 L s P p .001 w .11924 .08146 m .11924 .08521 L s P p .001 w .16695 .08146 m .16695 .08521 L s P p .001 w .21467 .08146 m .21467 .08521 L s P p .001 w .3101 .08146 m .3101 .08521 L s P p .001 w .35781 .08146 m .35781 .08521 L s P p .001 w .40553 .08146 m .40553 .08521 L s P p .001 w .45324 .08146 m .45324 .08521 L s P p .001 w .54867 .08146 m .54867 .08521 L s P p .001 w .59638 .08146 m .59638 .08521 L s P p .001 w .6441 .08146 m .6441 .08521 L s P p .001 w .69181 .08146 m .69181 .08521 L s P p .001 w .78724 .08146 m .78724 .08521 L s P p .001 w .83496 .08146 m .83496 .08521 L s P p .001 w .88267 .08146 m .88267 .08521 L s P p .001 w .93038 .08146 m .93038 .08521 L s P [( Hz)] 1.025 .08146 -1 0 Mshowa p .002 w 0 .08146 m 1 .08146 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .1652 m .03006 .1652 L s P [(-90)] .01131 .1652 1 0 Mshowa p .002 w .02381 .24894 m .03006 .24894 L s P [(-85)] .01131 .24894 1 0 Mshowa p .002 w .02381 .33268 m .03006 .33268 L s P [(-80)] .01131 .33268 1 0 Mshowa p .002 w .02381 .41642 m .03006 .41642 L s P [(-75)] .01131 .41642 1 0 Mshowa p .002 w .02381 .50015 m .03006 .50015 L s P [(-70)] .01131 .50015 1 0 Mshowa p .002 w .02381 .58389 m .03006 .58389 L s P [(-65)] .01131 .58389 1 0 Mshowa p .001 w .02381 .01446 m .02756 .01446 L s P p .001 w .02381 .03121 m .02756 .03121 L s P p .001 w .02381 .04796 m .02756 .04796 L s P p .001 w .02381 .06471 m .02756 .06471 L s P p .001 w .02381 .0982 m .02756 .0982 L s P p .001 w .02381 .11495 m .02756 .11495 L s P p .001 w .02381 .1317 m .02756 .1317 L s P p .001 w .02381 .14845 m .02756 .14845 L s P p .001 w .02381 .18194 m .02756 .18194 L s P p .001 w .02381 .19869 m .02756 .19869 L s P p .001 w .02381 .21544 m .02756 .21544 L s P p .001 w .02381 .23219 m .02756 .23219 L s P p .001 w .02381 .26568 m .02756 .26568 L s P p .001 w .02381 .28243 m .02756 .28243 L s P p .001 w .02381 .29918 m .02756 .29918 L s P p .001 w .02381 .31593 m .02756 .31593 L s P p .001 w .02381 .34942 m .02756 .34942 L s P p .001 w .02381 .36617 m .02756 .36617 L s P p .001 w .02381 .38292 m .02756 .38292 L s P p .001 w .02381 .39967 m .02756 .39967 L s P p .001 w .02381 .43316 m .02756 .43316 L s P p .001 w .02381 .44991 m .02756 .44991 L s P p .001 w .02381 .46666 m .02756 .46666 L s P p .001 w .02381 .48341 m .02756 .48341 L s P p .001 w .02381 .5169 m .02756 .5169 L s P p .001 w .02381 .53365 m .02756 .53365 L s P p .001 w .02381 .5504 m .02756 .5504 L s P p .001 w .02381 .56715 m .02756 .56715 L s P p .001 w .02381 .60064 m .02756 .60064 L s P p .001 w .02381 .61739 m .02756 .61739 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02393 .01472 m .04377 .1636 L .06361 .26847 L .10328 .42764 L .12312 .52118 L .12808 .54728 L .13304 .57242 L .13552 .58353 L .138 .59278 L .13924 .59648 L .14048 .59943 L .14172 .60159 L .14296 .60289 L .1442 .60332 L .14544 .60289 L .14668 .60165 L .14792 .59966 L .1504 .59376 L .15288 .58593 L .1628 .54751 L .17272 .51133 L .18264 .4813 L .20248 .43571 L .22232 .40244 L .24216 .37658 L .26199 .35556 L .30167 .32274 L .34135 .2977 L .38103 .27762 L .4207 .26101 L .46038 .24701 L .50006 .23506 L .53974 .22477 L .57941 .2159 L .61909 .20824 L .65877 .20165 L .69845 .19602 L .73813 .19128 L .7778 .18736 L .81748 .1842 L .85716 .18177 L .877 .18082 L .89684 .18005 L .91667 .17944 L .92659 .1792 L .93651 .17901 L .94643 .17885 L .95139 .17879 L .95635 .17874 L .96131 .1787 L Mistroke .96379 .17868 L .96627 .17867 L .96875 .17866 L .96999 .17865 L .97123 .17865 L .97247 .17865 L .97371 .17864 L .97495 .17864 L .97619 .17864 L Mfstroke P P % End of Graphics MathPictureEnd :[font = input; preserveAspect; startGroup; ] ListPlot[FindImpulseResponse[zfilt3,50],PlotJoined->True]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.0190476 0.266299 5392.32 [ [(10)] .21429 .2663 0 2 Msboxa [(20)] .40476 .2663 0 2 Msboxa [(30)] .59524 .2663 0 2 Msboxa [(40)] .78571 .2663 0 2 Msboxa [(50)] .97619 .2663 0 2 Msboxa [(-0.00004)] .01131 .05061 1 0 Msboxa [(-0.00002)] .01131 .15845 1 0 Msboxa [(0.00002)] .01131 .37415 1 0 Msboxa [(0.00004)] .01131 .48199 1 0 Msboxa [(0.00006)] .01131 .58984 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21429 .2663 m .21429 .27255 L s P [(10)] .21429 .2663 0 2 Mshowa p .002 w .40476 .2663 m .40476 .27255 L s P [(20)] .40476 .2663 0 2 Mshowa p .002 w .59524 .2663 m .59524 .27255 L s P [(30)] .59524 .2663 0 2 Mshowa p .002 w .78571 .2663 m .78571 .27255 L s P [(40)] .78571 .2663 0 2 Mshowa p .002 w .97619 .2663 m .97619 .27255 L s P [(50)] .97619 .2663 0 2 Mshowa p .001 w .0619 .2663 m .0619 .27005 L s P p .001 w .1 .2663 m .1 .27005 L s P p .001 w .1381 .2663 m .1381 .27005 L s P p .001 w .17619 .2663 m .17619 .27005 L s P p .001 w .25238 .2663 m .25238 .27005 L s P p .001 w .29048 .2663 m .29048 .27005 L s P p .001 w .32857 .2663 m .32857 .27005 L s P p .001 w .36667 .2663 m .36667 .27005 L s P p .001 w .44286 .2663 m .44286 .27005 L s P p .001 w .48095 .2663 m .48095 .27005 L s P p .001 w .51905 .2663 m .51905 .27005 L s P p .001 w .55714 .2663 m .55714 .27005 L s P p .001 w .63333 .2663 m .63333 .27005 L s P p .001 w .67143 .2663 m .67143 .27005 L s P p .001 w .70952 .2663 m .70952 .27005 L s P p .001 w .74762 .2663 m .74762 .27005 L s P p .001 w .82381 .2663 m .82381 .27005 L s P p .001 w .8619 .2663 m .8619 .27005 L s P p .001 w .9 .2663 m .9 .27005 L s P p .001 w .9381 .2663 m .9381 .27005 L s P p .002 w 0 .2663 m 1 .2663 L s P p .002 w .02381 .05061 m .03006 .05061 L s P [(-0.00004)] .01131 .05061 1 0 Mshowa p .002 w .02381 .15845 m .03006 .15845 L s P [(-0.00002)] .01131 .15845 1 0 Mshowa p .002 w .02381 .37415 m .03006 .37415 L s P [(0.00002)] .01131 .37415 1 0 Mshowa p .002 w .02381 .48199 m .03006 .48199 L s P [(0.00004)] .01131 .48199 1 0 Mshowa p .002 w .02381 .58984 m .03006 .58984 L s P [(0.00006)] .01131 .58984 1 0 Mshowa p .001 w .02381 .07218 m .02756 .07218 L s P p .001 w .02381 .09375 m .02756 .09375 L s P p .001 w .02381 .11531 m .02756 .11531 L s P p .001 w .02381 .13688 m .02756 .13688 L s P p .001 w .02381 .18002 m .02756 .18002 L s P p .001 w .02381 .20159 m .02756 .20159 L s P p .001 w .02381 .22316 m .02756 .22316 L s P p .001 w .02381 .24473 m .02756 .24473 L s P p .001 w .02381 .28787 m .02756 .28787 L s P p .001 w .02381 .30944 m .02756 .30944 L s P p .001 w .02381 .33101 m .02756 .33101 L s P p .001 w .02381 .35258 m .02756 .35258 L s P p .001 w .02381 .39571 m .02756 .39571 L s P p .001 w .02381 .41728 m .02756 .41728 L s P p .001 w .02381 .43885 m .02756 .43885 L s P p .001 w .02381 .46042 m .02756 .46042 L s P p .001 w .02381 .50356 m .02756 .50356 L s P p .001 w .02381 .52513 m .02756 .52513 L s P p .001 w .02381 .5467 m .02756 .5467 L s P p .001 w .02381 .56827 m .02756 .56827 L s P p .001 w .02381 .02904 m .02756 .02904 L s P p .001 w .02381 .00747 m .02756 .00747 L s P p .001 w .02381 .61141 m .02756 .61141 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .04286 .60332 m .0619 .51091 L .08095 .39184 L .1 .2663 L .11905 .1534 L .1381 .06848 L .15714 .0212 L .17619 .01472 L .19524 .04588 L .21429 .10632 L .23333 .18419 L .25238 .2663 L .27143 .34014 L .29048 .39568 L .30952 .4266 L .32857 .43084 L .34762 .41046 L .36667 .37093 L .38571 .32 L .40476 .2663 L .42381 .21801 L .44286 .18168 L .4619 .16146 L .48095 .15869 L .5 .17202 L .51905 .19787 L .5381 .23118 L .55714 .2663 L .57619 .29788 L .59524 .32164 L .61429 .33487 L .63333 .33668 L .65238 .32796 L .67143 .31105 L .69048 .28927 L .70952 .2663 L .72857 .24564 L .74762 .2301 L .76667 .22145 L .78571 .22027 L .80476 .22597 L .82381 .23703 L .84286 .25128 L .8619 .2663 L .88095 .27981 L .9 .28997 L .91905 .29563 L .9381 .2964 L .95714 .29268 L .97619 .28544 L Mistroke Mfstroke % End of Graphics MathPictureEnd :[font = input; preserveAspect; startGroup; ] zfilt4 = Simplify[StandardZTransform[filter4,1/16000]] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0000625*(-0.7258028417154194565 + z)*z)/ (0.8992863801631705324 - 1.752243064078298443*z + z^2) ;[o] 0.0000625 (-0.725803 + z) z --------------------------- 2 0.899286 - 1.75224 z + z :[font = input; preserveAspect; startGroup; ] FreqResponse[zfilt4,16000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 1.95658 0.0214353 [ [(2000)] .26238 .02741 0 2 Msboxa [(4000)] .50095 .02741 0 2 Msboxa [(6000)] .73953 .02741 0 2 Msboxa [(8000)] .9781 .02741 0 2 Msboxa [( Hz)] 1.025 .02741 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-85)] .01131 .13458 1 0 Msboxa [(-80)] .01131 .24176 1 0 Msboxa [(-75)] .01131 .34894 1 0 Msboxa [(-70)] .01131 .45611 1 0 Msboxa [(-65)] .01131 .56329 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .02741 m .26238 .03366 L s P [(2000)] .26238 .02741 0 2 Mshowa p .002 w .50095 .02741 m .50095 .03366 L s P [(4000)] .50095 .02741 0 2 Mshowa p .002 w .73953 .02741 m .73953 .03366 L s P [(6000)] .73953 .02741 0 2 Mshowa p .002 w .9781 .02741 m .9781 .03366 L s P [(8000)] .9781 .02741 0 2 Mshowa p .001 w .07152 .02741 m .07152 .03116 L s P p .001 w .11924 .02741 m .11924 .03116 L s P p .001 w .16695 .02741 m .16695 .03116 L s P p .001 w .21467 .02741 m .21467 .03116 L s P p .001 w .3101 .02741 m .3101 .03116 L s P p .001 w .35781 .02741 m .35781 .03116 L s P p .001 w .40553 .02741 m .40553 .03116 L s P p .001 w .45324 .02741 m .45324 .03116 L s P p .001 w .54867 .02741 m .54867 .03116 L s P p .001 w .59638 .02741 m .59638 .03116 L s P p .001 w .6441 .02741 m .6441 .03116 L s P p .001 w .69181 .02741 m .69181 .03116 L s P p .001 w .78724 .02741 m .78724 .03116 L s P p .001 w .83496 .02741 m .83496 .03116 L s P p .001 w .88267 .02741 m .88267 .03116 L s P p .001 w .93038 .02741 m .93038 .03116 L s P [( Hz)] 1.025 .02741 -1 0 Mshowa p .002 w 0 .02741 m 1 .02741 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .13458 m .03006 .13458 L s P [(-85)] .01131 .13458 1 0 Mshowa p .002 w .02381 .24176 m .03006 .24176 L s P [(-80)] .01131 .24176 1 0 Mshowa p .002 w .02381 .34894 m .03006 .34894 L s P [(-75)] .01131 .34894 1 0 Mshowa p .002 w .02381 .45611 m .03006 .45611 L s P [(-70)] .01131 .45611 1 0 Mshowa p .002 w .02381 .56329 m .03006 .56329 L s P [(-65)] .01131 .56329 1 0 Mshowa p .001 w .02381 .04884 m .02756 .04884 L s P p .001 w .02381 .07028 m .02756 .07028 L s P p .001 w .02381 .09171 m .02756 .09171 L s P p .001 w .02381 .11315 m .02756 .11315 L s P p .001 w .02381 .15602 m .02756 .15602 L s P p .001 w .02381 .17745 m .02756 .17745 L s P p .001 w .02381 .19889 m .02756 .19889 L s P p .001 w .02381 .22032 m .02756 .22032 L s P p .001 w .02381 .26319 m .02756 .26319 L s P p .001 w .02381 .28463 m .02756 .28463 L s P p .001 w .02381 .30606 m .02756 .30606 L s P p .001 w .02381 .3275 m .02756 .3275 L s P p .001 w .02381 .37037 m .02756 .37037 L s P p .001 w .02381 .39181 m .02756 .39181 L s P p .001 w .02381 .41324 m .02756 .41324 L s P p .001 w .02381 .43468 m .02756 .43468 L s P p .001 w .02381 .47755 m .02756 .47755 L s P p .001 w .02381 .49898 m .02756 .49898 L s P p .001 w .02381 .52042 m .02756 .52042 L s P p .001 w .02381 .54185 m .02756 .54185 L s P p .001 w .02381 .00597 m .02756 .00597 L s P p .001 w .02381 .58472 m .02756 .58472 L s P p .001 w .02381 .60616 m .02756 .60616 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02393 .27027 m .02517 .27031 L .02641 .27042 L .02765 .2706 L .02889 .27084 L .03137 .27154 L .03385 .27251 L .03881 .27528 L .04377 .27913 L .04873 .28407 L .05369 .2901 L .06361 .30543 L .07353 .32524 L .08345 .34984 L .10328 .41623 L .12312 .51364 L .12808 .54276 L .13304 .57106 L .13552 .58348 L .13676 .58889 L .138 .5936 L .13924 .5975 L .14048 .60047 L .14172 .60243 L .14296 .60332 L .1442 .60311 L .14544 .60183 L .14668 .59951 L .14792 .59625 L .1504 .58733 L .15288 .576 L .1628 .52211 L .17272 .47182 L .18264 .42998 L .20248 .36618 L .22232 .3195 L .24216 .28326 L .26199 .25388 L .30167 .20831 L .34135 .17387 L .38103 .1465 L .4207 .12404 L .46038 .10522 L .50006 .08924 L .53974 .07555 L .57941 .06377 L .61909 .05364 L .65877 .04494 L .69845 .03754 L .73813 .0313 L Mistroke .7778 .02614 L .81748 .022 L .85716 .01882 L .877 .01757 L .89684 .01656 L .91667 .01577 L .92659 .01545 L .93651 .0152 L .94643 .01499 L .95139 .01491 L .95635 .01485 L .96131 .01479 L .96379 .01477 L .96627 .01475 L .96875 .01474 L .96999 .01473 L .97123 .01473 L .97247 .01472 L .97371 .01472 L .97495 .01472 L .97619 .01472 L Mfstroke P P % End of Graphics MathPictureEnd :[font = input; preserveAspect; startGroup; ] ListPlot[FindImpulseResponse[zfilt4,50],PlotJoined->True]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.0190476 0.247457 5547.13 [ [(10)] .21429 .24746 0 2 Msboxa [(20)] .40476 .24746 0 2 Msboxa [(30)] .59524 .24746 0 2 Msboxa [(40)] .78571 .24746 0 2 Msboxa [(50)] .97619 .24746 0 2 Msboxa [(-0.00004)] .01131 .02557 1 0 Msboxa [(-0.00002)] .01131 .13651 1 0 Msboxa [(0.00002)] .01131 .3584 1 0 Msboxa [(0.00004)] .01131 .46934 1 0 Msboxa [(0.00006)] .01131 .58028 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21429 .24746 m .21429 .25371 L s P [(10)] .21429 .24746 0 2 Mshowa p .002 w .40476 .24746 m .40476 .25371 L s P [(20)] .40476 .24746 0 2 Mshowa p .002 w .59524 .24746 m .59524 .25371 L s P [(30)] .59524 .24746 0 2 Mshowa p .002 w .78571 .24746 m .78571 .25371 L s P [(40)] .78571 .24746 0 2 Mshowa p .002 w .97619 .24746 m .97619 .25371 L s P [(50)] .97619 .24746 0 2 Mshowa p .001 w .0619 .24746 m .0619 .25121 L s P p .001 w .1 .24746 m .1 .25121 L s P p .001 w .1381 .24746 m .1381 .25121 L s P p .001 w .17619 .24746 m .17619 .25121 L s P p .001 w .25238 .24746 m .25238 .25121 L s P p .001 w .29048 .24746 m .29048 .25121 L s P p .001 w .32857 .24746 m .32857 .25121 L s P p .001 w .36667 .24746 m .36667 .25121 L s P p .001 w .44286 .24746 m .44286 .25121 L s P p .001 w .48095 .24746 m .48095 .25121 L s P p .001 w .51905 .24746 m .51905 .25121 L s P p .001 w .55714 .24746 m .55714 .25121 L s P p .001 w .63333 .24746 m .63333 .25121 L s P p .001 w .67143 .24746 m .67143 .25121 L s P p .001 w .70952 .24746 m .70952 .25121 L s P p .001 w .74762 .24746 m .74762 .25121 L s P p .001 w .82381 .24746 m .82381 .25121 L s P p .001 w .8619 .24746 m .8619 .25121 L s P p .001 w .9 .24746 m .9 .25121 L s P p .001 w .9381 .24746 m .9381 .25121 L s P p .002 w 0 .24746 m 1 .24746 L s P p .002 w .02381 .02557 m .03006 .02557 L s P [(-0.00004)] .01131 .02557 1 0 Mshowa p .002 w .02381 .13651 m .03006 .13651 L s P [(-0.00002)] .01131 .13651 1 0 Mshowa p .002 w .02381 .3584 m .03006 .3584 L s P [(0.00002)] .01131 .3584 1 0 Mshowa p .002 w .02381 .46934 m .03006 .46934 L s P [(0.00004)] .01131 .46934 1 0 Mshowa p .002 w .02381 .58028 m .03006 .58028 L s P [(0.00006)] .01131 .58028 1 0 Mshowa p .001 w .02381 .04776 m .02756 .04776 L s P p .001 w .02381 .06995 m .02756 .06995 L s P p .001 w .02381 .09214 m .02756 .09214 L s P p .001 w .02381 .11433 m .02756 .11433 L s P p .001 w .02381 .1587 m .02756 .1587 L s P p .001 w .02381 .18089 m .02756 .18089 L s P p .001 w .02381 .20308 m .02756 .20308 L s P p .001 w .02381 .22527 m .02756 .22527 L s P p .001 w .02381 .26965 m .02756 .26965 L s P p .001 w .02381 .29183 m .02756 .29183 L s P p .001 w .02381 .31402 m .02756 .31402 L s P p .001 w .02381 .33621 m .02756 .33621 L s P p .001 w .02381 .38059 m .02756 .38059 L s P p .001 w .02381 .40278 m .02756 .40278 L s P p .001 w .02381 .42496 m .02756 .42496 L s P p .001 w .02381 .44715 m .02756 .44715 L s P p .001 w .02381 .49153 m .02756 .49153 L s P p .001 w .02381 .51372 m .02756 .51372 L s P p .001 w .02381 .53591 m .02756 .53591 L s P p .001 w .02381 .5581 m .02756 .5581 L s P p .001 w .02381 .00338 m .02756 .00338 L s P p .001 w .02381 .60247 m .02756 .60247 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .04286 .59415 m .0619 .60332 L .08095 .55924 L .1 .47375 L .11905 .36359 L .1381 .24746 L .15714 .14302 L .17619 .06445 L .19524 .02071 L .21429 .01472 L .23333 .04355 L .25238 .09946 L .27143 .1715 L .29048 .24746 L .30952 .31576 L .32857 .36715 L .34762 .39575 L .36667 .39967 L .38571 .38082 L .40476 .34425 L .42381 .29713 L .44286 .24746 L .4619 .20278 L .48095 .16918 L .5 .15047 L .51905 .1479 L .5381 .16024 L .55714 .18415 L .57619 .21497 L .59524 .24746 L .61429 .27667 L .63333 .29865 L .65238 .31089 L .67143 .31257 L .69048 .3045 L .70952 .28886 L .72857 .26871 L .74762 .24746 L .76667 .22835 L .78571 .21397 L .80476 .20597 L .82381 .20487 L .84286 .21015 L .8619 .22038 L .88095 .23356 L .9 .24746 L .91905 .25995 L .9381 .26936 L .95714 .27459 L .97619 .27531 L Mistroke Mfstroke % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Finally, we can plot the response for the cascade of all four filters. :[font = input; preserveAspect; startGroup; ] FreqResponse[Release[zfilt1 zfilt2 zfilt3 zfilt4/ FilterMag[zfilt1 zfilt2 zfilt3 zfilt4,1000, 16000]], 16000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 0.603319 0.00481537 [ [(2000)] .26238 .60332 0 2 Msboxa [(4000)] .50095 .60332 0 2 Msboxa [(6000)] .73953 .60332 0 2 Msboxa [(8000)] .9781 .60332 0 2 Msboxa [( Hz)] 1.025 .60332 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-120)] .01131 .02547 1 0 Msboxa [(-100)] .01131 .12178 1 0 Msboxa [(-80)] .01131 .21809 1 0 Msboxa [(-60)] .01131 .3144 1 0 Msboxa [(-40)] .01131 .4107 1 0 Msboxa [(-20)] .01131 .50701 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .60332 m .26238 .60957 L s P [(2000)] .26238 .60332 0 2 Mshowa p .002 w .50095 .60332 m .50095 .60957 L s P [(4000)] .50095 .60332 0 2 Mshowa p .002 w .73953 .60332 m .73953 .60957 L s P [(6000)] .73953 .60332 0 2 Mshowa p .002 w .9781 .60332 m .9781 .60957 L s P [(8000)] .9781 .60332 0 2 Mshowa p .001 w .07152 .60332 m .07152 .60707 L s P p .001 w .11924 .60332 m .11924 .60707 L s P p .001 w .16695 .60332 m .16695 .60707 L s P p .001 w .21467 .60332 m .21467 .60707 L s P p .001 w .3101 .60332 m .3101 .60707 L s P p .001 w .35781 .60332 m .35781 .60707 L s P p .001 w .40553 .60332 m .40553 .60707 L s P p .001 w .45324 .60332 m .45324 .60707 L s P p .001 w .54867 .60332 m .54867 .60707 L s P p .001 w .59638 .60332 m .59638 .60707 L s P p .001 w .6441 .60332 m .6441 .60707 L s P p .001 w .69181 .60332 m .69181 .60707 L s P p .001 w .78724 .60332 m .78724 .60707 L s P p .001 w .83496 .60332 m .83496 .60707 L s P p .001 w .88267 .60332 m .88267 .60707 L s P p .001 w .93038 .60332 m .93038 .60707 L s P [( Hz)] 1.025 .60332 -1 0 Mshowa p .002 w 0 .60332 m 1 .60332 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .02547 m .03006 .02547 L s P [(-120)] .01131 .02547 1 0 Mshowa p .002 w .02381 .12178 m .03006 .12178 L s P [(-100)] .01131 .12178 1 0 Mshowa p .002 w .02381 .21809 m .03006 .21809 L s P [(-80)] .01131 .21809 1 0 Mshowa p .002 w .02381 .3144 m .03006 .3144 L s P [(-60)] .01131 .3144 1 0 Mshowa p .002 w .02381 .4107 m .03006 .4107 L s P [(-40)] .01131 .4107 1 0 Mshowa p .002 w .02381 .50701 m .03006 .50701 L s P [(-20)] .01131 .50701 1 0 Mshowa p .001 w .02381 .04474 m .02756 .04474 L s P p .001 w .02381 .064 m .02756 .064 L s P p .001 w .02381 .08326 m .02756 .08326 L s P p .001 w .02381 .10252 m .02756 .10252 L s P p .001 w .02381 .14104 m .02756 .14104 L s P p .001 w .02381 .1603 m .02756 .1603 L s P p .001 w .02381 .17957 m .02756 .17957 L s P p .001 w .02381 .19883 m .02756 .19883 L s P p .001 w .02381 .23735 m .02756 .23735 L s P p .001 w .02381 .25661 m .02756 .25661 L s P p .001 w .02381 .27587 m .02756 .27587 L s P p .001 w .02381 .29514 m .02756 .29514 L s P p .001 w .02381 .33366 m .02756 .33366 L s P p .001 w .02381 .35292 m .02756 .35292 L s P p .001 w .02381 .37218 m .02756 .37218 L s P p .001 w .02381 .39144 m .02756 .39144 L s P p .001 w .02381 .42997 m .02756 .42997 L s P p .001 w .02381 .44923 m .02756 .44923 L s P p .001 w .02381 .46849 m .02756 .46849 L s P p .001 w .02381 .48775 m .02756 .48775 L s P p .001 w .02381 .52627 m .02756 .52627 L s P p .001 w .02381 .54553 m .02756 .54553 L s P p .001 w .02381 .5648 m .02756 .5648 L s P p .001 w .02381 .58406 m .02756 .58406 L s P p .001 w .02381 .00621 m .02756 .00621 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02393 .23944 m .06361 .33077 L .08345 .3782 L .10328 .43941 L .12312 .52555 L .12808 .55111 L .13304 .57585 L .13552 .58664 L .13676 .59132 L .138 .59536 L .13924 .59867 L .14048 .60115 L .14172 .60271 L .14296 .60331 L .1442 .60293 L .14544 .60157 L .14668 .59928 L .14792 .59614 L .1504 .5877 L .15288 .57709 L .1628 .52691 L .18264 .4405 L .20248 .37958 L .22232 .33417 L .26199 .26883 L .30167 .22228 L .34135 .18644 L .38103 .15758 L .4207 .13365 L .46038 .11345 L .50006 .09618 L .53974 .08133 L .57941 .06851 L .61909 .05745 L .65877 .04793 L .69845 .03981 L .73813 .03296 L .7778 .0273 L .81748 .02274 L .85716 .01923 L .877 .01787 L .89684 .01675 L .91667 .01587 L .92659 .01553 L .93651 .01524 L .94643 .01502 L .95139 .01493 L .95635 .01486 L .96131 .0148 L .96379 .01478 L Mistroke .96627 .01476 L .96875 .01474 L .96999 .01473 L .97123 .01473 L .97247 .01472 L .97371 .01472 L .97495 .01472 L .97619 .01472 L Mfstroke P P % End of Graphics MathPictureEnd :[font = input; preserveAspect; endGroup; ] :[font = subsection; inactive; preserveAspect; startGroup; ] 3.4 Symbolic Z-Transform :[font = text; inactive; preserveAspect; ] This section derives the digital filter that approximates a Gammatone function with center frequency w=2p fc and a bandwidth of B radians. The symbolic Laplace transform for this function was derived in Section 3.1. ;[s] 3:0,0;104,1;106,0;216,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Symbol,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] Unfortunately, the StandardZTransform code used in Section 3.3 needs numeric values for the poles so they can be sorted and conjugate pole pairs can be found. But in this case we have a symbolic expression for the conjugate pole pair. So, instead letÕs write a simple function that performs the transformation. Recall, we first expand the transfer function into its partial fractions expansion. This gives us an expression for the filter stage in the following form. ;[s] 3:0,0;19,1;37,0;470,-1; 2:2,13,9,Times,0,12,0,0,0;1,13,9,Times,1,12,0,0,0; :[font = input; output; inactive; preserveAspect; ] r1/(s-p1) + r2/(s-p2) ;[o] r1 r2 ------ + ------ s - p1 s - p2 :[font = text; inactive; preserveAspect; ] In the partial fractions expansion, r1 and r2 are the residues of the original filter function when evaulated at p1 and p2. We find the z-transform of the equivalent impulse invariant filter, assuming a sampling interval of T, by replacing the simple s-domain pole with a modified z-domain pole. ;[s] 11:0,0;37,1;39,0;44,1;46,0;114,1;116,0;121,1;124,0;226,1;227,0;299,-1; 2:6,13,9,Times,0,12,0,0,0;5,14,10,Times,2,12,0,0,0; :[font = input; output; inactive; preserveAspect; ] r/(s-p) -> T r / (1 - E^(T p)/z) = T r z/(z-E^(T p)) ;[o] r T r T r z ----- -> -------- = -------- s - p T p T p E z - E 1 - ---- z :[font = text; inactive; preserveAspect; ] The following function is used to make this transformation. The variables r1 and r2 hold the two residues. The local variable filt is used to hold the filter, and a number of simplifications are performed to reduce the result into its canonical form. ;[s] 7:0,0;75,1;77,0;82,1;84,0;128,1;132,0;253,-1; 2:4,13,9,Times,0,12,0,0,0;3,14,10,Times,2,12,0,0,0; :[font = input; initialization; preserveAspect; ] *) SymbolicZTransform[{gain_, zeros_, {p1_,p2_}}, T_] := Block[{r1, r2, filt}, r1 = Simplify[EvaluateGZP[gain, zeros, {p2}, p1]]; r2 = Simplify[EvaluateGZP[gain, zeros, {p1}, p2]]; (* Print["Residue 1 is ", r1]; *) (* Print["Residue 2 is ", r2]; *) filt = Together[(T r1)/(1-E^(T p1)/z) + (T r2)/(1-E^(T p2)/z)]; filt = Collect[Simplify[ComplexExpand[Numerator[filt]]],z]/ Collect[Simplify[ComplexExpand[Denominator[filt]]],z]; Return[filt] ] (* :[font = text; inactive; preserveAspect; ] We first test it on a numeric filter weÕve already seen. Within the limits of floating point accuracy, we get the same result: :[font = input; preserveAspect; startGroup; ] SymbolicZTransform[filter1, 1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (-0.0001095151915048936526*z + 0.00006249999999999999999*z^2)/ (0.8992863801631705324 - 1.752243064078298443*z + z^2) ;[o] 2 -0.000109515 z + 0.0000625 z ----------------------------- 2 0.899286 - 1.75224 z + z :[font = text; inactive; preserveAspect; ] HereÕs the real result. LetÕs take the first two zeros and two of the conjugate poles and compute the equivalent impulse invariant filter. :[font = input; initialization; preserveAspect; startGroup; ] *) zfilt1 = SymbolicZTransform[{1,{GZP[[2]][[1]]}, {GZP[[3]][[1]], GZP[[3]][[2]]}},T] (* :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) + (2*(3 + 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 + 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ + ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = input; initialization; preserveAspect; startGroup; ] *) zfilt2 = SymbolicZTransform[{1,{GZP[[2]][[2]]}, {GZP[[3]][[1]], GZP[[3]][[2]]}},T] (* :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) - (2*(3 + 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 + 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ - ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = input; initialization; preserveAspect; startGroup; ] *) zfilt3 = SymbolicZTransform[{1,{GZP[[2]][[3]]}, {GZP[[3]][[1]], GZP[[3]][[2]]}},T] (* :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) + (2*(3 - 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 - 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ + ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = input; initialization; preserveAspect; startGroup; ] *) zfilt4 = SymbolicZTransform[{1,{GZP[[2]][[4]]}, {GZP[[3]][[1]], GZP[[3]][[2]]}},T] (* :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) - (2*(3 - 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 - 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ - ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = text; inactive; preserveAspect; ] This is the completely general result. We can plug in any sampling interval and any center frequency to get the filter somewhere along the Basilar Membrane. We set the cf to 1000 and the sampling interval (T) to 1/16000 so we can compare it to the result above. ;[s] 5:0,0;170,1;172,0;208,1;209,0;266,-1; 2:3,13,9,Times,0,12,0,0,0;2,14,10,Times,2,12,0,0,0; :[font = input; preserveAspect; startGroup; ] Simplify[N[zfilt3/.B->(2 Pi 1.019 ERB[cf,EarQ,minBW,order])/. GlasbergBandwidthParms/. cf->1000/. T->1/16000]] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0000625*(-1.026440222362878986 + z)*z)/ (0.8992863801631705325 - 1.752243064078298442*z + z^2) ;[o] 0.0000625 (-1.02644 + z) z -------------------------- 2 0.899286 - 1.75224 z + z :[font = text; inactive; preserveAspect; ] Now, to create a family of frequency responses, we would like to have a little function that puts everything together, simplifies, and adjusts the gain. This function is called MakeERBFilter and takes two arguments, the center frequency and the sampling rate, fs. ;[s] 5:0,0;178,1;191,0;261,2;263,0;265,-1; 3:3,13,9,Times,0,12,0,0,0;1,13,9,Times,1,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = input; initialization; preserveAspect; ] *) MakeERBFilter[centerfreq_, fs_] := Block[{filter, gain}, filter = Simplify[zfilt1 zfilt2 zfilt3 zfilt4/. B->(2 Pi 1.019 ERB[cf,EarQ,minBW,order])/. GlasbergBandwidthParms/.cf->centerfreq/. T->1/fs]; filter = Simplify[N[filter]]; gain = N[FilterMag[filter, centerfreq, fs]]; Return[filter/gain] ] (* :[font = text; inactive; preserveAspect; ] LetÕs plot a few of these digital Gammatone filters. HereÕs the result. We limit the dB range from {-70 to 0} to keep the plot looking reasonable. :[font = input; preserveAspect; startGroup; ] Show[Table[FreqResponse[MakeERBFilter[125*2^i,16000], 16000, {PlotRange->{-70,0}, DisplayFunction->Identity}], {i,5}], DisplayFunction->$DisplayFunction]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 176; endGroup; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 0.618034 0.00882906 [ [(2000)] .26238 .61803 0 2 Msboxa [(4000)] .50095 .61803 0 2 Msboxa [(6000)] .73953 .61803 0 2 Msboxa [(8000)] .9781 .61803 0 2 Msboxa [( Hz)] 1.025 .61803 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-70)] .01131 0 1 0 Msboxa [(-60)] .01131 .08829 1 0 Msboxa [(-50)] .01131 .17658 1 0 Msboxa [(-40)] .01131 .26487 1 0 Msboxa [(-30)] .01131 .35316 1 0 Msboxa [(-20)] .01131 .44145 1 0 Msboxa [(-10)] .01131 .52974 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .62528 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .61803 m .26238 .62428 L s P [(2000)] .26238 .61803 0 2 Mshowa p .002 w .50095 .61803 m .50095 .62428 L s P [(4000)] .50095 .61803 0 2 Mshowa p .002 w .73953 .61803 m .73953 .62428 L s P [(6000)] .73953 .61803 0 2 Mshowa p .002 w .9781 .61803 m .9781 .62428 L s P [(8000)] .9781 .61803 0 2 Mshowa p .001 w .07152 .61803 m .07152 .62178 L s P p .001 w .11924 .61803 m .11924 .62178 L s P p .001 w .16695 .61803 m .16695 .62178 L s P p .001 w .21467 .61803 m .21467 .62178 L s P p .001 w .3101 .61803 m .3101 .62178 L s P p .001 w .35781 .61803 m .35781 .62178 L s P p .001 w .40553 .61803 m .40553 .62178 L s P p .001 w .45324 .61803 m .45324 .62178 L s P p .001 w .54867 .61803 m .54867 .62178 L s P p .001 w .59638 .61803 m .59638 .62178 L s P p .001 w .6441 .61803 m .6441 .62178 L s P p .001 w .69181 .61803 m .69181 .62178 L s P p .001 w .78724 .61803 m .78724 .62178 L s P p .001 w .83496 .61803 m .83496 .62178 L s P p .001 w .88267 .61803 m .88267 .62178 L s P p .001 w .93038 .61803 m .93038 .62178 L s P [( Hz)] 1.025 .61803 -1 0 Mshowa p .002 w 0 .61803 m 1 .61803 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 0 m .03006 0 L s P [(-70)] .01131 0 1 0 Mshowa p .002 w .02381 .08829 m .03006 .08829 L s P [(-60)] .01131 .08829 1 0 Mshowa p .002 w .02381 .17658 m .03006 .17658 L s P [(-50)] .01131 .17658 1 0 Mshowa p .002 w .02381 .26487 m .03006 .26487 L s P [(-40)] .01131 .26487 1 0 Mshowa p .002 w .02381 .35316 m .03006 .35316 L s P [(-30)] .01131 .35316 1 0 Mshowa p .002 w .02381 .44145 m .03006 .44145 L s P [(-20)] .01131 .44145 1 0 Mshowa p .002 w .02381 .52974 m .03006 .52974 L s P [(-10)] .01131 .52974 1 0 Mshowa p .001 w .02381 .01766 m .02756 .01766 L s P p .001 w .02381 .03532 m .02756 .03532 L s P p .001 w .02381 .05297 m .02756 .05297 L s P p .001 w .02381 .07063 m .02756 .07063 L s P p .001 w .02381 .10595 m .02756 .10595 L s P p .001 w .02381 .12361 m .02756 .12361 L s P p .001 w .02381 .14126 m .02756 .14126 L s P p .001 w .02381 .15892 m .02756 .15892 L s P p .001 w .02381 .19424 m .02756 .19424 L s P p .001 w .02381 .2119 m .02756 .2119 L s P p .001 w .02381 .22956 m .02756 .22956 L s P p .001 w .02381 .24721 m .02756 .24721 L s P p .001 w .02381 .28253 m .02756 .28253 L s P p .001 w .02381 .30019 m .02756 .30019 L s P p .001 w .02381 .31785 m .02756 .31785 L s P p .001 w .02381 .3355 m .02756 .3355 L s P p .001 w .02381 .37082 m .02756 .37082 L s P p .001 w .02381 .38848 m .02756 .38848 L s P p .001 w .02381 .40614 m .02756 .40614 L s P p .001 w .02381 .42379 m .02756 .42379 L s P p .001 w .02381 .45911 m .02756 .45911 L s P p .001 w .02381 .47677 m .02756 .47677 L s P p .001 w .02381 .49443 m .02756 .49443 L s P p .001 w .02381 .51209 m .02756 .51209 L s P p .001 w .02381 .5474 m .02756 .5474 L s P p .001 w .02381 .56506 m .02756 .56506 L s P p .001 w .02381 .58272 m .02756 .58272 L s P p .001 w .02381 .60038 m .02756 .60038 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p p .004 w .02393 .13649 m .02517 .14071 L .02641 .15072 L .02889 .17956 L .03385 .24816 L .04377 .42721 L .04625 .48488 L .04873 .54505 L .04997 .57313 L .05121 .59676 L .05245 .61269 L .05369 .61802 L .05493 .61164 L .05617 .59487 L .05865 .54239 L .06361 .42498 L .06857 .32755 L .07353 .25022 L .08345 .13482 L .09336 .05072 L s .10103 0 m .09336 .05072 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s P P p p .004 w .02393 .0558 m .02517 .05694 L .02641 .05987 L .02889 .07003 L .03137 .08386 L .03385 .09956 L .04377 .17002 L .06361 .3619 L .07353 .50588 L .07601 .54533 L .07849 .5814 L .07973 .59635 L .08097 .608 L .08221 .61545 L .08345 .61803 L .08469 .61551 L .08593 .60811 L .0884 .58159 L .09088 .54556 L .09336 .50613 L .10328 .36231 L .1132 .25506 L .12312 .1735 L .14296 .05475 L s .1557 0 m .14296 .05475 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s P P p p .004 w s .03557 0 m .06361 .11832 L s .06361 .11832 m .08345 .20527 L .10328 .31751 L .12312 .47544 L .12808 .5223 L .13304 .56767 L .13552 .58746 L .13676 .59603 L .138 .60345 L .13924 .60952 L .14048 .61406 L .14172 .61692 L .14296 .61802 L .1442 .61731 L .14544 .61482 L .14668 .61063 L .14792 .60488 L .1504 .5894 L .15288 .56995 L .1628 .47794 L .18264 .3195 L .20248 .2078 L .22232 .12454 L .26199 .00474 L s .2642 0 m .26199 .00474 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s P P p p .004 w s s s s s s s s s .05082 0 m .06361 .02135 L s .06361 .02135 m .10328 .09405 L .14296 .17906 L .1628 .23075 L .18264 .29186 L .22232 .45619 L .23224 .50712 L .24216 .55813 L .24712 .5811 L .24959 .59122 L .25207 .60009 L .25455 .60743 L .25579 .61045 L .25703 .61299 L .25827 .61504 L .25951 .61657 L .26075 .61756 L .26199 .61801 L .26323 .6179 L .26447 .61725 L .26571 .61606 L .26695 .61433 L .26943 .60937 L .27191 .60256 L .27687 .58438 L .28183 .5619 L .30167 .46005 L .32151 .36898 L .34135 .29444 L .38103 .18116 L .4207 .09773 L .46038 .0323 L s .4843 0 m .46038 .0323 L s s s s s s s s s s s s s s P P p p .004 w .02393 .03605 m .02517 .03606 L .02641 .03607 L .02765 .03609 L .02889 .03612 L .03137 .0362 L .03385 .03631 L .03633 .03646 L .03881 .03663 L .04377 .03708 L .04873 .03766 L .05369 .03836 L .06361 .04013 L .08345 .04515 L .10328 .05209 L .14296 .07143 L .18264 .09771 L .22232 .13084 L .26199 .17132 L .30167 .22033 L .34135 .28003 L .38103 .35379 L .4207 .44575 L .44054 .49859 L .46038 .55255 L .4703 .5773 L .47526 .58832 L .48022 .59804 L .48518 .60614 L .48766 .60949 L .49014 .61233 L .49262 .61462 L .49386 .61555 L .4951 .61634 L .49634 .61698 L .49758 .61747 L .49882 .61781 L .50006 .61799 L .5013 .61803 L .50254 .61791 L .50378 .61764 L .50502 .61721 L .50626 .61664 L .5075 .61592 L .50998 .61404 L .51246 .61159 L .51494 .60861 L .5199 .60117 L .52982 .58141 L .53974 .55721 L Mistroke .57941 .45035 L .61909 .35752 L .65877 .28302 L .69845 .22277 L .73813 .17333 L .7778 .13251 L .81748 .09905 L .85716 .07247 L .877 .06175 L .89684 .05281 L .91667 .0457 L .92659 .04286 L .93651 .0405 L .94643 .03864 L .95139 .03789 L .95635 .03727 L .96131 .03678 L .96379 .03658 L .96627 .03641 L .96875 .03628 L .96999 .03622 L .97123 .03617 L .97247 .03613 L .97371 .0361 L .97495 .03608 L .97619 .03606 L Mfstroke P P P % End of Graphics MathPictureEnd :[font = subsection; inactive; preserveAspect; startGroup; ] 3.5 All-Pole Gammatone Approximation :[font = text; inactive; preserveAspect; ] All of the zeros in the Gammatone filter, rationalFilter, are on the real axis. This means that the zeros have a small effect near the center frequency of each filter. By ignoring the zeros in the original filter we cut the computation effort nearly in half, at some reduction in the filterÕs attenuation near DC. This means that we have four second order sections, each with the identical set of conjugate poles near the resonant frequency. ;[s] 3:0,0;42,1;56,0;445,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) twopolefilt = SymbolicZTransform[{1,{}, {GZP[[3]][[1]], GZP[[3]][[2]]}},T] (* :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z*Sin[2*cf*Pi*T])/ (E^(B*T)*((-4*cf*Pi)/E^(2*B*T) - 4*cf*Pi*z^2 + (8*cf*Pi*z*Cos[2*cf*Pi*T])/E^(B*T))) ;[o] -2 T z Sin[2 cf Pi T] ------------------------------------------------------- B T -4 cf Pi 2 8 cf Pi z Cos[2 cf Pi T] E (-------- - 4 cf Pi z + ------------------------) 2 B T B T E E :[font = text; inactive; preserveAspect; ] We can now plot the response for a cascade of four of these second order sections. The bandwidth is similar to the exact solution but now there is less attenuation at DC. :[font = input; initialization; preserveAspect; ] *) MakePoleERBFilter[centerfreq_, fs_] := Block[{filter, gain}, filter = Simplify[twopolefilt twopolefilt twopolefilt twopolefilt/. B->(2 Pi 1.019 ERB[cf,EarQ,minBW,order])/. GlasbergBandwidthParms/.cf->centerfreq/. T->1/fs]; filter = Simplify[N[filter]]; gain = N[FilterMag[filter, centerfreq, fs]]; Return[filter/gain] ] (* :[font = input; preserveAspect; startGroup; ] Show[Table[FreqResponse[MakePoleERBFilter[125*2^i,16000], 16000, {PlotRange->{-70,0}, DisplayFunction->Identity}], {i,5}], DisplayFunction->$DisplayFunction]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 176; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 0.618034 0.00882906 [ [(2000)] .26238 .61803 0 2 Msboxa [(4000)] .50095 .61803 0 2 Msboxa [(6000)] .73953 .61803 0 2 Msboxa [(8000)] .9781 .61803 0 2 Msboxa [( Hz)] 1.025 .61803 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-70)] .01131 0 1 0 Msboxa [(-60)] .01131 .08829 1 0 Msboxa [(-50)] .01131 .17658 1 0 Msboxa [(-40)] .01131 .26487 1 0 Msboxa [(-30)] .01131 .35316 1 0 Msboxa [(-20)] .01131 .44145 1 0 Msboxa [(-10)] .01131 .52974 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .62528 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .61803 m .26238 .62428 L s P [(2000)] .26238 .61803 0 2 Mshowa p .002 w .50095 .61803 m .50095 .62428 L s P [(4000)] .50095 .61803 0 2 Mshowa p .002 w .73953 .61803 m .73953 .62428 L s P [(6000)] .73953 .61803 0 2 Mshowa p .002 w .9781 .61803 m .9781 .62428 L s P [(8000)] .9781 .61803 0 2 Mshowa p .001 w .07152 .61803 m .07152 .62178 L s P p .001 w .11924 .61803 m .11924 .62178 L s P p .001 w .16695 .61803 m .16695 .62178 L s P p .001 w .21467 .61803 m .21467 .62178 L s P p .001 w .3101 .61803 m .3101 .62178 L s P p .001 w .35781 .61803 m .35781 .62178 L s P p .001 w .40553 .61803 m .40553 .62178 L s P p .001 w .45324 .61803 m .45324 .62178 L s P p .001 w .54867 .61803 m .54867 .62178 L s P p .001 w .59638 .61803 m .59638 .62178 L s P p .001 w .6441 .61803 m .6441 .62178 L s P p .001 w .69181 .61803 m .69181 .62178 L s P p .001 w .78724 .61803 m .78724 .62178 L s P p .001 w .83496 .61803 m .83496 .62178 L s P p .001 w .88267 .61803 m .88267 .62178 L s P p .001 w .93038 .61803 m .93038 .62178 L s P [( Hz)] 1.025 .61803 -1 0 Mshowa p .002 w 0 .61803 m 1 .61803 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 0 m .03006 0 L s P [(-70)] .01131 0 1 0 Mshowa p .002 w .02381 .08829 m .03006 .08829 L s P [(-60)] .01131 .08829 1 0 Mshowa p .002 w .02381 .17658 m .03006 .17658 L s P [(-50)] .01131 .17658 1 0 Mshowa p .002 w .02381 .26487 m .03006 .26487 L s P [(-40)] .01131 .26487 1 0 Mshowa p .002 w .02381 .35316 m .03006 .35316 L s P [(-30)] .01131 .35316 1 0 Mshowa p .002 w .02381 .44145 m .03006 .44145 L s P [(-20)] .01131 .44145 1 0 Mshowa p .002 w .02381 .52974 m .03006 .52974 L s P [(-10)] .01131 .52974 1 0 Mshowa p .001 w .02381 .01766 m .02756 .01766 L s P p .001 w .02381 .03532 m .02756 .03532 L s P p .001 w .02381 .05297 m .02756 .05297 L s P p .001 w .02381 .07063 m .02756 .07063 L s P p .001 w .02381 .10595 m .02756 .10595 L s P p .001 w .02381 .12361 m .02756 .12361 L s P p .001 w .02381 .14126 m .02756 .14126 L s P p .001 w .02381 .15892 m .02756 .15892 L s P p .001 w .02381 .19424 m .02756 .19424 L s P p .001 w .02381 .2119 m .02756 .2119 L s P p .001 w .02381 .22956 m .02756 .22956 L s P p .001 w .02381 .24721 m .02756 .24721 L s P p .001 w .02381 .28253 m .02756 .28253 L s P p .001 w .02381 .30019 m .02756 .30019 L s P p .001 w .02381 .31785 m .02756 .31785 L s P p .001 w .02381 .3355 m .02756 .3355 L s P p .001 w .02381 .37082 m .02756 .37082 L s P p .001 w .02381 .38848 m .02756 .38848 L s P p .001 w .02381 .40614 m .02756 .40614 L s P p .001 w .02381 .42379 m .02756 .42379 L s P p .001 w .02381 .45911 m .02756 .45911 L s P p .001 w .02381 .47677 m .02756 .47677 L s P p .001 w .02381 .49443 m .02756 .49443 L s P p .001 w .02381 .51209 m .02756 .51209 L s P p .001 w .02381 .5474 m .02756 .5474 L s P p .001 w .02381 .56506 m .02756 .56506 L s P p .001 w .02381 .58272 m .02756 .58272 L s P p .001 w .02381 .60038 m .02756 .60038 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p p .004 w .02393 .34103 m .02517 .34158 L .02641 .34307 L .02765 .34551 L .02889 .34891 L .03013 .3533 L .03137 .35871 L .03385 .37276 L .03633 .39152 L .03881 .41554 L .04377 .48202 L .04625 .52488 L .04873 .57099 L .04997 .5923 L .05121 .60929 L s .05235 .61803 m .05121 .60929 L s .05332 .61803 m .05369 .61774 L s .05369 .61774 m .05493 .60514 L .05617 .58229 L .05865 .51798 L .06361 .37817 L .07353 .16274 L .08345 .01101 L s .08438 0 m .08345 .01101 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s P P p p .004 w .02393 .26135 m .02517 .2615 L .02641 .26189 L .02765 .26253 L .02889 .26342 L .03137 .26596 L .03385 .26952 L .03633 .27414 L .03881 .27986 L .04377 .29482 L .04873 .31499 L .05369 .34121 L .05865 .37466 L .06361 .41688 L .07353 .53204 L .07601 .56473 L .07725 .58019 L .07849 .5942 L .07973 .6059 L .08097 .61433 L s .08204 .61803 m .08097 .61433 L s s .08345 .61803 m .08469 .61242 L s .08469 .61242 m .08593 .60194 L .0884 .56936 L .09336 .48213 L .10328 .31607 L .1132 .18807 L .12312 .08705 L s .13431 0 m .12312 .08705 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s P P p p .004 w .02393 .20792 m .02517 .20796 L .02641 .20806 L .02765 .20823 L .02889 .20846 L .03137 .20911 L .03385 .21001 L .03633 .21118 L .03881 .21261 L .04377 .21626 L .04873 .22102 L .05369 .22691 L .06361 .24236 L .07353 .26328 L .08345 .29064 L .09336 .32584 L .10328 .37094 L .12312 .50085 L .12808 .54117 L .13304 .58016 L .13552 .59681 L .13676 .60382 L .138 .6097 L .13924 .61423 L .14048 .61725 L s .14121 .61803 m .14048 .61725 L s s .14305 .61803 m .1442 .61598 L s .1442 .61598 m .14544 .61199 L .14668 .60632 L .14792 .59909 L .1504 .58068 L .15288 .55834 L .1628 .45507 L .18264 .27546 L .20248 .14422 L .22232 .04287 L s .23349 0 m .22232 .04287 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s P P p p .004 w .02393 .16642 m .02517 .16643 L .02641 .16646 L .02765 .1665 L .02889 .16656 L .03137 .16673 L .03385 .16697 L .03633 .16727 L .03881 .16765 L .04377 .16859 L .04873 .16981 L .05369 .17131 L .06361 .17514 L .07353 .18012 L .08345 .18629 L .10328 .2025 L .12312 .22443 L .14296 .25312 L .1628 .29011 L .18264 .33767 L .20248 .39905 L .22232 .47769 L .23224 .52304 L .24216 .56864 L .24712 .58897 L .24959 .59778 L .25207 .60536 L .25455 .61141 L .25579 .6138 L .25703 .6157 L .25827 .61712 L .25951 .61802 L s .25958 .61803 m .25951 .61802 L s s .26228 .61803 m .26323 .61748 L s .26323 .61748 m .26447 .6162 L .26571 .61439 L .26695 .61205 L .26943 .60587 L .27191 .59784 L .28183 .55243 L .30167 .44152 L .32151 .34197 L .34135 .25952 L .38103 .13205 L .4207 .03652 L s .43989 0 m .4207 .03652 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s P P p p .004 w .02393 .09312 m .02517 .09313 L .02641 .09313 L .02765 .09315 L .02889 .09316 L .03137 .09321 L .03385 .09328 L .03633 .09337 L .03881 .09348 L .04377 .09376 L .04873 .09412 L .05369 .09456 L .06361 .09568 L .07353 .09711 L .08345 .09887 L .10328 .10338 L .12312 .10924 L .14296 .1165 L .18264 .13546 L .22232 .16099 L .26199 .19414 L .30167 .23653 L .34135 .29056 L .38103 .3598 L .4207 .44845 L .44054 .50013 L .46038 .55324 L .4703 .5777 L .47526 .5886 L .48022 .59822 L .48518 .60625 L .48766 .60957 L .49014 .61238 L .49262 .61465 L .49386 .61557 L .4951 .61635 L .49634 .61699 L .49758 .61747 L .49882 .61781 L .50006 .61799 L .5013 .61803 L .50254 .61791 L .50378 .61764 L .50502 .61722 L .50626 .61665 L .5075 .61594 L .50998 .61407 L .51246 .61165 L .51494 .60869 L .5199 .60132 L Mistroke .52982 .58176 L .53974 .55784 L .57941 .45294 L .61909 .36335 L .65877 .29333 L .69845 .23869 L .73813 .19584 L .7778 .16231 L .81748 .13647 L .83732 .12607 L .85716 .11722 L .877 .10984 L .89684 .10386 L .91667 .09923 L .92659 .09741 L .93651 .09591 L .94643 .09474 L .95139 .09427 L .95635 .09388 L .96131 .09358 L .96379 .09345 L .96627 .09335 L .96875 .09326 L .96999 .09323 L .97123 .0932 L .97247 .09317 L .97371 .09315 L .97495 .09314 L .97619 .09313 L Mfstroke P P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Some versions of Mathematica include a package that performs Laplace Transforms. We use this package to derive the impulse response of the all-pole approximation to the fourth order Gammatone filter. We invert four copies of the two conjugate poles described in Section 3.1. ;[s] 3:0,0;17,1;28,0;275,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = input; preserveAspect; ] <2*Pi*125/.w->2*Pi*1000],{t,0,250/16000}, PlotRange->All]; ;[o] 2 26 5 Sin[w t] 5 t Cos[w t] t Sin[w t] Plot[Release[(10 (---------- - ------------ - ----------- + 7 6 5 16 w 16 w 8 w 3 t Cos[w t] B t -----------)) / E /. B -> 2 Pi 125 /. 4 48 w 250 w -> 2 Pi 1000], {t, 0, -----}, PlotRange -> All]; 16000 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 60.9524 0.307532 0.0795859 [ [(0.0025)] .17619 .30753 0 2 Msboxa [(0.005)] .32857 .30753 0 2 Msboxa [(0.0075)] .48095 .30753 0 2 Msboxa [(0.01)] .63333 .30753 0 2 Msboxa [(0.0125)] .78571 .30753 0 2 Msboxa [(0.015)] .9381 .30753 0 2 Msboxa [(-3)] .01131 .06877 1 0 Msboxa [(-2)] .01131 .14836 1 0 Msboxa [(-1)] .01131 .22795 1 0 Msboxa [(1)] .01131 .38712 1 0 Msboxa [(2)] .01131 .4667 1 0 Msboxa [(3)] .01131 .54629 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .17619 .30753 m .17619 .31378 L s P [(0.0025)] .17619 .30753 0 2 Mshowa p .002 w .32857 .30753 m .32857 .31378 L s P [(0.005)] .32857 .30753 0 2 Mshowa p .002 w .48095 .30753 m .48095 .31378 L s P [(0.0075)] .48095 .30753 0 2 Mshowa p .002 w .63333 .30753 m .63333 .31378 L s P [(0.01)] .63333 .30753 0 2 Mshowa p .002 w .78571 .30753 m .78571 .31378 L s P [(0.0125)] .78571 .30753 0 2 Mshowa p .002 w .9381 .30753 m .9381 .31378 L s P [(0.015)] .9381 .30753 0 2 Mshowa p .001 w .05429 .30753 m .05429 .31128 L s P p .001 w .08476 .30753 m .08476 .31128 L s P p .001 w .11524 .30753 m .11524 .31128 L s P p .001 w .14571 .30753 m .14571 .31128 L s P p .001 w .20667 .30753 m .20667 .31128 L s P p .001 w .23714 .30753 m .23714 .31128 L s P p .001 w .26762 .30753 m .26762 .31128 L s P p .001 w .2981 .30753 m .2981 .31128 L s P p .001 w .35905 .30753 m .35905 .31128 L s P p .001 w .38952 .30753 m .38952 .31128 L s P p .001 w .42 .30753 m .42 .31128 L s P p .001 w .45048 .30753 m .45048 .31128 L s P p .001 w .51143 .30753 m .51143 .31128 L s P p .001 w .5419 .30753 m .5419 .31128 L s P p .001 w .57238 .30753 m .57238 .31128 L s P p .001 w .60286 .30753 m .60286 .31128 L s P p .001 w .66381 .30753 m .66381 .31128 L s P p .001 w .69429 .30753 m .69429 .31128 L s P p .001 w .72476 .30753 m .72476 .31128 L s P p .001 w .75524 .30753 m .75524 .31128 L s P p .001 w .81619 .30753 m .81619 .31128 L s P p .001 w .84667 .30753 m .84667 .31128 L s P p .001 w .87714 .30753 m .87714 .31128 L s P p .001 w .90762 .30753 m .90762 .31128 L s P p .001 w .96857 .30753 m .96857 .31128 L s P p .001 w .99905 .30753 m .99905 .31128 L s P p .002 w 0 .30753 m 1 .30753 L s P p .002 w .02381 .06877 m .03006 .06877 L s P [(-3)] .01131 .06877 1 0 Mshowa p .002 w .02381 .14836 m .03006 .14836 L s P [(-2)] .01131 .14836 1 0 Mshowa p .002 w .02381 .22795 m .03006 .22795 L s P [(-1)] .01131 .22795 1 0 Mshowa p .002 w .02381 .38712 m .03006 .38712 L s P [(1)] .01131 .38712 1 0 Mshowa p .002 w .02381 .4667 m .03006 .4667 L s P [(2)] .01131 .4667 1 0 Mshowa p .002 w .02381 .54629 m .03006 .54629 L s P [(3)] .01131 .54629 1 0 Mshowa p .001 w .02381 .08469 m .02756 .08469 L s P p .001 w .02381 .10061 m .02756 .10061 L s P p .001 w .02381 .11653 m .02756 .11653 L s P p .001 w .02381 .13244 m .02756 .13244 L s P p .001 w .02381 .16428 m .02756 .16428 L s P p .001 w .02381 .18019 m .02756 .18019 L s P p .001 w .02381 .19611 m .02756 .19611 L s P p .001 w .02381 .21203 m .02756 .21203 L s P p .001 w .02381 .24386 m .02756 .24386 L s P p .001 w .02381 .25978 m .02756 .25978 L s P p .001 w .02381 .2757 m .02756 .2757 L s P p .001 w .02381 .29161 m .02756 .29161 L s P p .001 w .02381 .32345 m .02756 .32345 L s P p .001 w .02381 .33937 m .02756 .33937 L s P p .001 w .02381 .35528 m .02756 .35528 L s P p .001 w .02381 .3712 m .02756 .3712 L s P p .001 w .02381 .40303 m .02756 .40303 L s P p .001 w .02381 .41895 m .02756 .41895 L s P p .001 w .02381 .43487 m .02756 .43487 L s P p .001 w .02381 .45079 m .02756 .45079 L s P p .001 w .02381 .48262 m .02756 .48262 L s P p .001 w .02381 .49854 m .02756 .49854 L s P p .001 w .02381 .51446 m .02756 .51446 L s P p .001 w .02381 .53037 m .02756 .53037 L s P p .001 w .02381 .05286 m .02756 .05286 L s P p .001 w .02381 .03694 m .02756 .03694 L s P p .001 w .02381 .02102 m .02756 .02102 L s P p .001 w .02381 .00511 m .02756 .00511 L s P p .001 w .02381 .56221 m .02756 .56221 L s P p .001 w .02381 .57812 m .02756 .57812 L s P p .001 w .02381 .59404 m .02756 .59404 L s P p .001 w .02381 .60996 m .02756 .60996 L s P p .002 w .02381 0 m .02381 .61803 L s P P p p .004 w .02381 .30753 m .02505 .30753 L .02629 .30753 L .02753 .30753 L .02877 .30753 L .03001 .30753 L .03125 .30753 L .03249 .30753 L .03373 .30754 L .03497 .30754 L .03621 .30755 L .03745 .30757 L .03869 .30759 L .03993 .30763 L .04117 .30769 L .04241 .30778 L .04365 .30791 L .04489 .30808 L .04613 .3083 L .04737 .3086 L .04861 .30899 L .04985 .30947 L .05109 .31006 L .05357 .31164 L .05605 .31382 L .05853 .31667 L .06349 .32432 L .06845 .33365 L .07093 .33821 L .07341 .34213 L .07465 .34369 L .07589 .34489 L .07713 .34567 L .07837 .34596 L .07961 .3457 L .08085 .34483 L .08209 .3433 L .08333 .34108 L .08457 .33812 L .08581 .33442 L .08829 .32476 L .09077 .31226 L .09325 .29731 L .09821 .26302 L .10069 .24573 L .10317 .23 L .10565 .21716 L .10689 .21222 L .10813 .20848 L .10937 .20607 L Mistroke .11062 .2051 L .11186 .20569 L .1131 .20789 L .11434 .21177 L .11558 .21735 L .11806 .23354 L .12054 .25607 L .12302 .284 L .12798 .35011 L .13294 .41635 L .13542 .44381 L .13666 .45513 L .1379 .46452 L .13914 .47174 L .14038 .47661 L .14162 .47897 L .14286 .47869 L .1441 .47569 L .14534 .46994 L .14658 .46145 L .14782 .45028 L .1503 .42035 L .15278 .38155 L .15774 .28626 L .1627 .18703 L .16518 .14412 L .16642 .12573 L .16766 .10985 L .1689 .0968 L .17014 .08685 L .17138 .08022 L .17262 .07709 L .17386 .07756 L .1751 .08171 L .17634 .08952 L .17758 .10094 L .18006 .13403 L .18254 .17928 L .1875 .29521 L .19246 .4207 L .19494 .47692 L .19742 .52361 L .19866 .54233 L .1999 .55749 L .20114 .56882 L .20238 .57609 L .20362 .57914 L .20486 .57787 L .2061 .57226 L .20734 .56238 L Mistroke .20982 .53031 L .21106 .50858 L .2123 .48347 L .22222 .2156 L .2247 .14998 L .22718 .09377 L .22842 .07039 L .22966 .05072 L .2309 .03507 L .23214 .02374 L .23338 .01691 L .23462 .01472 L .23586 .01721 L .2371 .02437 L .23834 .03609 L .23958 .0522 L .24082 .07245 L .24206 .09651 L .25198 .37064 L .25446 .44121 L .25694 .50326 L .25818 .5298 L .25942 .55278 L .26066 .5718 L .2619 .58657 L .26314 .59684 L .26438 .60245 L .26563 .60332 L .26687 .59943 L .26811 .59086 L .26935 .57774 L .27183 .53883 L .27431 .48528 L .27679 .42058 L .28175 .27514 L .28423 .20383 L .28671 .13963 L .28919 .08665 L .29043 .06544 L .29167 .04821 L .29291 .03523 L .29415 .02669 L .29539 .02271 L .29663 .02333 L .29787 .02852 L .29911 .03818 L .30035 .05213 L .30159 .07013 L .30407 .11693 L .30655 .17543 L Mistroke .31151 .31146 L .31647 .44323 L .31895 .49686 L .32019 .51903 L .32143 .53765 L .32267 .55243 L .32391 .56316 L .32515 .56969 L .32639 .57194 L .32763 .56992 L .32887 .56368 L .33011 .55336 L .33135 .53916 L .33383 .50019 L .33631 .4495 L .34127 .32727 L .34623 .20421 L .34871 .15228 L .34995 .13022 L .35119 .11123 L .35243 .09557 L .35367 .08348 L .35491 .07512 L .35615 .07059 L .35739 .06992 L .35863 .0731 L .35987 .08003 L .36111 .09056 L .36235 .10449 L .36359 .12157 L .36607 .16385 L .37103 .27001 L .37599 .38114 L .37847 .42962 L .38095 .46923 L .38219 .48494 L .38343 .49762 L .38467 .50708 L .38591 .51322 L .38715 .51596 L .38839 .5153 L .38963 .51129 L .39087 .50404 L .39211 .4937 L .39335 .48047 L .39583 .44639 L .40079 .35688 L .40575 .25937 L .40823 .21549 L .41071 .17858 L Mistroke .41319 .15086 L .41443 .14095 L .41567 .13386 L .41691 .12967 L .41815 .12841 L .41939 .13006 L .42063 .13456 L .42187 .1418 L .42312 .15162 L .4256 .17821 L .43056 .25169 L .43552 .33513 L .44048 .40722 L .44172 .42127 L .44296 .43329 L .4442 .44311 L .44544 .4506 L .44668 .45566 L .44792 .45826 L .44916 .45838 L .4504 .45606 L .46032 .36548 L .46528 .29564 L .47024 .23285 L .47272 .20906 L .47396 .19974 L .4752 .1923 L .47644 .18684 L .47768 .18341 L .47892 .18205 L .48016 .18275 L .4814 .18545 L .48264 .19008 L .48512 .2047 L .4876 .22545 L .49008 .2508 L .49504 .30809 L .49752 .33624 L .5 .36166 L .50248 .38279 L .50372 .39136 L .50496 .39843 L .5062 .40391 L .50744 .40774 L .50868 .40989 L .50992 .41034 L .51116 .40912 L .5124 .40628 L .51364 .40188 L .51488 .39603 L Mistroke .51984 .36074 L .5248 .3146 L .52976 .26975 L .53224 .25139 L .53472 .23725 L .53596 .23201 L .5372 .22809 L .53844 .22552 L .53968 .22432 L .54092 .22449 L .54216 .22601 L .5434 .22882 L .54464 .23285 L .54712 .24424 L .5496 .25927 L .55456 .29581 L .55952 .33272 L .562 .34836 L .56324 .35504 L .56448 .36083 L .56572 .36565 L .56696 .36944 L .5682 .37216 L .56944 .37379 L .57068 .37431 L .57192 .37373 L .57316 .3721 L .5744 .36945 L .57688 .36136 L .57937 .35012 L .58433 .32165 L .58929 .29174 L .59177 .27865 L .59425 .2679 L .59549 .26359 L .59673 .26008 L .59797 .2574 L .59921 .25558 L .60045 .25465 L .60169 .25458 L .60293 .25538 L .60417 .25701 L .60665 .26257 L .60789 .26639 L .60913 .2708 L .61409 .29265 L .61905 .31654 L .62153 .32732 L .62401 .33642 L .62649 .34332 L Mistroke .62773 .34583 L .62897 .34767 L .63021 .34882 L .63145 .34928 L .63269 .34906 L .63393 .34816 L .63517 .34663 L .63641 .34448 L .63889 .33859 L .64385 .32208 L .64881 .30325 L .65129 .2945 L .65377 .28692 L .65625 .28097 L .65749 .2787 L .65873 .27695 L .67857 .30867 L .68105 .31568 L .68353 .32189 L .68601 .32692 L .68725 .32891 L .68849 .33051 L .68973 .33171 L .69097 .33249 L .69221 .33285 L .69345 .33279 L .69469 .33232 L .69593 .33146 L .69717 .33022 L .69841 .32865 L .70089 .32461 L .70337 .31964 L .70833 .30837 L .71329 .29781 L .71577 .29362 L .71701 .29191 L .71825 .2905 L .71949 .28939 L .72073 .28859 L .72197 .28813 L .72321 .28798 L .72445 .28816 L .72569 .28865 L .72693 .28943 L .72817 .29049 L .72941 .2918 L .73065 .29335 L .73313 .29699 L .7381 .30556 L .74306 .3139 L Mistroke .74554 .31733 L .74678 .31876 L .74802 .31998 L .74926 .32098 L .7505 .32173 L .75174 .32224 L .75298 .32249 L .75422 .3225 L .75546 .32227 L .7567 .3218 L .75794 .32111 L .75918 .32021 L .76042 .31913 L .7629 .3165 L .76786 .31006 L .77282 .30355 L .7753 .30078 L .77654 .29959 L .77778 .29856 L .77902 .2977 L .78026 .29701 L .7815 .29651 L .78274 .29621 L .78398 .29609 L .78522 .29616 L .78646 .29641 L .7877 .29684 L .79762 .30483 L .80258 .30987 L .80506 .31208 L .80754 .3139 L .80878 .31463 L .81002 .31523 L .81126 .31569 L .8125 .31601 L .81374 .31619 L .81498 .31622 L .81622 .31611 L .81746 .31586 L .82738 .31016 L .83234 .3063 L .83482 .30456 L .8373 .30309 L .83854 .30248 L .83978 .30196 L .84102 .30155 L .84226 .30125 L .8435 .30105 L .84474 .30096 L .84598 .30098 L Mistroke .84722 .30111 L .85714 .30512 L .8621 .30804 L .86458 .3094 L .86706 .31057 L .8683 .31107 L .86954 .31151 L .87078 .31186 L .87202 .31214 L .87326 .31234 L .8745 .31245 L .87574 .31248 L .87698 .31243 L .87822 .3123 L .87946 .3121 L .8807 .31183 L .88194 .31149 L .8869 .30966 L .89187 .30747 L .89435 .30642 L .89683 .30549 L .89931 .30473 L .90055 .30443 L .90179 .30419 L .90303 .30401 L .90427 .30389 L .90551 .30383 L .90675 .30383 L .90799 .30389 L .90923 .30401 L .91047 .30418 L .91171 .30441 L .91667 .3057 L .92163 .30733 L .92411 .30814 L .92659 .30886 L .92907 .30947 L .93155 .30993 L .93279 .31009 L .93403 .31021 L .93527 .31028 L .93651 .31031 L .93775 .31029 L .93899 .31022 L .94023 .31012 L .94147 .30997 L .94643 .30906 L .95139 .30786 L .95635 .30669 L .95883 .30621 L Mistroke .96007 .30601 L .96131 .30583 L .96255 .30569 L .96379 .30558 L .96503 .30551 L .96627 .30547 L .96751 .30547 L .96875 .3055 L .96999 .30556 L .97123 .30565 L .97371 .30592 L .97619 .30627 L Mfstroke P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath % End of Graphics MathPictureEnd :[font = subsection; inactive; preserveAspect; startGroup; ] 3.6 Testing :[font = text; inactive; preserveAspect; ] These are some simple test results. Compare them to the output of other implementations to verify that your program is correct.. WeÕll compute the results for two different filter locations, the first channel and the (arbitrary) 23rd channel. For each channel we compute the center frequency and the four digital filters. We use GlasbergÕs function for the ERB, overlap each filter by 50%, and assume a sampling rate of 16000 Hz. :[font = input; preserveAspect; startGroup; ] f=cf/.cfsoln/.GlasbergBandwidthParms/.stepfactor->.5/. fn->8000/.i->1 :[font = output; output; inactive; preserveAspect; endGroup; ] 7567.665375340331108 ;[o] 7567.67 :[font = input; preserveAspect; startGroup; ] N[zfilt1/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (-0.00005156672207075296713*z - 0.000125*z^2)/ (-1.019834425662972599 - 2.81527220681885157*z - 2.*z^2) ;[o] 2 -0.0000515667 z - 0.000125 z ----------------------------- 2 -1.01983 - 2.81527 z - 2. z :[font = input; preserveAspect; startGroup; ] N[zfilt2/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (-0.000124387790855425256*z - 0.000125*z^2)/ (-1.019834425662972599 - 2.81527220681885157*z - 2.*z^2) ;[o] 2 -0.000124388 z - 0.000125 z ---------------------------- 2 -1.01983 - 2.81527 z - 2. z :[font = input; preserveAspect; startGroup; ] N[zfilt3/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (-0.00008173019638786826713*z - 0.000125*z^2)/ (-1.019834425662972599 - 2.81527220681885157*z - 2.*z^2) ;[o] 2 -0.0000817302 z - 0.000125 z ----------------------------- 2 -1.01983 - 2.81527 z - 2. z :[font = input; preserveAspect; startGroup; ] N[zfilt4/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (-0.00009422431653830995603*z - 0.000125*z^2)/ (-1.019834425662972599 - 2.81527220681885157*z - 2.*z^2) ;[o] 2 -0.0000942243 z - 0.000125 z ----------------------------- 2 -1.01983 - 2.81527 z - 2. z :[font = input; preserveAspect; startGroup; ] FreqResponse[zfilt1 zfilt2 zfilt3 zfilt4 /. cf->f/.B-> 2*Pi*1.019*ERB[f,EarQ,minBW,order]/.T->1/16000/. GlasbergBandwidthParms, 16000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 176; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 3.808 0.0106768 [ [(2000)] .26238 .07111 0 2 Msboxa [(4000)] .50095 .07111 0 2 Msboxa [(6000)] .73953 .07111 0 2 Msboxa [(8000)] .9781 .07111 0 2 Msboxa [( Hz)] 1.025 .07111 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-340)] .01131 .17788 1 0 Msboxa [(-330)] .01131 .28465 1 0 Msboxa [(-320)] .01131 .39142 1 0 Msboxa [(-310)] .01131 .49819 1 0 Msboxa [(-300)] .01131 .60496 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .07111 m .26238 .07736 L s P [(2000)] .26238 .07111 0 2 Mshowa p .002 w .50095 .07111 m .50095 .07736 L s P [(4000)] .50095 .07111 0 2 Mshowa p .002 w .73953 .07111 m .73953 .07736 L s P [(6000)] .73953 .07111 0 2 Mshowa p .002 w .9781 .07111 m .9781 .07736 L s P [(8000)] .9781 .07111 0 2 Mshowa p .001 w .07152 .07111 m .07152 .07486 L s P p .001 w .11924 .07111 m .11924 .07486 L s P p .001 w .16695 .07111 m .16695 .07486 L s P p .001 w .21467 .07111 m .21467 .07486 L s P p .001 w .3101 .07111 m .3101 .07486 L s P p .001 w .35781 .07111 m .35781 .07486 L s P p .001 w .40553 .07111 m .40553 .07486 L s P p .001 w .45324 .07111 m .45324 .07486 L s P p .001 w .54867 .07111 m .54867 .07486 L s P p .001 w .59638 .07111 m .59638 .07486 L s P p .001 w .6441 .07111 m .6441 .07486 L s P p .001 w .69181 .07111 m .69181 .07486 L s P p .001 w .78724 .07111 m .78724 .07486 L s P p .001 w .83496 .07111 m .83496 .07486 L s P p .001 w .88267 .07111 m .88267 .07486 L s P p .001 w .93038 .07111 m .93038 .07486 L s P [( Hz)] 1.025 .07111 -1 0 Mshowa p .002 w 0 .07111 m 1 .07111 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .17788 m .03006 .17788 L s P [(-340)] .01131 .17788 1 0 Mshowa p .002 w .02381 .28465 m .03006 .28465 L s P [(-330)] .01131 .28465 1 0 Mshowa p .002 w .02381 .39142 m .03006 .39142 L s P [(-320)] .01131 .39142 1 0 Mshowa p .002 w .02381 .49819 m .03006 .49819 L s P [(-310)] .01131 .49819 1 0 Mshowa p .002 w .02381 .60496 m .03006 .60496 L s P [(-300)] .01131 .60496 1 0 Mshowa p .001 w .02381 .09247 m .02756 .09247 L s P p .001 w .02381 .11382 m .02756 .11382 L s P p .001 w .02381 .13517 m .02756 .13517 L s P p .001 w .02381 .15653 m .02756 .15653 L s P p .001 w .02381 .19924 m .02756 .19924 L s P p .001 w .02381 .22059 m .02756 .22059 L s P p .001 w .02381 .24194 m .02756 .24194 L s P p .001 w .02381 .2633 m .02756 .2633 L s P p .001 w .02381 .306 m .02756 .306 L s P p .001 w .02381 .32736 m .02756 .32736 L s P p .001 w .02381 .34871 m .02756 .34871 L s P p .001 w .02381 .37007 m .02756 .37007 L s P p .001 w .02381 .41277 m .02756 .41277 L s P p .001 w .02381 .43413 m .02756 .43413 L s P p .001 w .02381 .45548 m .02756 .45548 L s P p .001 w .02381 .47683 m .02756 .47683 L s P p .001 w .02381 .51954 m .02756 .51954 L s P p .001 w .02381 .54089 m .02756 .54089 L s P p .001 w .02381 .56225 m .02756 .56225 L s P p .001 w .02381 .5836 m .02756 .5836 L s P p .001 w .02381 .04976 m .02756 .04976 L s P p .001 w .02381 .02841 m .02756 .02841 L s P p .001 w .02381 .00705 m .02756 .00705 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02393 .01472 m .02517 .01472 L .02641 .01472 L .02765 .01472 L .02889 .01473 L .03137 .01474 L .03385 .01477 L .03633 .0148 L .03881 .01483 L .04377 .01492 L .04873 .01503 L .05369 .01517 L .06361 .01552 L .07353 .01598 L .08345 .01653 L .10328 .01795 L .12312 .01978 L .14296 .02201 L .18264 .02775 L .22232 .03522 L .26199 .04448 L .30167 .05564 L .34135 .0688 L .38103 .08411 L .4207 .10176 L .46038 .12198 L .50006 .14503 L .53974 .17128 L .57941 .20116 L .61909 .23522 L .65877 .27412 L .69845 .31867 L .73813 .36966 L .7778 .42755 L .81748 .49125 L .83732 .52371 L .85716 .55454 L .86708 .56851 L .877 .58091 L .88692 .59118 L .89188 .59533 L .89684 .5987 L .89932 .60007 L .9018 .60122 L .90427 .60213 L .90551 .60249 L .90675 .60279 L .90799 .60302 L .90923 .60319 L .91047 .60329 L Mistroke .91171 .60332 L .91295 .60328 L .91419 .60316 L .91543 .60298 L .91667 .60271 L .91791 .60237 L .91915 .60195 L .92163 .60086 L .92411 .59943 L .92659 .59765 L .93155 .59294 L .93651 .58655 L .94147 .57824 L .94643 .56766 L .95139 .55427 L .95635 .53717 L .96131 .51475 L .96379 .50063 L .96627 .48367 L .96875 .46266 L .97123 .43532 L .97247 .41798 L .97371 .39691 L .97495 .3705 L .97619 .33684 L Mfstroke P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Now, letÕs look at the 23rd channel. :[font = input; preserveAspect; startGroup; ] f=cf/.cfsoln/.GlasbergBandwidthParms/.stepfactor->.5/. fn->8000/.i->23 :[font = output; output; inactive; preserveAspect; endGroup; ] 2149.371332325623511 ;[o] 2149.37 :[font = input; preserveAspect; startGroup; ] N[zfilt1/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0002784610228153236466*z - 0.000125*z^2)/ (-1.628572811389067094 + 2.398293698579772035*z - 2.*z^2) ;[o] 2 0.000278461 z - 0.000125 z ---------------------------- 2 -1.62857 + 2.39829 z - 2. z :[font = input; preserveAspect; startGroup; ] N[zfilt2/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (-0.0001285676666540878944*z - 0.000125*z^2)/ (-1.628572811389067094 + 2.398293698579772035*z - 2.*z^2) ;[o] 2 -0.000128568 z - 0.000125 z ---------------------------- 2 -1.62857 + 2.39829 z - 2. z :[font = input; preserveAspect; startGroup; ] N[zfilt3/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0001098642193621464134*z - 0.000125*z^2)/ (-1.628572811389067094 + 2.398293698579772035*z - 2.*z^2) ;[o] 2 0.000109864 z - 0.000125 z ---------------------------- 2 -1.62857 + 2.39829 z - 2. z :[font = input; preserveAspect; startGroup; ] N[zfilt4/.cf->f/.B->2*Pi*1.019*ERB[f,EarQ,minBW,order]/. GlasbergBandwidthParms/.T->1/16000] :[font = output; output; inactive; preserveAspect; endGroup; ] (0.0000400291367990893388*z - 0.000125*z^2)/ (-1.628572811389067094 + 2.398293698579772035*z - 2.*z^2) ;[o] 2 0.0000400291 z - 0.000125 z ---------------------------- 2 -1.62857 + 2.39829 z - 2. z :[font = input; preserveAspect; startGroup; ] FreqResponse[zfilt1 zfilt2 zfilt3 zfilt4 /. cf->f/.B-> 2*Pi*1.019*ERB[f,EarQ,minBW,order]/.T->1/16000/. GlasbergBandwidthParms, 16000]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; endGroup; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.000119286 1.82744 0.00468083 [ [(2000)] .26238 .04872 0 2 Msboxa [(4000)] .50095 .04872 0 2 Msboxa [(6000)] .73953 .04872 0 2 Msboxa [(8000)] .9781 .04872 0 2 Msboxa [( Hz)] 1.025 .04872 -1 0 Msboxa [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotsboxa [(-360)] .01131 .14234 1 0 Msboxa [(-340)] .01131 .23595 1 0 Msboxa [(-320)] .01131 .32957 1 0 Msboxa [(-300)] .01131 .42319 1 0 Msboxa [(-280)] .01131 .5168 1 0 Msboxa [(-260)] .01131 .61042 1 0 Msboxa [(dB)] .02381 .61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .26238 .04872 m .26238 .05497 L s P [(2000)] .26238 .04872 0 2 Mshowa p .002 w .50095 .04872 m .50095 .05497 L s P [(4000)] .50095 .04872 0 2 Mshowa p .002 w .73953 .04872 m .73953 .05497 L s P [(6000)] .73953 .04872 0 2 Mshowa p .002 w .9781 .04872 m .9781 .05497 L s P [(8000)] .9781 .04872 0 2 Mshowa p .001 w .07152 .04872 m .07152 .05247 L s P p .001 w .11924 .04872 m .11924 .05247 L s P p .001 w .16695 .04872 m .16695 .05247 L s P p .001 w .21467 .04872 m .21467 .05247 L s P p .001 w .3101 .04872 m .3101 .05247 L s P p .001 w .35781 .04872 m .35781 .05247 L s P p .001 w .40553 .04872 m .40553 .05247 L s P p .001 w .45324 .04872 m .45324 .05247 L s P p .001 w .54867 .04872 m .54867 .05247 L s P p .001 w .59638 .04872 m .59638 .05247 L s P p .001 w .6441 .04872 m .6441 .05247 L s P p .001 w .69181 .04872 m .69181 .05247 L s P p .001 w .78724 .04872 m .78724 .05247 L s P p .001 w .83496 .04872 m .83496 .05247 L s P p .001 w .88267 .04872 m .88267 .05247 L s P p .001 w .93038 .04872 m .93038 .05247 L s P [( Hz)] 1.025 .04872 -1 0 Mshowa p .002 w 0 .04872 m 1 .04872 L s P [(Response)] .5 .61803 0 -2 0 0 1 Mouter Mrotshowa p .002 w .02381 .14234 m .03006 .14234 L s P [(-360)] .01131 .14234 1 0 Mshowa p .002 w .02381 .23595 m .03006 .23595 L s P [(-340)] .01131 .23595 1 0 Mshowa p .002 w .02381 .32957 m .03006 .32957 L s P [(-320)] .01131 .32957 1 0 Mshowa p .002 w .02381 .42319 m .03006 .42319 L s P [(-300)] .01131 .42319 1 0 Mshowa p .002 w .02381 .5168 m .03006 .5168 L s P [(-280)] .01131 .5168 1 0 Mshowa p .002 w .02381 .61042 m .03006 .61042 L s P [(-260)] .01131 .61042 1 0 Mshowa p .001 w .02381 .06744 m .02756 .06744 L s P p .001 w .02381 .08617 m .02756 .08617 L s P p .001 w .02381 .10489 m .02756 .10489 L s P p .001 w .02381 .12361 m .02756 .12361 L s P p .001 w .02381 .16106 m .02756 .16106 L s P p .001 w .02381 .17978 m .02756 .17978 L s P p .001 w .02381 .19851 m .02756 .19851 L s P p .001 w .02381 .21723 m .02756 .21723 L s P p .001 w .02381 .25468 m .02756 .25468 L s P p .001 w .02381 .2734 m .02756 .2734 L s P p .001 w .02381 .29212 m .02756 .29212 L s P p .001 w .02381 .31085 m .02756 .31085 L s P p .001 w .02381 .34829 m .02756 .34829 L s P p .001 w .02381 .36702 m .02756 .36702 L s P p .001 w .02381 .38574 m .02756 .38574 L s P p .001 w .02381 .40446 m .02756 .40446 L s P p .001 w .02381 .44191 m .02756 .44191 L s P p .001 w .02381 .46063 m .02756 .46063 L s P p .001 w .02381 .47936 m .02756 .47936 L s P p .001 w .02381 .49808 m .02756 .49808 L s P p .001 w .02381 .53553 m .02756 .53553 L s P p .001 w .02381 .55425 m .02756 .55425 L s P p .001 w .02381 .57297 m .02756 .57297 L s P p .001 w .02381 .5917 m .02756 .5917 L s P p .001 w .02381 .03 m .02756 .03 L s P p .001 w .02381 .01127 m .02756 .01127 L s P [(dB)] .02381 .61803 0 -4 Mshowa p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .004 w .02393 .26772 m .02517 .26775 L .02641 .26783 L .02765 .26796 L .02889 .26814 L .03137 .26863 L .03385 .26931 L .03881 .27116 L .04377 .27357 L .06361 .28678 L .10328 .31989 L .14296 .35958 L .18264 .41075 L .22232 .48236 L .24216 .52937 L .25207 .55504 L .26199 .57953 L .26695 .58987 L .26943 .59419 L .27191 .5978 L .27315 .59929 L .27439 .60057 L .27563 .60161 L .27687 .60241 L .27811 .60297 L .27935 .60327 L .28059 .60332 L .28183 .60311 L .28307 .60265 L .28431 .60193 L .28679 .59978 L .28927 .59674 L .29175 .5929 L .30167 .57184 L .34135 .47537 L .38103 .40585 L .4207 .35598 L .46038 .31772 L .50006 .28689 L .53974 .26114 L .57941 .23906 L .61909 .21969 L .65877 .20235 L .69845 .1865 L .73813 .17164 L .7778 .15727 L .81748 .14273 L .85716 .12698 L .877 .11809 L .89684 .10794 L Mistroke .91667 .09568 L .92659 .08827 L .93651 .07952 L .94643 .06876 L .95635 .05478 L .96627 .03552 L .97619 .01472 L Mfstroke P P % End of Graphics MathPictureEnd :[font = section; inactive; pageBreak; preserveAspect; startGroup; ] 4.0 Implementation :[font = text; inactive; preserveAspect; ] This section of this report will describe two different implementations of the Gammatone filters. Section 4.1 will describe the implementation using second order filters. Section 4.2 will describe the implementation using the MATLAB digital signal processing environment. ;[s] 3:0,0;230,1;235,0;275,-1; 2:2,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0; :[font = subsection; inactive; preserveAspect; startGroup; ] 4.1 Second-Order Section Implementation :[font = text; inactive; preserveAspect; ] We have designed four different digital filter stages. Together they implement a fourth order Gammatone filterbank as an eighth order digital filter. Each of these stages is a second order (biquadratic) digital filter. The four digital filters are shown below. :[font = input; preserveAspect; startGroup; ] zfilt1 :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) + (2*(3 + 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 + 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ + ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = input; preserveAspect; startGroup; ] zfilt2 :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) - (2*(3 + 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 + 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ - ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = input; preserveAspect; startGroup; ] zfilt3 :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) + (2*(3 - 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 - 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ + ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = input; preserveAspect; startGroup; ] zfilt4 :[font = output; output; inactive; preserveAspect; endGroup; ] (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) - (2*(3 - 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T)) ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 - 2 ] T Sin[2 cf Pi T] -2 T z + z (------------------ - ---------------------------------) B T B T E E -------------------------------------------------------------------- -2 2 4 z Cos[2 cf Pi T] ------ - 2 z + ------------------ 2 B T B T E E :[font = text; inactive; preserveAspect; ] The total filter is given by the equation: :[font = input; initialization; preserveAspect; startGroup; ] *) GammaFilt = (zfilt1 zfilt2 zfilt3 zfilt4) (* :[font = output; output; inactive; preserveAspect; endGroup; ] ((-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) - (2*(3 - 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))* (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) + (2*(3 - 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))* (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) - (2*(3 + 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T)))* (-2*T*z^2 + z*((2*T*Cos[2*cf*Pi*T])/E^(B*T) + (2*(3 + 2^(3/2))^(1/2)*T*Sin[2*cf*Pi*T])/E^(B*T))))/ (-2/E^(2*B*T) - 2*z^2 + (4*z*Cos[2*cf*Pi*T])/E^(B*T))^4 ;[o] 3/2 2 2 T Cos[2 cf Pi T] 2 Sqrt[3 - 2 ] T Sin[2 cf Pi T] ((-2 T z + z (------------------ - ---------------------------------)) B T B T E E 2 2 T Cos[2 cf Pi T] (-2 T z + z (------------------ + B T E 3/2 2 Sqrt[3 - 2 ] T Sin[2 cf Pi T] ---------------------------------)) B T E 2 2 T Cos[2 cf Pi T] (-2 T z + z (------------------ - B T E 3/2 2 Sqrt[3 + 2 ] T Sin[2 cf Pi T] ---------------------------------)) B T E 2 2 T Cos[2 cf Pi T] (-2 T z + z (------------------ + B T E 3/2 2 Sqrt[3 + 2 ] T Sin[2 cf Pi T] ---------------------------------))) / B T E -2 2 4 z Cos[2 cf Pi T] 4 (------ - 2 z + ------------------) 2 B T B T E E :[font = text; inactive; preserveAspect; ] To calculate any one channel of the Patterson filter bank we need to substitute appropriate values for the center frequency (cf), bandwidth (b), and sampling interval (T). The center frequency is determined by position along the Basilar Membrane and is a free parameter. In PattersonÕs model the bandwidth is fixed at (2p 1.019 ERB[cf]). The sampling interval is generally a function of the sound input system. ;[s] 9:0,0;125,2;127,0;141,2;142,0;168,2;169,0;322,1;324,0;413,-1; 3:5,13,9,Times,0,12,0,0,0;1,14,10,Symbol,0,12,0,0,0;3,14,10,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; ] Each of the four filter stages is implemented with the following filter structure. After performing the indicated substitutions the 5 filter coefficients can be calculated and used to perform the digital filter. The two equivalent equations below are implemented by the digital filter diagrammed. :[font = input; output; inactive; preserveAspect; ] (A0 + A1/z + A2/z^2)/(1+B1/z+B2/z^2) = (A0 z^2 + A1 z + A2)/(z^2+B1 z + B2) ;[o] A1 A2 A0 + -- + -- z 2 2 z A0 z + A1 z + A2 ------------ = ----------------- B1 B2 2 1 + -- + -- z + B1 z + B2 z 2 z :[font = input; PICT; formatAsPICT; output; inactive; dontPreserveAspect; pictureLeft = 27; pictureTop = 1; pictureWidth = 348; pictureHeight = 293; pictureID = 17241; ] :[font = text; inactive; preserveAspect; ] Finally, here is the resulting time-domain impulse response for a fourth-order Gammatone filter, calculated by simulating the filter in the time-domain. :[font = input; preserveAspect; startGroup; ] numGammaFilt = Simplify[N[GammaFilt/.B->2*Pi*125/. cf->1000/. T->1/16000]]; numGammaPoints = FindImpulseResponse[numGammaFilt,250]; ListPlot[numGammaPoints, PlotJoined->True]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 33; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00380952 0.309752 9.29356e+12 [ [(50)] .21429 .30975 0 2 Msboxa [(100)] .40476 .30975 0 2 Msboxa [(150)] .59524 .30975 0 2 Msboxa [(200)] .78571 .30975 0 2 Msboxa [(250)] .97619 .30975 0 2 Msboxa [( -14)(-3. 10)] .01131 .03095 1 0 Msboxa [( -14)(-2. 10)] .01131 .12388 1 0 Msboxa [( -14)(-1. 10)] .01131 .21682 1 0 Msboxa [( -14)(1. 10)] .01131 .40269 1 0 Msboxa [( -14)(2. 10)] .01131 .49562 1 0 Msboxa [( -14)(3. 10)] .01131 .58856 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21429 .30975 m .21429 .316 L s P [(50)] .21429 .30975 0 2 Mshowa p .002 w .40476 .30975 m .40476 .316 L s P [(100)] .40476 .30975 0 2 Mshowa p .002 w .59524 .30975 m .59524 .316 L s P [(150)] .59524 .30975 0 2 Mshowa p .002 w .78571 .30975 m .78571 .316 L s P [(200)] .78571 .30975 0 2 Mshowa p .002 w .97619 .30975 m .97619 .316 L s P [(250)] .97619 .30975 0 2 Mshowa p .001 w .0619 .30975 m .0619 .3135 L s P p .001 w .1 .30975 m .1 .3135 L s P p .001 w .1381 .30975 m .1381 .3135 L s P p .001 w .17619 .30975 m .17619 .3135 L s P p .001 w .25238 .30975 m .25238 .3135 L s P p .001 w .29048 .30975 m .29048 .3135 L s P p .001 w .32857 .30975 m .32857 .3135 L s P p .001 w .36667 .30975 m .36667 .3135 L s P p .001 w .44286 .30975 m .44286 .3135 L s P p .001 w .48095 .30975 m .48095 .3135 L s P p .001 w .51905 .30975 m .51905 .3135 L s P p .001 w .55714 .30975 m .55714 .3135 L s P p .001 w .63333 .30975 m .63333 .3135 L s P p .001 w .67143 .30975 m .67143 .3135 L s P p .001 w .70952 .30975 m .70952 .3135 L s P p .001 w .74762 .30975 m .74762 .3135 L s P p .001 w .82381 .30975 m .82381 .3135 L s P p .001 w .8619 .30975 m .8619 .3135 L s P p .001 w .9 .30975 m .9 .3135 L s P p .001 w .9381 .30975 m .9381 .3135 L s P p .002 w 0 .30975 m 1 .30975 L s P p .002 w .02381 .03095 m .03006 .03095 L s P [( -14)(-3. 10)] .01131 .03095 1 0 Mshowa p .002 w .02381 .12388 m .03006 .12388 L s P [( -14)(-2. 10)] .01131 .12388 1 0 Mshowa p .002 w .02381 .21682 m .03006 .21682 L s P [( -14)(-1. 10)] .01131 .21682 1 0 Mshowa p .002 w .02381 .40269 m .03006 .40269 L s P [( -14)(1. 10)] .01131 .40269 1 0 Mshowa p .002 w .02381 .49562 m .03006 .49562 L s P [( -14)(2. 10)] .01131 .49562 1 0 Mshowa p .002 w .02381 .58856 m .03006 .58856 L s P [( -14)(3. 10)] .01131 .58856 1 0 Mshowa p .001 w .02381 .04953 m .02756 .04953 L s P p .001 w .02381 .06812 m .02756 .06812 L s P p .001 w .02381 .08671 m .02756 .08671 L s P p .001 w .02381 .10529 m .02756 .10529 L s P p .001 w .02381 .14247 m .02756 .14247 L s P p .001 w .02381 .16106 m .02756 .16106 L s P p .001 w .02381 .17964 m .02756 .17964 L s P p .001 w .02381 .19823 m .02756 .19823 L s P p .001 w .02381 .2354 m .02756 .2354 L s P p .001 w .02381 .25399 m .02756 .25399 L s P p .001 w .02381 .27258 m .02756 .27258 L s P p .001 w .02381 .29117 m .02756 .29117 L s P p .001 w .02381 .32834 m .02756 .32834 L s P p .001 w .02381 .34693 m .02756 .34693 L s P p .001 w .02381 .36551 m .02756 .36551 L s P p .001 w .02381 .3841 m .02756 .3841 L s P p .001 w .02381 .42127 m .02756 .42127 L s P p .001 w .02381 .43986 m .02756 .43986 L s P p .001 w .02381 .45845 m .02756 .45845 L s P p .001 w .02381 .47704 m .02756 .47704 L s P p .001 w .02381 .51421 m .02756 .51421 L s P p .001 w .02381 .5328 m .02756 .5328 L s P p .001 w .02381 .55138 m .02756 .55138 L s P p .001 w .02381 .56997 m .02756 .56997 L s P p .001 w .02381 .01236 m .02756 .01236 L s P p .001 w .02381 .60715 m .02756 .60715 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .02762 .30989 m .03143 .31025 L .03524 .31066 L .03905 .31069 L .04286 .30975 L .04667 .30737 L .05048 .30348 L .05429 .2986 L .0581 .29395 L .0619 .29122 L .06571 .2922 L .06952 .29824 L .07333 .30975 L .07714 .32581 L .08095 .34405 L .08476 .36095 L .08857 .3724 L .09238 .37459 L .09619 .36487 L .1 .34264 L .10381 .30975 L .10762 .27057 L .11143 .23143 L .11524 .19961 L .11905 .18205 L .12286 .18395 L .12667 .2075 L .13048 .25121 L .13429 .30975 L .1381 .37458 L .1419 .43521 L .14571 .48093 L .14952 .50269 L .15333 .4949 L .15714 .45657 L .16095 .39189 L .16476 .30975 L .16857 .22255 L .17238 .14423 L .17619 .08801 L .18 .0641 L .18381 .07786 L .18762 .1287 L .19143 .20995 L .19524 .30975 L .19905 .41283 L .20286 .50292 L .20667 .56538 L .21048 .58965 L .21429 .57103 L Mistroke .2181 .51157 L .2219 .41986 L .22571 .30975 L .22952 .1982 L .23333 .10261 L .23714 .03802 L .24095 .01472 L .24476 .03657 L .24857 .10039 L .25238 .19639 L .25619 .30975 L .26 .42296 L .26381 .51855 L .26762 .58186 L .27143 .60332 L .27524 .5799 L .27905 .51556 L .28286 .42055 L .28667 .30975 L .29048 .20033 L .29429 .109 L .2981 .04947 L .3019 .03034 L .30571 .05388 L .30952 .11573 L .31333 .20578 L .31714 .30975 L .32095 .41154 L .32476 .49571 L .32857 .54986 L .33238 .56647 L .33619 .54393 L .34 .48664 L .34381 .40419 L .34762 .30975 L .35143 .21796 L .35524 .14262 L .35905 .09468 L .36286 .08056 L .36667 .10135 L .37048 .15283 L .37429 .22623 L .3781 .30975 L .3819 .39046 L .38571 .45626 L .38952 .49777 L .39333 .50956 L .39714 .49095 L .40095 .44583 L .40476 .38199 L Mistroke .40857 .30975 L .41238 .2403 L .41619 .18397 L .42 .14872 L .42381 .13902 L .42762 .15528 L .43143 .194 L .43524 .24844 L .43905 .30975 L .44286 .36845 L .44667 .41583 L .45048 .44528 L .45429 .45316 L .4581 .43925 L .4619 .4066 L .46571 .36096 L .46952 .30975 L .47333 .26092 L .47714 .22165 L .48095 .19739 L .48476 .19107 L .48857 .20277 L .49238 .22987 L .49619 .26759 L .5 .30975 L .50381 .34984 L .50762 .38195 L .51143 .40169 L .51524 .40671 L .51905 .39703 L .52286 .37482 L .52667 .34405 L .53048 .30975 L .53429 .27724 L .5381 .25128 L .5419 .23539 L .54571 .23143 L .54952 .23935 L .55333 .25734 L .55714 .28216 L .56095 .30975 L .56476 .33584 L .56857 .35662 L .57238 .36928 L .57619 .37238 L .58 .36598 L .58381 .35157 L .58762 .33174 L .59143 .30975 L .59524 .28901 L Mistroke .59905 .27253 L .60286 .26253 L .60667 .26013 L .61048 .26524 L .61429 .27669 L .6181 .29239 L .6219 .30975 L .62571 .3261 L .62952 .33907 L .63333 .34691 L .63714 .34876 L .64095 .3447 L .64476 .33569 L .64857 .32336 L .65238 .30975 L .65619 .29696 L .66 .28684 L .66381 .28074 L .66762 .27932 L .67143 .2825 L .67524 .28955 L .67905 .29916 L .68286 .30975 L .68667 .31969 L .69048 .32754 L .69429 .33226 L .6981 .33334 L .7019 .33086 L .70571 .32539 L .70952 .31794 L .71333 .30975 L .71714 .30208 L .72095 .29603 L .72476 .2924 L .72857 .29158 L .73238 .2935 L .73619 .29772 L .74 .30345 L .74381 .30975 L .74762 .31564 L .75143 .32028 L .75524 .32306 L .75905 .32368 L .76286 .32219 L .76667 .31896 L .77048 .31457 L .77429 .30975 L .7781 .30525 L .7819 .30172 L .78571 .2996 L Mistroke .78952 .29914 L .79333 .30028 L .79714 .30274 L .80095 .30609 L .80476 .30975 L .80857 .31317 L .81238 .31586 L .81619 .31746 L .82 .31781 L .82381 .31694 L .82762 .31506 L .83143 .31253 L .83524 .30975 L .83905 .30716 L .84286 .30514 L .84667 .30393 L .85048 .30367 L .85429 .30433 L .8581 .30574 L .8619 .30766 L .86571 .30975 L .86952 .3117 L .87333 .31323 L .87714 .31413 L .88095 .31433 L .88476 .31383 L .88857 .31276 L .89238 .31132 L .89619 .30975 L .9 .30829 L .90381 .30714 L .90762 .30647 L .91143 .30632 L .91524 .3067 L .91905 .3075 L .92286 .30858 L .92667 .30975 L .93048 .31085 L .93429 .3117 L .9381 .31221 L .9419 .31231 L .94571 .31203 L .94952 .31144 L .95333 .31063 L .95714 .30975 L .96095 .30894 L .96476 .3083 L .96857 .30792 L .97238 .30784 L .97619 .30805 L Mistroke Mfstroke % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] We can also compare this result to the theoretical result. :[font = input; preserveAspect; ] numGammaTheory = Table[N[t^(4-1)E^(-2 Pi 125 t)Cos[2 Pi 1000 t]/. t->i/16000],{i,0,249}]; :[font = text; inactive; preserveAspect; ] We normalize both the digitally simulated Gammatone impulse response, numGammaPoints,and the exact values, numGammaTheory, by dividing by their average RMS value. ;[s] 6:0,0;70,1;84,2;85,0;107,1;121,0;164,-1; 3:3,13,9,Times,0,12,0,0,0;2,13,10,Courier,2,12,0,0,0;1,13,10,Courier,0,12,0,0,0; :[font = input; preserveAspect; ] numGammaPoints = numGammaPoints/ Sqrt[Apply[Plus,Map[#^2&,numGammaPoints]]]; numGammaTheory = numGammaTheory/ Sqrt[Apply[Plus,Map[#^2&,numGammaTheory]]]; :[font = text; inactive; preserveAspect; ] We subtract the two lists of points to see the error. The following plot overlays the theoretical, the digital simulation, and the resulting error curves. :[font = input; preserveAspect; startGroup; ] Show[{ListPlot[numGammaTheory,DisplayFunction->Identity, PlotJoined->True], ListPlot[numGammaPoints,DisplayFunction->Identity, PlotJoined->True], ListPlot[numGammaPoints-numGammaTheory, PlotJoined->True, DisplayFunction->Identity]}, DisplayFunction->$DisplayFunction, PlotRange->All]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0199847 0.00382482 0.308903 1.66321 [ [(50)] .21123 .3089 0 2 Msboxa [(100)] .40247 .3089 0 2 Msboxa [(150)] .59371 .3089 0 2 Msboxa [(200)] .78495 .3089 0 2 Msboxa [(250)] .97619 .3089 0 2 Msboxa [(-0.15)] .00748 .05942 1 0 Msboxa [(-0.1)] .00748 .14258 1 0 Msboxa [(-0.05)] .00748 .22574 1 0 Msboxa [(0.05)] .00748 .39206 1 0 Msboxa [(0.1)] .00748 .47522 1 0 Msboxa [(0.15)] .00748 .55838 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21123 .3089 m .21123 .31515 L s P [(50)] .21123 .3089 0 2 Mshowa p .002 w .40247 .3089 m .40247 .31515 L s P [(100)] .40247 .3089 0 2 Mshowa p .002 w .59371 .3089 m .59371 .31515 L s P [(150)] .59371 .3089 0 2 Mshowa p .002 w .78495 .3089 m .78495 .31515 L s P [(200)] .78495 .3089 0 2 Mshowa p .002 w .97619 .3089 m .97619 .31515 L s P [(250)] .97619 .3089 0 2 Mshowa p .001 w .05823 .3089 m .05823 .31265 L s P p .001 w .09648 .3089 m .09648 .31265 L s P p .001 w .13473 .3089 m .13473 .31265 L s P p .001 w .17298 .3089 m .17298 .31265 L s P p .001 w .24947 .3089 m .24947 .31265 L s P p .001 w .28772 .3089 m .28772 .31265 L s P p .001 w .32597 .3089 m .32597 .31265 L s P p .001 w .36422 .3089 m .36422 .31265 L s P p .001 w .44072 .3089 m .44072 .31265 L s P p .001 w .47896 .3089 m .47896 .31265 L s P p .001 w .51721 .3089 m .51721 .31265 L s P p .001 w .55546 .3089 m .55546 .31265 L s P p .001 w .63196 .3089 m .63196 .31265 L s P p .001 w .6702 .3089 m .6702 .31265 L s P p .001 w .70845 .3089 m .70845 .31265 L s P p .001 w .7467 .3089 m .7467 .31265 L s P p .001 w .8232 .3089 m .8232 .31265 L s P p .001 w .86145 .3089 m .86145 .31265 L s P p .001 w .89969 .3089 m .89969 .31265 L s P p .001 w .93794 .3089 m .93794 .31265 L s P p .002 w 0 .3089 m 1 .3089 L s P p .002 w .01998 .05942 m .02623 .05942 L s P [(-0.15)] .00748 .05942 1 0 Mshowa p .002 w .01998 .14258 m .02623 .14258 L s P [(-0.1)] .00748 .14258 1 0 Mshowa p .002 w .01998 .22574 m .02623 .22574 L s P [(-0.05)] .00748 .22574 1 0 Mshowa p .002 w .01998 .39206 m .02623 .39206 L s P [(0.05)] .00748 .39206 1 0 Mshowa p .002 w .01998 .47522 m .02623 .47522 L s P [(0.1)] .00748 .47522 1 0 Mshowa p .002 w .01998 .55838 m .02623 .55838 L s P [(0.15)] .00748 .55838 1 0 Mshowa p .001 w .01998 .07605 m .02373 .07605 L s P p .001 w .01998 .09269 m .02373 .09269 L s P p .001 w .01998 .10932 m .02373 .10932 L s P p .001 w .01998 .12595 m .02373 .12595 L s P p .001 w .01998 .15921 m .02373 .15921 L s P p .001 w .01998 .17585 m .02373 .17585 L s P p .001 w .01998 .19248 m .02373 .19248 L s P p .001 w .01998 .20911 m .02373 .20911 L s P p .001 w .01998 .24237 m .02373 .24237 L s P p .001 w .01998 .25901 m .02373 .25901 L s P p .001 w .01998 .27564 m .02373 .27564 L s P p .001 w .01998 .29227 m .02373 .29227 L s P p .001 w .01998 .32554 m .02373 .32554 L s P p .001 w .01998 .34217 m .02373 .34217 L s P p .001 w .01998 .3588 m .02373 .3588 L s P p .001 w .01998 .37543 m .02373 .37543 L s P p .001 w .01998 .4087 m .02373 .4087 L s P p .001 w .01998 .42533 m .02373 .42533 L s P p .001 w .01998 .44196 m .02373 .44196 L s P p .001 w .01998 .45859 m .02373 .45859 L s P p .001 w .01998 .49186 m .02373 .49186 L s P p .001 w .01998 .50849 m .02373 .50849 L s P p .001 w .01998 .52512 m .02373 .52512 L s P p .001 w .01998 .54175 m .02373 .54175 L s P p .001 w .01998 .04279 m .02373 .04279 L s P p .001 w .01998 .02616 m .02373 .02616 L s P p .001 w .01998 .00953 m .02373 .00953 L s P p .001 w .01998 .57502 m .02373 .57502 L s P p .001 w .01998 .59165 m .02373 .59165 L s P p .001 w .01998 .60828 m .02373 .60828 L s P p .002 w .01998 0 m .01998 .61803 L s P P p .004 w .02381 .3089 m .02763 .30893 L .03146 .30904 L .03528 .30914 L .03911 .3089 L .04293 .30793 L .04676 .30595 L .05058 .30306 L .05441 .29992 L .05823 .29765 L .06206 .29765 L .06588 .30119 L .06971 .3089 L .07353 .32045 L .07736 .33427 L .08118 .34771 L .08501 .35744 L .08883 .36011 L .09266 .3532 L .09648 .33575 L .10031 .3089 L .10413 .27605 L .10796 .24245 L .11178 .21444 L .11561 .19829 L .11943 .19893 L .12325 .21876 L .12708 .25689 L .1309 .3089 L .13473 .36733 L .13855 .42269 L .14238 .46508 L .1462 .48594 L .15003 .47969 L .15385 .44501 L .15768 .38541 L .1615 .3089 L .16533 .22697 L .16915 .15276 L .17298 .09892 L .1768 .07543 L .18063 .08774 L .18445 .13566 L .18828 .21311 L .1921 .3089 L .19593 .40843 L .19975 .49593 L .20358 .55707 L .2074 .58132 L .21123 .56382 L Mistroke .21505 .50627 L .21888 .41683 L .2227 .3089 L .22653 .19911 L .23035 .1046 L .23417 .04038 L .238 .0168 L .24182 .03795 L .24565 .10089 L .24947 .19608 L .2533 .3089 L .25712 .42194 L .26095 .5177 L .26477 .58141 L .2686 .60332 L .27242 .58021 L .27625 .51587 L .28007 .42047 L .2839 .3089 L .28772 .19844 L .29155 .106 L .29537 .04552 L .2992 .02585 L .30302 .0494 L .30685 .11193 L .31067 .20324 L .3145 .3089 L .31832 .41256 L .32215 .49846 L .32597 .55389 L .3298 .57108 L .33362 .54828 L .33745 .48988 L .34127 .40561 L .34509 .3089 L .34892 .21475 L .35274 .13735 L .35657 .08796 L .36039 .07327 L .36422 .09449 L .36804 .14734 L .37187 .22285 L .37569 .3089 L .37952 .39217 L .38334 .46017 L .38717 .50314 L .39099 .51546 L .39482 .49634 L .39864 .44975 L .40247 .38372 L Mistroke .40629 .3089 L .41012 .23688 L .41394 .1784 L .41777 .14174 L .42159 .13157 L .42542 .14838 L .42924 .18855 L .43307 .24512 L .43689 .3089 L .44072 .37003 L .44454 .41942 L .44836 .45017 L .45219 .45846 L .45601 .44401 L .45984 .40999 L .46366 .36237 L .46749 .3089 L .47131 .25786 L .47514 .21678 L .47896 .19137 L .48279 .1847 L .48661 .1969 L .49044 .22524 L .49426 .26473 L .49809 .3089 L .50191 .35093 L .50574 .38464 L .50956 .40537 L .51339 .41069 L .51721 .40055 L .52104 .37725 L .52486 .34494 L .52869 .3089 L .53251 .27472 L .53634 .2474 L .54016 .23066 L .54399 .22647 L .54781 .23478 L .55164 .2537 L .55546 .27983 L .55928 .3089 L .56311 .33641 L .56693 .35833 L .57076 .37169 L .57458 .37498 L .57841 .36824 L .58223 .35305 L .58606 .33212 L .58988 .3089 L .59371 .28699 L Mistroke .59753 .26957 L .60136 .25898 L .60518 .25643 L .60901 .26183 L .61283 .27392 L .61666 .29053 L .62048 .3089 L .62431 .32622 L .62813 .33995 L .63196 .34826 L .63578 .35023 L .63961 .34594 L .64343 .3364 L .64726 .32333 L .65108 .3089 L .65491 .29533 L .65873 .28459 L .66255 .27811 L .66638 .2766 L .6702 .27998 L .67403 .28745 L .67785 .29765 L .68168 .3089 L .6855 .31946 L .68933 .32781 L .69315 .33283 L .69698 .33398 L .7008 .33134 L .70463 .32553 L .70845 .31762 L .71228 .3089 L .7161 .30074 L .71993 .2943 L .72375 .29043 L .72758 .28955 L .7314 .2916 L .73523 .29609 L .73905 .30219 L .74288 .3089 L .7467 .31518 L .75053 .32012 L .75435 .32308 L .75818 .32375 L .762 .32217 L .76583 .31872 L .76965 .31404 L .77347 .3089 L .7773 .3041 L .78112 .30033 L .78495 .29807 L Mistroke .78877 .29757 L .7926 .29879 L .79642 .30142 L .80025 .30499 L .80407 .3089 L .8079 .31256 L .81172 .31542 L .81555 .31713 L .81937 .31751 L .8232 .31658 L .82702 .31458 L .83085 .31187 L .83467 .3089 L .8385 .30614 L .84232 .30397 L .84615 .30268 L .84997 .3024 L .8538 .3031 L .85762 .30462 L .86145 .30666 L .86527 .3089 L .8691 .31099 L .87292 .31262 L .87675 .31359 L .88057 .3138 L .88439 .31327 L .88822 .31213 L .89204 .31059 L .89587 .3089 L .89969 .30734 L .90352 .30611 L .90734 .30538 L .91117 .30523 L .91499 .30563 L .91882 .30649 L .92264 .30764 L .92647 .3089 L .93029 .31008 L .93412 .31099 L .93794 .31154 L .94177 .31165 L .94559 .31135 L .94942 .31071 L .95324 .30985 L .95707 .3089 L .96089 .30803 L .96472 .30734 L .96854 .30694 L .97237 .30686 L .97619 .30708 L Mistroke Mfstroke .02381 .30904 m .02763 .3094 L .03146 .30981 L .03528 .30984 L .03911 .3089 L .04293 .30653 L .04676 .30265 L .05058 .29779 L .05441 .29315 L .05823 .29043 L .06206 .2914 L .06588 .29742 L .06971 .3089 L .07353 .32491 L .07736 .3431 L .08118 .35995 L .08501 .37137 L .08883 .37355 L .09266 .36386 L .09648 .34169 L .10031 .3089 L .10413 .26984 L .10796 .2308 L .11178 .19907 L .11561 .18157 L .11943 .18346 L .12325 .20694 L .12708 .25053 L .1309 .3089 L .13473 .37355 L .13855 .434 L .14238 .47959 L .1462 .50129 L .15003 .49351 L .15385 .4553 L .15768 .3908 L .1615 .3089 L .16533 .22195 L .16915 .14386 L .17298 .0878 L .1768 .06396 L .18063 .07768 L .18445 .12837 L .18828 .20939 L .1921 .3089 L .19593 .41168 L .19975 .50151 L .20358 .5638 L .2074 .588 L .21123 .56943 L Mistroke .21505 .51014 L .21888 .4187 L .2227 .3089 L .22653 .19768 L .23035 .10236 L .23417 .03795 L .238 .01472 L .24182 .03651 L .24565 .10014 L .24947 .19586 L .2533 .3089 L .25712 .42179 L .26095 .5171 L .26477 .58023 L .2686 .60163 L .27242 .57827 L .27625 .51412 L .28007 .41938 L .2839 .3089 L .28772 .19979 L .29155 .10873 L .29537 .04937 L .2992 .0303 L .30302 .05376 L .30685 .11544 L .31067 .20523 L .3145 .3089 L .31832 .4104 L .32215 .49432 L .32597 .54832 L .3298 .56488 L .33362 .54241 L .33745 .48529 L .34127 .40307 L .34509 .3089 L .34892 .21737 L .35274 .14226 L .35657 .09445 L .36039 .08037 L .36422 .1011 L .36804 .15243 L .37187 .22562 L .37569 .3089 L .37952 .38938 L .38334 .45499 L .38717 .49638 L .39099 .50814 L .39482 .48958 L .39864 .44459 L .40247 .38094 L Mistroke .40629 .3089 L .41012 .23965 L .41394 .18348 L .41777 .14834 L .42159 .13866 L .42542 .15488 L .42924 .19349 L .43307 .24776 L .43689 .3089 L .44072 .36743 L .44454 .41468 L .44836 .44404 L .45219 .4519 L .45601 .43802 L .45984 .40547 L .46366 .35996 L .46749 .3089 L .47131 .26021 L .47514 .22106 L .47896 .19687 L .48279 .19056 L .48661 .20222 L .49044 .22925 L .49426 .26686 L .49809 .3089 L .50191 .34887 L .50574 .38089 L .50956 .40057 L .51339 .40559 L .51721 .39593 L .52104 .37378 L .52486 .3431 L .52869 .3089 L .53251 .27649 L .53634 .2506 L .54016 .23476 L .54399 .23081 L .54781 .23871 L .55164 .25664 L .55546 .28139 L .55928 .3089 L .56311 .33492 L .56693 .35564 L .57076 .36826 L .57458 .37135 L .57841 .36497 L .58223 .3506 L .58606 .33083 L .58988 .3089 L .59371 .28822 L Mistroke .59753 .27179 L .60136 .26182 L .60518 .25942 L .60901 .26452 L .61283 .27593 L .61666 .29159 L .62048 .3089 L .62431 .32521 L .62813 .33813 L .63196 .34595 L .63578 .3478 L .63961 .34375 L .64343 .33477 L .64726 .32248 L .65108 .3089 L .65491 .29615 L .65873 .28606 L .66255 .27997 L .66638 .27855 L .6702 .28173 L .67403 .28876 L .67785 .29834 L .68168 .3089 L .6855 .31882 L .68933 .32664 L .69315 .33135 L .69698 .33243 L .7008 .32995 L .70463 .3245 L .70845 .31707 L .71228 .3089 L .7161 .30125 L .71993 .29522 L .72375 .2916 L .72758 .29078 L .7314 .2927 L .73523 .29691 L .73905 .30262 L .74288 .3089 L .7467 .31478 L .75053 .3194 L .75435 .32217 L .75818 .32279 L .762 .32131 L .76583 .31808 L .76965 .31371 L .77347 .3089 L .7773 .30442 L .78112 .30089 L .78495 .29878 L Mistroke .78877 .29832 L .7926 .29945 L .79642 .30192 L .80025 .30525 L .80407 .3089 L .8079 .31231 L .81172 .31499 L .81555 .31658 L .81937 .31693 L .8232 .31607 L .82702 .3142 L .83085 .31167 L .83467 .3089 L .8385 .30632 L .84232 .3043 L .84615 .3031 L .84997 .30284 L .8538 .30349 L .85762 .30491 L .86145 .30682 L .86527 .3089 L .8691 .31085 L .87292 .31237 L .87675 .31327 L .88057 .31347 L .88439 .31297 L .88822 .31191 L .89204 .31047 L .89587 .3089 L .89969 .30744 L .90352 .3063 L .90734 .30563 L .91117 .30548 L .91499 .30586 L .91882 .30665 L .92264 .30773 L .92647 .3089 L .93029 .30999 L .93412 .31085 L .93794 .31135 L .94177 .31146 L .94559 .31118 L .94942 .31058 L .95324 .30978 L .95707 .3089 L .96089 .30809 L .96472 .30746 L .96854 .30708 L .97237 .307 L .97619 .30721 L Mistroke Mfstroke .02381 .30904 m .02763 .30938 L .03146 .30968 L .03528 .30961 L .03911 .3089 L .04293 .30751 L .04676 .3056 L .05058 .30363 L .05441 .30213 L .05823 .30168 L .06206 .30265 L .06588 .30514 L .06971 .3089 L .07353 .31337 L .07736 .31774 L .08118 .32114 L .08501 .32284 L .08883 .32234 L .09266 .31957 L .09648 .31485 L .10031 .3089 L .10413 .30269 L .10796 .29726 L .11178 .29354 L .11561 .29218 L .11943 .29343 L .12325 .29709 L .12708 .30254 L .1309 .3089 L .13473 .31512 L .13855 .32022 L .14238 .3234 L .1462 .32425 L .15003 .32273 L .15385 .31919 L .15768 .3143 L .1615 .3089 L .16533 .30389 L .16915 .30001 L .17298 .29779 L .1768 .29744 L .18063 .29884 L .18445 .30162 L .18828 .30519 L .1921 .3089 L .19593 .31215 L .19975 .31448 L .20358 .31563 L .2074 .31558 L .21123 .31452 L Mistroke .21505 .31278 L .21888 .31077 L .2227 .3089 L .22653 .30747 L .23035 .30666 L .23417 .30648 L .238 .30682 L .24182 .30746 L .24565 .30816 L .24947 .30869 L .2533 .3089 L .25712 .30875 L .26095 .30831 L .26477 .30773 L .2686 .30721 L .27242 .30697 L .27625 .30715 L .28007 .30781 L .2839 .3089 L .28772 .31026 L .29155 .31163 L .29537 .31275 L .2992 .31335 L .30302 .31326 L .30685 .31242 L .31067 .3109 L .3145 .3089 L .31832 .30674 L .32215 .30477 L .32597 .30333 L .3298 .30271 L .33362 .30303 L .33745 .30431 L .34127 .30637 L .34509 .3089 L .34892 .31152 L .35274 .31381 L .35657 .31539 L .36039 .31599 L .36422 .31551 L .36804 .314 L .37187 .31168 L .37569 .3089 L .37952 .30611 L .38334 .30373 L .38717 .30214 L .39099 .30158 L .39482 .30214 L .39864 .30374 L .40247 .30612 L Mistroke .40629 .3089 L .41012 .31167 L .41394 .31398 L .41777 .3155 L .42159 .31599 L .42542 .3154 L .42924 .31384 L .43307 .31155 L .43689 .3089 L .44072 .30631 L .44454 .30416 L .44836 .30277 L .45219 .30235 L .45601 .30292 L .45984 .30438 L .46366 .30649 L .46749 .3089 L .47131 .31125 L .47514 .31318 L .47896 .3144 L .48279 .31476 L .48661 .31423 L .49044 .31291 L .49426 .31104 L .49809 .3089 L .50191 .30684 L .50574 .30516 L .50956 .3041 L .51339 .3038 L .51721 .30428 L .52104 .30543 L .52486 .30706 L .52869 .3089 L .53251 .31067 L .53634 .31211 L .54016 .313 L .54399 .31325 L .54781 .31283 L .55164 .31184 L .55546 .31046 L .55928 .3089 L .56311 .30741 L .56693 .30621 L .57076 .30547 L .57458 .30527 L .57841 .30563 L .58223 .30645 L .58606 .30761 L .58988 .3089 L .59371 .31014 L Mistroke .59753 .31113 L .60136 .31174 L .60518 .31189 L .60901 .3116 L .61283 .31091 L .61666 .30996 L .62048 .3089 L .62431 .3079 L .62813 .30709 L .63196 .3066 L .63578 .30647 L .63961 .30672 L .64343 .30727 L .64726 .30805 L .65108 .3089 L .65491 .30972 L .65873 .31036 L .66255 .31076 L .66638 .31086 L .6702 .31066 L .67403 .31021 L .67785 .30959 L .68168 .3089 L .6855 .30825 L .68933 .30774 L .69315 .30742 L .69698 .30735 L .7008 .30751 L .70463 .30787 L .70845 .30836 L .71228 .3089 L .7161 .30942 L .71993 .30982 L .72375 .31007 L .72758 .31013 L .7314 .31 L .73523 .30972 L .73905 .30933 L .74288 .3089 L .7467 .3085 L .75053 .30818 L .75435 .30799 L .75818 .30794 L .762 .30804 L .76583 .30827 L .76965 .30857 L .77347 .3089 L .7773 .30922 L .78112 .30946 L .78495 .30961 L Mistroke .78877 .30965 L .7926 .30957 L .79642 .3094 L .80025 .30916 L .80407 .3089 L .8079 .30866 L .81172 .30847 L .81555 .30835 L .81937 .30833 L .8232 .30839 L .82702 .30852 L .83085 .3087 L .83467 .3089 L .8385 .30909 L .84232 .30924 L .84615 .30932 L .84997 .30934 L .8538 .3093 L .85762 .3092 L .86145 .30906 L .86527 .3089 L .8691 .30876 L .87292 .30865 L .87675 .30858 L .88057 .30857 L .88439 .3086 L .88822 .30868 L .89204 .30879 L .89587 .3089 L .89969 .30901 L .90352 .3091 L .90734 .30915 L .91117 .30916 L .91499 .30913 L .91882 .30907 L .92264 .30899 L .92647 .3089 L .93029 .30882 L .93412 .30876 L .93794 .30872 L .94177 .30871 L .94559 .30873 L .94942 .30878 L .95324 .30884 L .95707 .3089 L .96089 .30897 L .96472 .30901 L .96854 .30904 L .97237 .30905 L .97619 .30903 L Mistroke Mfstroke P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] This error signal has an average (RMS) error of :[font = input; preserveAspect; startGroup; ] Sqrt[Apply[Plus,Map[#^2&,numGammaPoints-numGammaTheory]]] :[font = output; output; inactive; preserveAspect; endGroup; ] 0.04353936671060575012 ;[o] 0.0435394 :[font = text; inactive; preserveAspect; ] And the error is distributed across the frequency spectrum as shown in the following plot. We plot only the first half of the Fourier transform, from DC to the Nyquist frequency. :[font = input; preserveAspect; startGroup; ] ListPlot[Take[dB[Abs[Fourier[numGammaPoints-numGammaTheory]]],128], PlotJoined->True]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00744048 0.877658 0.00759193 [ [(20)] .17262 .2703 0 2 Msboxa [(40)] .32143 .2703 0 2 Msboxa [(60)] .47024 .2703 0 2 Msboxa [(80)] .61905 .2703 0 2 Msboxa [(100)] .76786 .2703 0 2 Msboxa [(120)] .91667 .2703 0 2 Msboxa [(-100)] .01131 .11847 1 0 Msboxa [(-60)] .01131 .42214 1 0 Msboxa [(-40)] .01131 .57398 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .17262 .2703 m .17262 .27655 L s P [(20)] .17262 .2703 0 2 Mshowa p .002 w .32143 .2703 m .32143 .27655 L s P [(40)] .32143 .2703 0 2 Mshowa p .002 w .47024 .2703 m .47024 .27655 L s P [(60)] .47024 .2703 0 2 Mshowa p .002 w .61905 .2703 m .61905 .27655 L s P [(80)] .61905 .2703 0 2 Mshowa p .002 w .76786 .2703 m .76786 .27655 L s P [(100)] .76786 .2703 0 2 Mshowa p .002 w .91667 .2703 m .91667 .27655 L s P [(120)] .91667 .2703 0 2 Mshowa p .001 w .05357 .2703 m .05357 .27405 L s P p .001 w .08333 .2703 m .08333 .27405 L s P p .001 w .1131 .2703 m .1131 .27405 L s P p .001 w .14286 .2703 m .14286 .27405 L s P p .001 w .20238 .2703 m .20238 .27405 L s P p .001 w .23214 .2703 m .23214 .27405 L s P p .001 w .2619 .2703 m .2619 .27405 L s P p .001 w .29167 .2703 m .29167 .27405 L s P p .001 w .35119 .2703 m .35119 .27405 L s P p .001 w .38095 .2703 m .38095 .27405 L s P p .001 w .41071 .2703 m .41071 .27405 L s P p .001 w .44048 .2703 m .44048 .27405 L s P p .001 w .5 .2703 m .5 .27405 L s P p .001 w .52976 .2703 m .52976 .27405 L s P p .001 w .55952 .2703 m .55952 .27405 L s P p .001 w .58929 .2703 m .58929 .27405 L s P p .001 w .64881 .2703 m .64881 .27405 L s P p .001 w .67857 .2703 m .67857 .27405 L s P p .001 w .70833 .2703 m .70833 .27405 L s P p .001 w .7381 .2703 m .7381 .27405 L s P p .001 w .79762 .2703 m .79762 .27405 L s P p .001 w .82738 .2703 m .82738 .27405 L s P p .001 w .85714 .2703 m .85714 .27405 L s P p .001 w .8869 .2703 m .8869 .27405 L s P p .001 w .94643 .2703 m .94643 .27405 L s P p .001 w .97619 .2703 m .97619 .27405 L s P p .002 w 0 .2703 m 1 .2703 L s P p .002 w .02381 .11847 m .03006 .11847 L s P [(-100)] .01131 .11847 1 0 Mshowa p .002 w .02381 .42214 m .03006 .42214 L s P [(-60)] .01131 .42214 1 0 Mshowa p .002 w .02381 .57398 m .03006 .57398 L s P [(-40)] .01131 .57398 1 0 Mshowa p .001 w .02381 .14883 m .02756 .14883 L s P p .001 w .02381 .1792 m .02756 .1792 L s P p .001 w .02381 .20957 m .02756 .20957 L s P p .001 w .02381 .23994 m .02756 .23994 L s P p .001 w .02381 .30067 m .02756 .30067 L s P p .001 w .02381 .33104 m .02756 .33104 L s P p .001 w .02381 .36141 m .02756 .36141 L s P p .001 w .02381 .39178 m .02756 .39178 L s P p .001 w .02381 .45251 m .02756 .45251 L s P p .001 w .02381 .48288 m .02756 .48288 L s P p .001 w .02381 .51325 m .02756 .51325 L s P p .001 w .02381 .54361 m .02756 .54361 L s P p .001 w .02381 .0881 m .02756 .0881 L s P p .001 w .02381 .05773 m .02756 .05773 L s P p .001 w .02381 .02736 m .02756 .02736 L s P p .001 w .02381 .60435 m .02756 .60435 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .03125 .28963 m .03869 .29236 L .04613 .3 L .05357 .31141 L .06101 .32553 L .06845 .34177 L .07589 .35993 L .08333 .38006 L .09077 .40243 L .09821 .42744 L .10565 .45563 L .1131 .48758 L .12054 .5237 L .12798 .56299 L .13542 .59806 L .14286 .59167 L .1503 .56566 L .15774 .60332 L .16518 .5729 L .17262 .53362 L .18006 .49666 L .1875 .46384 L .19494 .43495 L .20238 .4094 L .20982 .38664 L .21726 .36619 L .2247 .34768 L .23214 .33081 L .23958 .31534 L .24702 .30109 L .25446 .2879 L .2619 .27564 L .26935 .2642 L .27679 .2535 L .28423 .24345 L .29167 .234 L .29911 .22509 L .30655 .21666 L .31399 .20868 L .32143 .20112 L .32887 .19393 L .33631 .18709 L .34375 .18056 L .35119 .17434 L .35863 .1684 L .36607 .16271 L .37351 .15727 L .38095 .15205 L .38839 .14704 L .39583 .14223 L Mistroke .40327 .1376 L .41071 .13316 L .41815 .12887 L .4256 .12475 L .43304 .12077 L .44048 .11693 L .44792 .11322 L .45536 .10964 L .4628 .10618 L .47024 .10283 L .47768 .09959 L .48512 .09646 L .49256 .09342 L .5 .09048 L .50744 .08763 L .51488 .08486 L .52232 .08218 L .52976 .07958 L .5372 .07705 L .54464 .0746 L .55208 .07222 L .55952 .06991 L .56696 .06767 L .5744 .06549 L .58185 .06337 L .58929 .06131 L .59673 .05931 L .60417 .05737 L .61161 .05548 L .61905 .05365 L .62649 .05187 L .63393 .05014 L .64137 .04846 L .64881 .04683 L .65625 .04525 L .66369 .04371 L .67113 .04222 L .67857 .04078 L .68601 .03938 L .69345 .03802 L .70089 .03671 L .70833 .03544 L .71577 .03421 L .72321 .03302 L .73065 .03187 L .7381 .03076 L .74554 .02969 L .75298 .02866 L .76042 .02767 L .76786 .02671 L Mistroke .7753 .0258 L .78274 .02492 L .79018 .02408 L .79762 .02328 L .80506 .02251 L .8125 .02178 L .81994 .02109 L .82738 .02043 L .83482 .01981 L .84226 .01923 L .8497 .01868 L .85714 .01817 L .86458 .01769 L .87202 .01725 L .87946 .01684 L .8869 .01647 L .89435 .01614 L .90179 .01584 L .90923 .01558 L .91667 .01535 L .92411 .01515 L .93155 .015 L .93899 .01487 L .94643 .01479 L .95387 .01473 L .96131 .01472 L .96875 .01473 L .97619 .01479 L Mfstroke % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] Finally, the all-pole gammatone approximation shown in Section 3.5 has the impulse response shown in the plot below. :[font = input; preserveAspect; startGroup; ] numAllPoleFilt = Simplify[N[10^30*twopolefilt^4/.B->2*Pi*125/. cf->1000/. T->1/16000]]; numAllPolePoints = FindImpulseResponse[numAllPoleFilt,250]; ListPlot[numAllPolePoints, PlotJoined->True,PlotRange->All]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0199847 0.00382482 0.307739 0.128948 [ [(50)] .21123 .30774 0 2 Msboxa [(100)] .40247 .30774 0 2 Msboxa [(150)] .59371 .30774 0 2 Msboxa [(200)] .78495 .30774 0 2 Msboxa [(250)] .97619 .30774 0 2 Msboxa [(-2)] .00748 .04984 1 0 Msboxa [(-1)] .00748 .17879 1 0 Msboxa [(1)] .00748 .43669 1 0 Msboxa [(2)] .00748 .56564 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .21123 .30774 m .21123 .31399 L s P [(50)] .21123 .30774 0 2 Mshowa p .002 w .40247 .30774 m .40247 .31399 L s P [(100)] .40247 .30774 0 2 Mshowa p .002 w .59371 .30774 m .59371 .31399 L s P [(150)] .59371 .30774 0 2 Mshowa p .002 w .78495 .30774 m .78495 .31399 L s P [(200)] .78495 .30774 0 2 Mshowa p .002 w .97619 .30774 m .97619 .31399 L s P [(250)] .97619 .30774 0 2 Mshowa p .001 w .05823 .30774 m .05823 .31149 L s P p .001 w .09648 .30774 m .09648 .31149 L s P p .001 w .13473 .30774 m .13473 .31149 L s P p .001 w .17298 .30774 m .17298 .31149 L s P p .001 w .24947 .30774 m .24947 .31149 L s P p .001 w .28772 .30774 m .28772 .31149 L s P p .001 w .32597 .30774 m .32597 .31149 L s P p .001 w .36422 .30774 m .36422 .31149 L s P p .001 w .44072 .30774 m .44072 .31149 L s P p .001 w .47896 .30774 m .47896 .31149 L s P p .001 w .51721 .30774 m .51721 .31149 L s P p .001 w .55546 .30774 m .55546 .31149 L s P p .001 w .63196 .30774 m .63196 .31149 L s P p .001 w .6702 .30774 m .6702 .31149 L s P p .001 w .70845 .30774 m .70845 .31149 L s P p .001 w .7467 .30774 m .7467 .31149 L s P p .001 w .8232 .30774 m .8232 .31149 L s P p .001 w .86145 .30774 m .86145 .31149 L s P p .001 w .89969 .30774 m .89969 .31149 L s P p .001 w .93794 .30774 m .93794 .31149 L s P p .002 w 0 .30774 m 1 .30774 L s P p .002 w .01998 .04984 m .02623 .04984 L s P [(-2)] .00748 .04984 1 0 Mshowa p .002 w .01998 .17879 m .02623 .17879 L s P [(-1)] .00748 .17879 1 0 Mshowa p .002 w .01998 .43669 m .02623 .43669 L s P [(1)] .00748 .43669 1 0 Mshowa p .002 w .01998 .56564 m .02623 .56564 L s P [(2)] .00748 .56564 1 0 Mshowa p .001 w .01998 .07563 m .02373 .07563 L s P p .001 w .01998 .10142 m .02373 .10142 L s P p .001 w .01998 .12721 m .02373 .12721 L s P p .001 w .01998 .153 m .02373 .153 L s P p .001 w .01998 .20458 m .02373 .20458 L s P p .001 w .01998 .23037 m .02373 .23037 L s P p .001 w .01998 .25616 m .02373 .25616 L s P p .001 w .01998 .28195 m .02373 .28195 L s P p .001 w .01998 .33353 m .02373 .33353 L s P p .001 w .01998 .35932 m .02373 .35932 L s P p .001 w .01998 .38511 m .02373 .38511 L s P p .001 w .01998 .4109 m .02373 .4109 L s P p .001 w .01998 .46248 m .02373 .46248 L s P p .001 w .01998 .48827 m .02373 .48827 L s P p .001 w .01998 .51406 m .02373 .51406 L s P p .001 w .01998 .53985 m .02373 .53985 L s P p .001 w .01998 .02405 m .02373 .02405 L s P p .001 w .01998 .59143 m .02373 .59143 L s P p .001 w .01998 .61722 m .02373 .61722 L s P p .002 w .01998 0 m .01998 .61803 L s P P .004 w .02381 .30774 m .02763 .30774 L .03146 .30774 L .03528 .30774 L .03911 .30776 L .04293 .3079 L .04676 .30835 L .05058 .30945 L .05441 .31164 L .05823 .31529 L .06206 .3206 L .06588 .32735 L .06971 .33478 L .07353 .34154 L .07736 .34581 L .08118 .34564 L .08501 .33932 L .08883 .32589 L .09266 .30563 L .09648 .28025 L .10031 .25294 L .10413 .22803 L .10796 .21038 L .11178 .20448 L .11561 .21357 L .11943 .23875 L .12325 .27847 L .12708 .32838 L .1309 .38175 L .13473 .43037 L .13855 .4658 L .14238 .48084 L .1462 .4709 L .15003 .4351 L .15385 .37672 L .15768 .30304 L .1615 .22444 L .16533 .15291 L .16915 .10016 L .17298 .07566 L .1768 .08496 L .18063 .12854 L .18445 .20142 L .18828 .29374 L .1921 .39211 L .19593 .48157 L .19975 .54798 L .20358 .58031 L .2074 .57249 L .21123 .52451 L Mistroke .21505 .44268 L .21888 .33869 L .2227 .22798 L .22653 .12735 L .23035 .05231 L .23417 .01472 L .238 .02075 L .24182 .06997 L .24565 .15527 L .24947 .26392 L .2533 .37954 L .25712 .48461 L .26095 .56317 L .26477 .60332 L .2686 .59904 L .27242 .55111 L .27625 .46699 L .28007 .35962 L .2839 .2454 L .28772 .14163 L .29155 .06388 L .29537 .02358 L .2992 .02634 L .30302 .07115 L .30685 .15063 L .31067 .25226 L .3145 .36036 L .31832 .45853 L .32215 .53221 L .32597 .57081 L .3298 .56927 L .33362 .52871 L .33745 .45612 L .34127 .36317 L .34509 .26432 L .34892 .17455 L .35274 .1071 L .35657 .07146 L .36039 .0721 L .36422 .10786 L .36804 .17234 L .37187 .25501 L .37569 .34292 L .37952 .42274 L .38334 .48278 L .38717 .51471 L .39099 .5147 L .39482 .48386 L .39864 .42789 L .40247 .35605 L Mistroke .40629 .27966 L .41012 .21031 L .41394 .15811 L .41777 .13019 L .42159 .1298 L .42542 .1559 L .42924 .20355 L .43307 .26477 L .43689 .32986 L .44072 .38894 L .44454 .43345 L .44836 .45736 L .45219 .45798 L .45601 .43623 L .45984 .39634 L .46366 .34504 L .46749 .29051 L .47131 .24101 L .47514 .20369 L .47896 .18357 L .48279 .18284 L .48661 .20071 L .49044 .23364 L .49426 .276 L .49809 .32104 L .50191 .36191 L .50574 .39274 L .50956 .40942 L .51339 .41017 L .51721 .39566 L .52104 .36883 L .52486 .33429 L .52869 .29756 L .53251 .26423 L .53634 .23909 L .54016 .22544 L .54399 .22473 L .54781 .23637 L .55164 .258 L .55546 .28586 L .55928 .31547 L .56311 .34234 L .56693 .36263 L .57076 .37366 L .57458 .37431 L .57841 .36505 L .58223 .34779 L .58606 .32555 L .58988 .3019 L .59371 .28045 L Mistroke .59753 .26425 L .60136 .25542 L .60518 .25485 L .60901 .26215 L .61283 .2758 L .61666 .2934 L .62048 .31212 L .62431 .32909 L .62813 .34192 L .63196 .34892 L .63578 .34941 L .63961 .34369 L .64343 .33298 L .64726 .31916 L .65108 .30447 L .65491 .29114 L .65873 .28108 L .66255 .27556 L .66638 .27515 L .6702 .2796 L .67403 .28795 L .67785 .29872 L .68168 .31017 L .6855 .32055 L .68933 .3284 L .69315 .33271 L .69698 .33304 L .7008 .32961 L .70463 .32315 L .70845 .31481 L .71228 .30594 L .7161 .2979 L .71993 .29182 L .72375 .28848 L .72758 .28821 L .7314 .29085 L .73523 .29582 L .73905 .30224 L .74288 .30906 L .7467 .31525 L .75053 .31993 L .75435 .3225 L .75818 .32272 L .762 .32071 L .76583 .31691 L .76965 .31199 L .77347 .30677 L .7773 .30203 L .78112 .29845 L .78495 .29647 L Mistroke .78877 .2963 L .7926 .29783 L .79642 .30073 L .80025 .30447 L .80407 .30845 L .8079 .31206 L .81172 .31479 L .81555 .31629 L .81937 .31643 L .8232 .31527 L .82702 .31308 L .83085 .31024 L .83467 .30722 L .8385 .30448 L .84232 .30242 L .84615 .30127 L .84997 .30117 L .8538 .30204 L .85762 .3037 L .86145 .30584 L .86527 .30812 L .8691 .31018 L .87292 .31174 L .87675 .31261 L .88057 .31269 L .88439 .31203 L .88822 .31079 L .89204 .30918 L .89587 .30747 L .89969 .30591 L .90352 .30474 L .90734 .30409 L .91117 .30402 L .91499 .30451 L .91882 .30545 L .92264 .30665 L .92647 .30794 L .93029 .3091 L .93412 .30998 L .93794 .31047 L .94177 .31052 L .94559 .31015 L .94942 .30945 L .95324 .30855 L .95707 .3076 L .96089 .30673 L .96472 .30607 L .96854 .30571 L .97237 .30567 L .97619 .30594 L Mistroke Mfstroke 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; ] We use the following function to calculate the filter coefficients and put them into Standard C notation. We can then plug these equations directly into our filter design program. (Note, we need the zÐ2 coefficient to be equal to one. Thus we divide both the numerator and the denominator by B0.) ;[s] 3:0,0;201,1;203,0;299,-1; 2:2,13,9,Times,0,12,0,0,0;1,21,13,Times,32,12,0,0,0; :[font = input; initialization; preserveAspect; ] *) FilterForm[filt_] := Block[{term, B0}, B0 = Coefficient[Denominator[filt],z,2]; Print["B = 2*Pi*1.019*24.7*(4.37*cf/1000 + 1);"]; term = Coefficient[Numerator[filt],z,2]/B0; Print["A0 = ", CForm[term],";"]; term = Coefficient[Numerator[filt],z,1]/B0; Print["A1 = ", CForm[term],";"]; term = Coefficient[Numerator[filt],z,0]/B0; Print["A2 = ", CForm[term],";"]; term = Coefficient[Denominator[filt],z,2]/B0; Print["B0 = ", CForm[term],";"]; term = Coefficient[Denominator[filt],z,1]/B0; Print["B1 = ", CForm[term],";"]; term = Coefficient[Denominator[filt],z,0]/B0; Print["B2 = ", CForm[term],";"]; ] (* :[font = input; preserveAspect; startGroup; ] FilterForm[zfilt1] :[font = print; inactive; preserveAspect; endGroup; ] B = 2*Pi*1.019*24.7*(4.37*cf/1000 + 1); A0 = T; A1 = -(2*T*Cos(2*cf*Pi*T)/Power(E,B*T) + 2*Sqrt(3 + Power(2,3/2))*T*Sin(2*cf*Pi*T)/Power(E,B*T))/2; A2 = 0; B0 = 1; B1 = -2*Cos(2*cf*Pi*T)/Power(E,B*T); B2 = Power(E,-2*B*T); :[font = input; preserveAspect; startGroup; ] FilterForm[zfilt2] :[font = print; inactive; preserveAspect; endGroup; ] B = 2*Pi*1.019*24.7*(4.37*cf/1000 + 1); A0 = T; A1 = -(2*T*Cos(2*cf*Pi*T)/Power(E,B*T) - 2*Sqrt(3 + Power(2,3/2))*T*Sin(2*cf*Pi*T)/Power(E,B*T))/2; A2 = 0; B0 = 1; B1 = -2*Cos(2*cf*Pi*T)/Power(E,B*T); B2 = Power(E,-2*B*T); :[font = input; preserveAspect; startGroup; ] FilterForm[zfilt3] :[font = print; inactive; preserveAspect; endGroup; ] B = 2*Pi*1.019*24.7*(4.37*cf/1000 + 1); A0 = T; A1 = -(2*T*Cos(2*cf*Pi*T)/Power(E,B*T) + 2*Sqrt(3 - Power(2,3/2))*T*Sin(2*cf*Pi*T)/Power(E,B*T))/2; A2 = 0; B0 = 1; B1 = -2*Cos(2*cf*Pi*T)/Power(E,B*T); B2 = Power(E,-2*B*T); :[font = input; preserveAspect; startGroup; ] FilterForm[zfilt4] :[font = print; inactive; preserveAspect; endGroup; endGroup; ] B = 2*Pi*1.019*24.7*(4.37*cf/1000 + 1); A0 = T; A1 = -(2*T*Cos(2*cf*Pi*T)/Power(E,B*T) - 2*Sqrt(3 - Power(2,3/2))*T*Sin(2*cf*Pi*T)/Power(E,B*T))/2; A2 = 0; B0 = 1; B1 = -2*Cos(2*cf*Pi*T)/Power(E,B*T); B2 = Power(E,-2*B*T); :[font = subsection; inactive; preserveAspect; startGroup; ] 4.2 MATLAB Implementation ;[s] 3:0,0;6,1;11,0;27,-1; 2:2,16,12,Times,1,14,0,0,0;1,12,8,Times,1,11,0,0,0; :[font = text; inactive; preserveAspect; ] We can also generate code that will implement the Gammatone filters using the MATLAB program [MathWorks1989]. First we need to figure out what the gain is at the center frequency. By default we normalize each filterÕs gain so it is one at the center frequency. ;[s] 3:0,0;79,1;84,0;262,-1; 2:2,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0; :[font = input; preserveAspect; startGroup; ] gammaGain = Simplify[FilterGain[GammaFilt,cf,1/T]] :[font = output; output; inactive; preserveAspect; endGroup; ] ((-2*E^(4*I*cf*Pi*T)*T + 2*E^(-(B*T) + 2*I*cf*Pi*T)*T* (Cos[2*cf*Pi*T] - (3 - 2^(3/2))^(1/2)*Sin[2*cf*Pi*T]))* (-2*E^(4*I*cf*Pi*T)*T + 2*E^(-(B*T) + 2*I*cf*Pi*T)*T* (Cos[2*cf*Pi*T] + (3 - 2^(3/2))^(1/2)*Sin[2*cf*Pi*T]))* (-2*E^(4*I*cf*Pi*T)*T + 2*E^(-(B*T) + 2*I*cf*Pi*T)*T* (Cos[2*cf*Pi*T] - (3 + 2^(3/2))^(1/2)*Sin[2*cf*Pi*T]))* (-2*E^(4*I*cf*Pi*T)*T + 2*E^(-(B*T) + 2*I*cf*Pi*T)*T* (Cos[2*cf*Pi*T] + (3 + 2^(3/2))^(1/2)*Sin[2*cf*Pi*T])))/ (-2/E^(2*B*T) - 2*E^(4*I*cf*Pi*T) + (2*(1 + E^(4*I*cf*Pi*T)))/E^(B*T))^ 4 ;[o] 4 I cf Pi T -(B T) + 2 I cf Pi T ((-2 E T + 2 E T 3/2 (Cos[2 cf Pi T] - Sqrt[3 - 2 ] Sin[2 cf Pi T])) 4 I cf Pi T -(B T) + 2 I cf Pi T (-2 E T + 2 E T 3/2 (Cos[2 cf Pi T] + Sqrt[3 - 2 ] Sin[2 cf Pi T])) 4 I cf Pi T -(B T) + 2 I cf Pi T (-2 E T + 2 E T 3/2 (Cos[2 cf Pi T] - Sqrt[3 + 2 ] Sin[2 cf Pi T])) 4 I cf Pi T -(B T) + 2 I cf Pi T (-2 E T + 2 E T 3/2 (Cos[2 cf Pi T] + Sqrt[3 + 2 ] Sin[2 cf Pi T]))) / 4 I cf Pi T -2 4 I cf Pi T 2 (1 + E ) 4 (------ - 2 E + --------------------) 2 B T B T E E :[font = text; inactive; preserveAspect; ] Now for each center frequency we need to figure out the bandwidth at that point. Once we know the bandwidth we can design compute the filter coefficients. This is easy, except that the MATLAB filter function wants the coefficient of the highest power of z in the denominator to equal one. Thus we divide all coefficients by the value of this number before we simplify the coefficients. While we are at it, we also divide the numerator by the gain at the center frequency. This normalizes the gain of each filter so it is unity at its center frequency. (The filter will have non-zero phase at its center frequency.) ;[s] 3:0,0;187,1;192,0;619,-1; 2:2,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0; :[font = text; inactive; preserveAspect; ] We use the Mathematica function FortranForm because it produces output that is closest to MATLABÕs format. But, we will still need to edit the functions. MATLAB assumes that arrays are multiplied as if they were matrices. In this case, we want to operate on these arrays as if they were vectors of individual numbers. Thus element-by-element multiply is indicated by Ò.*Ó and element-by-element division is indicated by Ò./Ó. In addition, unlike Fortran which uses Ò**Ó to indicate exponetiation, MATLAB uses Ò^Ó. ;[s] 11:0,0;11,1;22,0;32,1;43,0;91,2;96,0;156,2;161,0;503,2;508,0;519,-1; 3:6,13,9,Times,0,12,0,0,0;2,14,10,Times,2,12,0,0,0;3,11,8,Times,0,9,0,0,0; :[font = input; initialization; preserveAspect; startGroup; ] *) expandedGamma=Expand[Numerator[GammaFilt]]/ Expand[Denominator[GammaFilt]] (* :[font = output; input; inactive; preserveAspect; endGroup; ] (16*T^4*z^8 - (64*T^4*z^7*Cos[2*cf*Pi*T])/E^(B*T) + (96*T^4*z^6*Cos[2*cf*Pi*T]^2)/E^(2*B*T) - (64*T^4*z^5*Cos[2*cf*Pi*T]^3)/E^(3*B*T) + (16*T^4*z^4*Cos[2*cf*Pi*T]^4)/E^(4*B*T) - (96*T^4*z^6*Sin[2*cf*Pi*T]^2)/E^(2*B*T) + (192*T^4*z^5*Cos[2*cf*Pi*T]*Sin[2*cf*Pi*T]^2)/E^(3*B*T) - (96*T^4*z^4*Cos[2*cf*Pi*T]^2*Sin[2*cf*Pi*T]^2)/E^(4*B*T) + (16*T^4*z^4*Sin[2*cf*Pi*T]^4)/E^(4*B*T))/ (16/E^(8*B*T) + (64*z^2)/E^(6*B*T) + (96*z^4)/E^(4*B*T) + (64*z^6)/E^(2*B*T) + 16*z^8 - (128*z*Cos[2*cf*Pi*T])/E^(7*B*T) - (384*z^3*Cos[2*cf*Pi*T])/E^(5*B*T) - (384*z^5*Cos[2*cf*Pi*T])/E^(3*B*T) - (128*z^7*Cos[2*cf*Pi*T])/E^(B*T) + (384*z^2*Cos[2*cf*Pi*T]^2)/E^(6*B*T) + (768*z^4*Cos[2*cf*Pi*T]^2)/E^(4*B*T) + (384*z^6*Cos[2*cf*Pi*T]^2)/E^(2*B*T) - (512*z^3*Cos[2*cf*Pi*T]^3)/E^(5*B*T) - (512*z^5*Cos[2*cf*Pi*T]^3)/E^(3*B*T) + (256*z^4*Cos[2*cf*Pi*T]^4)/E^(4*B*T)) ;[o] 4 7 4 6 2 4 8 64 T z Cos[2 cf Pi T] 96 T z Cos[2 cf Pi T] (16 T z - ----------------------- + ------------------------ - B T 2 B T E E 4 5 3 4 4 4 64 T z Cos[2 cf Pi T] 16 T z Cos[2 cf Pi T] ------------------------ + ------------------------ - 3 B T 4 B T E E 4 6 2 96 T z Sin[2 cf Pi T] ------------------------ + 2 B T E 4 5 2 192 T z Cos[2 cf Pi T] Sin[2 cf Pi T] ---------------------------------------- - 3 B T E 4 4 2 2 4 4 4 96 T z Cos[2 cf Pi T] Sin[2 cf Pi T] 16 T z Sin[2 cf Pi T] ---------------------------------------- + ------------------------)\ 4 B T 4 B T E E 2 4 6 16 64 z 96 z 64 z 8 / (------ + ------ + ------ + ------ + 16 z - 8 B T 6 B T 4 B T 2 B T E E E E 3 128 z Cos[2 cf Pi T] 384 z Cos[2 cf Pi T] -------------------- - --------------------- - 7 B T 5 B T E E 5 7 384 z Cos[2 cf Pi T] 128 z Cos[2 cf Pi T] --------------------- - --------------------- + 3 B T B T E E 2 2 4 2 384 z Cos[2 cf Pi T] 768 z Cos[2 cf Pi T] ---------------------- + ---------------------- + 6 B T 4 B T E E 6 2 3 3 384 z Cos[2 cf Pi T] 512 z Cos[2 cf Pi T] ---------------------- - ---------------------- - 2 B T 5 B T E E 5 3 4 4 512 z Cos[2 cf Pi T] 256 z Cos[2 cf Pi T] ---------------------- + ----------------------) 3 B T 4 B T E E :[font = input; initialization; preserveAspect; ] *) MatLabFilters[filt_] := Block[{term,B0,gain}, Print["cf = ", FortranForm[cf/.fixedChannelCF],";"]; Print["EarQ = ",EarQ/.GlasbergBandwidthParms,";"]; Print["minBW = ",minBW/.GlasbergBandwidthParms,";"]; Print["order = ",order/.GlasbergBandwidthParms,";"]; Print["ERB = ",FortranForm[ERB[cf,EarQ,minBW,order]],";"]; Print["B = 1.019*2*pi*B;"]; B0 = Coefficient[Denominator[filt],z,8]; Print["gain = abs(", FortranForm[gammaGain],");"]; term = Simplify[Coefficient[Numerator[filt],z,8]/B0]; Print["forward(:,1) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Numerator[filt],z,7]/B0]; Print["forward(:,2) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Numerator[filt],z,6]/B0]; Print["forward(:,3) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Numerator[filt],z,5]/B0]; Print["forward(:,4) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Numerator[filt],z,4]/B0]; Print["forward(:,5) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,8]/B0]; Print["feedback(:,1) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,7]/B0]; Print["feedback(:,2) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,6]/B0]; Print["feedback(:,3) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,5]/B0]; Print["feedback(:,4) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,4]/B0]; Print["feedback(:,5) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,3]/B0]; Print["feedback(:,6) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,2]/B0]; Print["feedback(:,7) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,1]/B0]; Print["feedback(:,8) = ", FortranForm[term],";"]; term = Simplify[Coefficient[Denominator[filt],z,0]/B0]; Print["feedback(:,9) = ", FortranForm[term],";"]; ] (* :[font = input; preserveAspect; startGroup; ] MatLabFilters[expandedGamma] :[font = print; inactive; preserveAspect; endGroup; ] cf = -(EarQ*minBW) + E** (i*(-Log(fn + EarQ*minBW) + Log(lowFreq + EarQ*minBW))/numChannels)* (fn + EarQ*minBW); EarQ = 9.26449; minBW = 24.7; order = 1; ERB = ((cf/EarQ)**order + minBW**order)**(1/order); B = 1.019*2*pi*B; gain = abs((-2*E**((0,4)*cf*Pi*T)*T + 2*E**(-(B*T) + (0,2)*cf*Pi*T)*T* (Cos(2*cf*Pi*T) - Sqrt(3 - 2**(3/2))*Sin(2*cf*Pi*T)))* (-2*E**((0,4)*cf*Pi*T)*T + 2*E**(-(B*T) + (0,2)*cf*Pi*T)*T* (Cos(2*cf*Pi*T) + Sqrt(3 - 2**(3/2))*Sin(2*cf*Pi*T)))* (-2*E**((0,4)*cf*Pi*T)*T + 2*E**(-(B*T) + (0,2)*cf*Pi*T)*T* (Cos(2*cf*Pi*T) - Sqrt(3 + 2**(3/2))*Sin(2*cf*Pi*T)))* (-2*E**((0,4)*cf*Pi*T)*T + 2*E**(-(B*T) + (0,2)*cf*Pi*T)*T* (Cos(2*cf*Pi*T) + Sqrt(3 + 2**(3/2))*Sin(2*cf*Pi*T)))/ (-2/E**(2*B*T) - 2*E**((0,4)*cf*Pi*T) + 2*(1 + E**((0,4)*cf*Pi*T))/E**(B*T))**4); forward(:,1) = T**4; forward(:,2) = -4*T**4*Cos(2*cf*Pi*T)/E**(B*T); forward(:,3) = 6*T**4*Cos(4*cf*Pi*T)/E**(2*B*T); forward(:,4) = -4*T**4*Cos(6*cf*Pi*T)/E**(3*B*T); forward(:,5) = T**4*Cos(8*cf*Pi*T)/E**(4*B*T); feedback(:,1) = 1; feedback(:,2) = -8*Cos(2*cf*Pi*T)/E**(B*T); feedback(:,3) = 4*(4 + 3*Cos(4*cf*Pi*T))/E**(2*B*T); feedback(:,4) = -8*(6*Cos(2*cf*Pi*T) + Cos(6*cf*Pi*T))/E**(3*B*T); feedback(:,5) = 2*(18 + 16*Cos(4*cf*Pi*T) + Cos(8*cf*Pi*T))/E**(4*B*T); feedback(:,6) = -8*(6*Cos(2*cf*Pi*T) + Cos(6*cf*Pi*T))/E**(5*B*T); feedback(:,7) = 4*(4 + 3*Cos(4*cf*Pi*T))/E**(6*B*T); feedback(:,8) = -8*Cos(2*cf*Pi*T)/E**(7*B*T); feedback(:,9) = E**(-8*B*T); :[font = text; inactive; preserveAspect; ] Here is the MATLAB code to design this filter bank. ;[s] 3:0,0;13,1;18,0;52,-1; 2:2,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0; :[font = text; inactive; preserveAspect; leftWrapOffset = 45; ] function [forward, feedback]=MakeERBFilters(fs,numChannels,lowFreq) % [forward, feedback]=MakeERBFilters(fs,numChannels) computes the % filter coefficients for a bank of Gammatone filters. These % filters were defined by Patterson and Holdworth for simulating % the cochlea. The results are returned as arrays of filter % coefficients. Each row of the filter arrays (forward and feedback) % can be passed to the MatLab "filter" function, or you can do all % the filtering at once with the ERBFilterBank() function. % % The filter bank contains "numChannels" channels that extend from % half the sampling rate (fs) to "lowFreq". T=1/fs; % Change the following parameters if you wish to use a different % ERB scale. EarQ = 9.26449; % Glasberg and Moore Parameters minBW = 24.7; order = 1; % All of the following expressions are derived in Apple TR #35, "An % Efficient Implementation of the Patterson-Holdsworth Cochlear % Filter Bank." cf = -(EarQ*minBW)+exp((1:numChannels)'*(-log(fs/2 + EarQ*minBW) + ... log(lowFreq + EarQ*minBW))/numChannels) ... *(fs/2 + EarQ*minBW); ERB = ((cf/EarQ).^order + minBW^order).^(1/order); B=1.019*2*pi*ERB; gain = abs((-2*exp(4*i*cf*pi*T)*T + ... 2*exp(-(B*T) + 2*i*cf*pi*T).*T.* ... (cos(2*cf*pi*T) - sqrt(3 - 2^(3/2))* ... sin(2*cf*pi*T))) .* ... (-2*exp(4*i*cf*pi*T)*T + ... 2*exp(-(B*T) + 2*i*cf*pi*T).*T.* ... (cos(2*cf*pi*T) + sqrt(3 - 2^(3/2)) * ... sin(2*cf*pi*T))).* ... (-2*exp(4*i*cf*pi*T)*T + ... 2*exp(-(B*T) + 2*i*cf*pi*T).*T.* ... (cos(2*cf*pi*T) - ... sqrt(3 + 2^(3/2))*sin(2*cf*pi*T))) .* ... (-2*exp(4*i*cf*pi*T)*T+2*exp(-(B*T) + 2*i*cf*pi*T).*T.* ... (cos(2*cf*pi*T) + sqrt(3 + 2^(3/2))*sin(2*cf*pi*T))) ./ ... (-2 ./ exp(2*B*T) - 2*exp(4*i*cf*pi*T) + ... 2*(1 + exp(4*i*cf*pi*T))./exp(B*T)).^4); feedback=zeros(length(cf),9); forward=zeros(length(cf),5); forward(:,1) = T^4 ./ gain; forward(:,2) = -4*T^4*cos(2*cf*pi*T)./exp(B*T)./gain; forward(:,3) = 6*T^4*cos(4*cf*pi*T)./exp(2*B*T)./gain; forward(:,4) = -4*T^4*cos(6*cf*pi*T)./exp(3*B*T)./gain; forward(:,5) = T^4*cos(8*cf*pi*T)./exp(4*B*T)./gain; feedback(:,1) = ones(length(cf),1); feedback(:,2) = -8*cos(2*cf*pi*T)./exp(B*T); feedback(:,3) = 4*(4 + 3*cos(4*cf*pi*T))./exp(2*B*T); feedback(:,4) = -8*(6*cos(2*cf*pi*T) + cos(6*cf*pi*T))./exp(3*B*T); feedback(:,5) = 2*(18 + 16*cos(4*cf*pi*T) + cos(8*cf*pi*T))./exp(4*B*T); feedback(:,6) = -8*(6*cos(2*cf*pi*T) + cos(6*cf*pi*T))./exp(5*B*T); feedback(:,7) = 4*(4 + 3*cos(4*cf*pi*T))./exp(6*B*T); feedback(:,8) = -8*cos(2*cf*pi*T)./exp(7*B*T); feedback(:,9) = exp(-8*B*T); ;[s] 1:0,1;2793,-1; 2:0,13,9,Times,0,12,0,0,0;1,12,9,Courier,0,10,0,0,0; :[font = text; inactive; preserveAspect; ] The following MATLAB function applies the bank of filters to a signal, producing an array of output signals. ;[s] 3:0,0;15,1;20,0;109,-1; 2:2,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0; :[font = input; inactive; preserveAspect; ] function y=ERBFilterBank(forward,feedback,x) % y=ERBFilterBank(forward,feedback,x) % This function filters the waveform x with the array of filters % specified by the forward and feedback parameters. Each row % of the forward and feedback parameters are the parameters % to the Matlab builtin function "filter". [rows, cols]=size(feedback); y=zeros(rows,length(x)); for i=1:rows y(i,:)=filter(forward(i,:),feedback(i,:),x); end ;[s] 1:0,1;432,-1; 2:0,12,10,Courier,1,12,0,0,0;1,11,9,Courier,0,10,0,0,0; :[font = text; inactive; preserveAspect; ] Finally this code is tested by entering the following MATLAB (Version 3.5) commands. ;[s] 3:0,0;55,1;60,0;85,-1; 2:2,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0; :[font = text; inactive; preserveAspect; leftWrapOffset = 45; ] impulse=[1 zeros(1,1023)]; [ERBforward,ERBfeedback]=MakeERBFilters(16000,64,20); y=ERBFilterBank(ERBforward,ERBfeedback,impulse); response=20*log10(abs(fft(y(1:5:64,:)'))); freqScale=(0:1023)/1024*16000; axis([2 4 -70 10]) semilogx(freqScale(1:512),response(1:512,:)) ;[s] 2:0,2;268,1;270,-1; 3:0,13,9,Times,0,12,0,0,0;1,13,10,Courier,0,12,0,0,0;1,12,9,Courier,0,10,0,0,0; :[font = text; inactive; preserveAspect; ] (Note, in Version 4 of MATLAB, the axis are specified in the axis command as [20Ê10000Ê-70Ê10].) This results in the following plot for the frequency response of every fifth channel. ;[s] 5:0,0;24,1;29,0;61,2;65,0;183,-1; 3:3,13,9,Times,0,12,0,0,0;1,11,8,Times,0,9,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = postscript; PICT; formatAsPICT; output; inactive; preserveAspect; pictureLeft = 0; pictureWidth = 426; pictureHeight = 263; pictureID = 32437; ] :[font = text; inactive; preserveAspect; endGroup; endGroup; ] A similar procedure can be used to design the all-pole implementation but this is not shown in this report. :[font = section; inactive; preserveAspect; startGroup; ] 5.0 Acknowledgements :[font = text; inactive; preserveAspect; endGroup; ] This approach (Laplace transform of the Gammatone function) was suggested to the author by Richard F. Lyon. Much of the credit for this report should go to Roy Patterson and John Holdsworth, who developed the original model. We also appreciate the help we have received from Roy Patterson and Peter Assmann in writing this report. :[font = section; inactive; pageBreak; preserveAspect; startGroup; ] 6.0 References :[font = text; inactive; preserveAspect; ] [Cooke1991] Martin Cooke, ÒModelling Auditory Processing and Organisation,Ó PhD Dissertation, University of Sheffield, Computer Science Department, May 1991. :[font = text; inactive; preserveAspect; ] [CRC1966] Chemical Rubber Company, Handbook of Chemistry and Physics, Robert C. Weast and Samuel M. Selby, eds., The Chemical Rubber Company, 1966. ;[s] 3:0,0;35,1;68,0;148,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; ] [Glasberg1990] B. R. Glasberg and B. C. J. Moore, ÒDerivation of auditory filter shapes from notched-noise data.Ó Hearing Research, vol. 47, 1990, pp. 103-108. ;[s] 3:0,0;114,1;130,0;160,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; ] [Greenwood1990] Donald D. Greenwood, ÒA cochlear frequency-position function for several speciesÑ29 years later,Ó Journal of the Acoustical Society of America, Vol. 87 (6), June 1990, pp. 2592-2605. ;[s] 3:0,0;115,1;159,0;200,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; ] [MathWorks1989] The MathWorks, Inc., MATLABª for Macintoshª Computers, South Natick, MA, 1989. ;[s] 5:0,0;37,1;38,2;43,1;69,0;96,-1; 3:2,13,9,Times,0,12,0,0,0;2,14,10,Times,2,12,0,0,0;1,12,8,Times,2,9,0,0,0; :[font = text; inactive; preserveAspect; ] [Patterson1992] R. D. Patterson, K. Robinson, J. Holdsworth, D. McKeown, C.Zhang, and M. H. Allerhand, ÒComplex sounds and auditory images,Ó In Auditory Physiology and Perception, (Eds.) Y Cazals, L. Demany, K.Horner, Pergamon, Oxford, 1992, pp. 429-446. ;[s] 3:0,0;147,1;181,0;258,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; ] [Slaney1988] Malcolm Slaney, ÒLyonÕs Cochlear Model,Ó Apple Technical Report #13, Apple Computer Corporate Library, Cupertino, CA 95014, 1988. :[font = text; inactive; preserveAspect; ] [Slaney1993] Malcolm Slaney, ÒMathematica Filter Design,Ó Apple Technical Report #34, Apple Computer Library, Cupertino, CA 95014, 1993. ;[s] 3:0,0;30,1;41,0;137,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; leftNameWrapOffset = 9; endGroup; ] [Wolfram1988] Stephen Wolfram, Mathematica: A System for Doing Mathematics by Computer, Addison Wesley, Redwood City, CA 1988. ;[s] 3:0,0;31,1;86,0;127,-1; 2:2,13,9,Times,0,12,0,0,0;1,14,10,Times,2,12,0,0,0; :[font = section; inactive; closed; pageBreak; preserveAspect; startGroup; ] 4.0 Obsolete... :[font = text; inactive; closed; preserveAspect; ] PattersonÕs ear model uses a simple adaptation scheme based on logarithmic compression, and an adaptive thresholding technique. The adaptive thresholding seeks to deemphasize all events that are below a constantly changing threshold. :[font = text; inactive; closed; preserveAspect; ] The compression scheme is based on a logarithmic compressor. In my implementation, the output of each cochlear channel filter is Half-Wave Rectified (HWR) to set all the negative values to zero. The resulting stream of numbers is then passed through the following function :[font = input; inactive; closed; preserveAspect; startGroup; ] 256+20Log[fi(t) + 10-6] ;[s] 5:0,0;11,1;12,0;20,2;22,0;24,-1; 3:3,12,10,Courier,1,12,0,0,0;1,20,14,Courier,65,12,0,0,0;1,20,14,Courier,33,12,0,0,0; :[font = output; output; inactive; closed; preserveAspect; endGroup; ] 256 + 20*Log[4 + fi*t] ;[o] 256 + 20 Log[4 + fi t] :[font = text; inactive; closed; preserveAspect; ] where fi(t) represents the data from the i'th channel. With each cochlear filter normalized so its maximum gain is equal to one, and with the input sound normalized so the maximum amplitude is equal to one, this function gives results that are nicely balanced for display on a digital display with brightness from 0-255. ;[s] 3:0,0;7,1;8,0;321,-1; 2:2,13,9,Times,0,12,0,0,0;1,21,13,Times,64,12,0,0,0; :[font = input; inactive; closed; preserveAspect; ] gt = N[Table[t^(4-1)E^(-2 Pi 125 t)Cos[2 Pi 1000 t], {t,0,.03,1/16000}]]; :[font = input; inactive; closed; preserveAspect; ] gt = gt/Max[gt]; :[font = input; inactive; closed; preserveAspect; startGroup; ] ListPlot[gt,PlotJoined->True, PlotRange->{-1,1}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; closed; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00198 0.309017 0.309017 [ [(100)] .22181 .30902 0 2 Msboxa [(200)] .41981 .30902 0 2 Msboxa [(300)] .61781 .30902 0 2 Msboxa [(400)] .81581 .30902 0 2 Msboxa [(-1)] .01131 0 1 0 Msboxa [(-0.75)] .01131 .07725 1 0 Msboxa [(-0.5)] .01131 .15451 1 0 Msboxa [(-0.25)] .01131 .23176 1 0 Msboxa [(0.25)] .01131 .38627 1 0 Msboxa [(0.5)] .01131 .46353 1 0 Msboxa [(0.75)] .01131 .54078 1 0 Msboxa [(1)] .01131 .61803 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .22181 .30902 m .22181 .31527 L s P [(100)] .22181 .30902 0 2 Mshowa p .002 w .41981 .30902 m .41981 .31527 L s P [(200)] .41981 .30902 0 2 Mshowa p .002 w .61781 .30902 m .61781 .31527 L s P [(300)] .61781 .30902 0 2 Mshowa p .002 w .81581 .30902 m .81581 .31527 L s P [(400)] .81581 .30902 0 2 Mshowa p .001 w .06341 .30902 m .06341 .31277 L s P p .001 w .10301 .30902 m .10301 .31277 L s P p .001 w .14261 .30902 m .14261 .31277 L s P p .001 w .18221 .30902 m .18221 .31277 L s P p .001 w .26141 .30902 m .26141 .31277 L s P p .001 w .30101 .30902 m .30101 .31277 L s P p .001 w .34061 .30902 m .34061 .31277 L s P p .001 w .38021 .30902 m .38021 .31277 L s P p .001 w .45941 .30902 m .45941 .31277 L s P p .001 w .49901 .30902 m .49901 .31277 L s P p .001 w .53861 .30902 m .53861 .31277 L s P p .001 w .57821 .30902 m .57821 .31277 L s P p .001 w .65741 .30902 m .65741 .31277 L s P p .001 w .69701 .30902 m .69701 .31277 L s P p .001 w .73661 .30902 m .73661 .31277 L s P p .001 w .77621 .30902 m .77621 .31277 L s P p .001 w .85541 .30902 m .85541 .31277 L s P p .001 w .89501 .30902 m .89501 .31277 L s P p .001 w .93461 .30902 m .93461 .31277 L s P p .001 w .97421 .30902 m .97421 .31277 L s P p .002 w 0 .30902 m 1 .30902 L s P p .002 w .02381 0 m .03006 0 L s P [(-1)] .01131 0 1 0 Mshowa p .002 w .02381 .07725 m .03006 .07725 L s P [(-0.75)] .01131 .07725 1 0 Mshowa p .002 w .02381 .15451 m .03006 .15451 L s P [(-0.5)] .01131 .15451 1 0 Mshowa p .002 w .02381 .23176 m .03006 .23176 L s P [(-0.25)] .01131 .23176 1 0 Mshowa p .002 w .02381 .38627 m .03006 .38627 L s P [(0.25)] .01131 .38627 1 0 Mshowa p .002 w .02381 .46353 m .03006 .46353 L s P [(0.5)] .01131 .46353 1 0 Mshowa p .002 w .02381 .54078 m .03006 .54078 L s P [(0.75)] .01131 .54078 1 0 Mshowa p .002 w .02381 .61803 m .03006 .61803 L s P [(1)] .01131 .61803 1 0 Mshowa p .001 w .02381 .01545 m .02756 .01545 L s P p .001 w .02381 .0309 m .02756 .0309 L s P p .001 w .02381 .04635 m .02756 .04635 L s P p .001 w .02381 .0618 m .02756 .0618 L s P p .001 w .02381 .09271 m .02756 .09271 L s P p .001 w .02381 .10816 m .02756 .10816 L s P p .001 w .02381 .12361 m .02756 .12361 L s P p .001 w .02381 .13906 m .02756 .13906 L s P p .001 w .02381 .16996 m .02756 .16996 L s P p .001 w .02381 .18541 m .02756 .18541 L s P p .001 w .02381 .20086 m .02756 .20086 L s P p .001 w .02381 .21631 m .02756 .21631 L s P p .001 w .02381 .24721 m .02756 .24721 L s P p .001 w .02381 .26266 m .02756 .26266 L s P p .001 w .02381 .27812 m .02756 .27812 L s P p .001 w .02381 .29357 m .02756 .29357 L s P p .001 w .02381 .32447 m .02756 .32447 L s P p .001 w .02381 .33992 m .02756 .33992 L s P p .001 w .02381 .35537 m .02756 .35537 L s P p .001 w .02381 .37082 m .02756 .37082 L s P p .001 w .02381 .40172 m .02756 .40172 L s P p .001 w .02381 .41717 m .02756 .41717 L s P p .001 w .02381 .43262 m .02756 .43262 L s P p .001 w .02381 .44807 m .02756 .44807 L s P p .001 w .02381 .47898 m .02756 .47898 L s P p .001 w .02381 .49443 m .02756 .49443 L s P p .001 w .02381 .50988 m .02756 .50988 L s P p .001 w .02381 .52533 m .02756 .52533 L s P p .001 w .02381 .55623 m .02756 .55623 L s P p .001 w .02381 .57168 m .02756 .57168 L s P p .001 w .02381 .58713 m .02756 .58713 L s P p .001 w .02381 .60258 m .02756 .60258 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .02579 .30902 m .02777 .30904 L .02975 .30916 L .03173 .30926 L .03371 .30902 L .03569 .308 L .03767 .30591 L .03965 .30289 L .04163 .29959 L .04361 .29721 L .04559 .29721 L .04757 .30092 L .04955 .30902 L .05153 .32113 L .05351 .33564 L .05549 .34975 L .05747 .35996 L .05945 .36277 L .06143 .35551 L .06341 .33719 L .06539 .30902 L .06737 .27453 L .06935 .23926 L .07133 .20987 L .07331 .19292 L .07529 .19359 L .07727 .21441 L .07925 .25442 L .08123 .30902 L .08321 .37034 L .08519 .42845 L .08717 .47294 L .08915 .49483 L .09113 .48827 L .09311 .45188 L .09509 .38932 L .09707 .30902 L .09905 .22302 L .10103 .14513 L .10301 .08862 L .10499 .06396 L .10697 .07689 L .10895 .12718 L .11093 .20847 L .11291 .30902 L .11489 .41348 L .11687 .50532 L .11885 .56949 L .12083 .59495 L .12281 .57658 L Mistroke .12479 .51617 L .12677 .42229 L .12875 .30902 L .13073 .19377 L .13271 .09458 L .13469 .02717 L .13667 .00243 L .13865 .02463 L .14063 .09068 L .14261 .1906 L .14459 .30902 L .14657 .42766 L .14855 .52817 L .15053 .59504 L .15251 .61803 L .15449 .59378 L .15647 .52625 L .15845 .42612 L .16043 .30902 L .16241 .19308 L .16439 .09605 L .16637 .03257 L .16835 .01192 L .17033 .03665 L .17231 .10227 L .17429 .19811 L .17627 .30902 L .17825 .41781 L .18023 .50797 L .18221 .56615 L .18419 .5842 L .18617 .56026 L .18815 .49897 L .19013 .41052 L .19211 .30902 L .19409 .2102 L .19607 .12896 L .19805 .07712 L .20003 .0617 L .20201 .08397 L .20399 .13944 L .20597 .21869 L .20795 .30902 L .20993 .39641 L .21191 .46778 L .21389 .51289 L .21587 .52582 L .21785 .50575 L .21983 .45685 L .22181 .38755 L Mistroke .22379 .30902 L .22577 .23343 L .22775 .17205 L .22973 .13357 L .23171 .12289 L .23369 .14053 L .23567 .1827 L .23765 .24207 L .23963 .30902 L .24161 .37317 L .24359 .42502 L .24557 .45729 L .24755 .46599 L .24953 .45082 L .25151 .41512 L .25349 .36514 L .25547 .30902 L .25745 .25544 L .25943 .21233 L .26141 .18565 L .26339 .17865 L .26537 .19146 L .26735 .22121 L .26933 .26265 L .27131 .30902 L .27329 .35313 L .27527 .3885 L .27725 .41027 L .27923 .41585 L .28121 .40521 L .28319 .38075 L .28517 .34684 L .28715 .30902 L .28913 .27314 L .29111 .24446 L .29309 .2269 L .29507 .22249 L .29705 .23122 L .29903 .25107 L .30101 .27851 L .30299 .30902 L .30497 .33789 L .30695 .36089 L .30893 .37492 L .31091 .37837 L .31289 .3713 L .31487 .35535 L .31685 .33338 L .31883 .30902 L .32081 .28601 L Mistroke .32279 .26773 L .32477 .25662 L .32675 .25394 L .32873 .25961 L .33071 .2723 L .33269 .28973 L .33467 .30902 L .33665 .32719 L .33863 .3416 L .34061 .35032 L .34259 .35239 L .34457 .34789 L .34655 .33788 L .34853 .32416 L .35051 .30902 L .35249 .29477 L .35447 .2835 L .35645 .2767 L .35843 .27511 L .36041 .27866 L .36239 .2865 L .36437 .29721 L .36635 .30902 L .36833 .3201 L .37031 .32886 L .37229 .33413 L .37427 .33534 L .37625 .33257 L .37823 .32647 L .38021 .31816 L .38219 .30902 L .38417 .30045 L .38615 .29369 L .38813 .28963 L .39011 .28871 L .39209 .29086 L .39407 .29557 L .39605 .30198 L .39803 .30902 L .40001 .31561 L .40199 .3208 L .40397 .3239 L .40595 .3246 L .40793 .32294 L .40991 .31932 L .41189 .31441 L .41387 .30902 L .41585 .30398 L .41783 .30002 L .41981 .29765 L Mistroke .42179 .29713 L .42377 .2984 L .42575 .30116 L .42773 .30491 L .42971 .30902 L .43169 .31285 L .43367 .31586 L .43565 .31766 L .43763 .31805 L .43961 .31708 L .44159 .31498 L .44357 .31213 L .44555 .30902 L .44753 .30611 L .44951 .30384 L .45149 .30248 L .45347 .30219 L .45545 .30293 L .45743 .30452 L .45941 .30667 L .46139 .30902 L .46337 .31121 L .46535 .31292 L .46733 .31394 L .46931 .31416 L .47129 .3136 L .47327 .3124 L .47525 .31078 L .47723 .30902 L .47921 .30737 L .48119 .30608 L .48317 .30532 L .48515 .30516 L .48713 .30558 L .48911 .30648 L .49109 .30769 L .49307 .30902 L .49505 .31025 L .49703 .31121 L .49901 .31178 L .50099 .3119 L .50297 .31159 L .50495 .31091 L .50693 .31001 L .50891 .30902 L .51089 .3081 L .51287 .30738 L .51485 .30696 L .51683 .30687 L .51881 .3071 L Mistroke .52079 .30761 L .52277 .30828 L .52475 .30902 L .52673 .3097 L .52871 .31023 L .53069 .31055 L .53267 .31061 L .53465 .31044 L .53663 .31006 L .53861 .30956 L .54059 .30902 L .54257 .30851 L .54455 .30812 L .54653 .30788 L .54851 .30784 L .55049 .30797 L .55247 .30824 L .55445 .30861 L .55643 .30902 L .55841 .30939 L .56039 .30968 L .56237 .30985 L .56435 .30989 L .56633 .30979 L .56831 .30959 L .57029 .30931 L .57227 .30902 L .57425 .30874 L .57623 .30853 L .57821 .3084 L .58019 .30837 L .58217 .30845 L .58415 .3086 L .58613 .3088 L .58811 .30902 L .59009 .30922 L .59207 .30938 L .59405 .30947 L .59603 .30949 L .59801 .30944 L .59999 .30933 L .60197 .30918 L .60395 .30902 L .60593 .30887 L .60791 .30875 L .60989 .30868 L .61187 .30867 L .61385 .30871 L .61583 .30879 L .61781 .3089 L Mistroke .61979 .30902 L .62177 .30913 L .62375 .30921 L .62573 .30926 L .62771 .30927 L .62969 .30924 L .63167 .30918 L .63365 .3091 L .63563 .30902 L .63761 .30894 L .63959 .30888 L .64157 .30884 L .64355 .30883 L .64553 .30885 L .64751 .3089 L .64949 .30895 L .65147 .30902 L .65345 .30908 L .65543 .30912 L .65741 .30915 L .65939 .30915 L .66137 .30914 L .66335 .3091 L .66533 .30906 L .66731 .30902 L .66929 .30897 L .67127 .30894 L .67325 .30892 L .67523 .30892 L .67721 .30893 L .67919 .30895 L .68117 .30898 L .68315 .30902 L .68513 .30905 L .68711 .30907 L .68909 .30909 L .69107 .30909 L .69305 .30908 L .69503 .30906 L .69701 .30904 L .69899 .30902 L .70097 .30899 L .70295 .30898 L .70493 .30897 L .70691 .30897 L .70889 .30897 L .71087 .30898 L .71285 .309 L .71483 .30902 L .71681 .30903 L Mistroke .71879 .30905 L .72077 .30905 L .72275 .30905 L .72473 .30905 L .72671 .30904 L .72869 .30903 L .73067 .30902 L .73265 .30901 L .73463 .309 L .73661 .30899 L .73859 .30899 L .74057 .30899 L .74255 .309 L .74453 .30901 L .74651 .30902 L .74849 .30903 L .75047 .30903 L .75245 .30904 L .75443 .30904 L .75641 .30903 L .75839 .30903 L .76037 .30902 L .76235 .30902 L .76433 .30901 L .76631 .30901 L .76829 .309 L .77027 .309 L .77225 .309 L .77423 .30901 L .77621 .30901 L .77819 .30902 L .78017 .30902 L .78215 .30902 L .78413 .30903 L .78611 .30903 L .78809 .30903 L .79007 .30902 L .79205 .30902 L .79403 .30902 L .79601 .30901 L .79799 .30901 L .79997 .30901 L .80195 .30901 L .80393 .30901 L .80591 .30901 L .80789 .30901 L .80987 .30902 L .81185 .30902 L .81383 .30902 L .81581 .30902 L Mistroke .81779 .30902 L .81977 .30902 L .82175 .30902 L .82373 .30902 L .82571 .30902 L .82769 .30902 L .82967 .30901 L .83165 .30901 L .83363 .30901 L .83561 .30901 L .83759 .30901 L .83957 .30902 L .84155 .30902 L .84353 .30902 L .84551 .30902 L .84749 .30902 L .84947 .30902 L .85145 .30902 L .85343 .30902 L .85541 .30902 L .85739 .30902 L .85937 .30902 L .86135 .30902 L .86333 .30902 L .86531 .30902 L .86729 .30902 L .86927 .30902 L .87125 .30902 L .87323 .30902 L .87521 .30902 L .87719 .30902 L .87917 .30902 L .88115 .30902 L .88313 .30902 L .88511 .30902 L .88709 .30902 L .88907 .30902 L .89105 .30902 L .89303 .30902 L .89501 .30902 L .89699 .30902 L .89897 .30902 L .90095 .30902 L .90293 .30902 L .90491 .30902 L .90689 .30902 L .90887 .30902 L .91085 .30902 L .91283 .30902 L .91481 .30902 L Mistroke .91679 .30902 L .91877 .30902 L .92075 .30902 L .92273 .30902 L .92471 .30902 L .92669 .30902 L .92867 .30902 L .93065 .30902 L .93263 .30902 L .93461 .30902 L .93659 .30902 L .93857 .30902 L .94055 .30902 L .94253 .30902 L .94451 .30902 L .94649 .30902 L .94847 .30902 L .95045 .30902 L .95243 .30902 L .95441 .30902 L .95639 .30902 L .95837 .30902 L .96035 .30902 L .96233 .30902 L .96431 .30902 L .96629 .30902 L .96827 .30902 L .97025 .30902 L .97223 .30902 L .97421 .30902 L .97619 .30902 L Mfstroke % End of Graphics MathPictureEnd :[font = text; inactive; closed; preserveAspect; ] First, let's HWR the gammatone filter and plot the result. :[font = input; inactive; closed; preserveAspect; ] hwrgt=Map[If[Positive[#1],#1,0]&, gt]; :[font = input; inactive; closed; preserveAspect; startGroup; ] ListPlot[hwrgt,PlotJoined->True,PlotRange->{0,1}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; closed; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00198 0 0.618034 [ [(0)] .02381 0 0 2 Msboxa [(100)] .22181 0 0 2 Msboxa [(200)] .41981 0 0 2 Msboxa [(300)] .61781 0 0 2 Msboxa [(400)] .81581 0 0 2 Msboxa [(0.2)] .01131 .12361 1 0 Msboxa [(0.4)] .01131 .24721 1 0 Msboxa [(0.6)] .01131 .37082 1 0 Msboxa [(0.8)] .01131 .49443 1 0 Msboxa [(1)] .01131 .61803 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .02381 0 m .02381 .00625 L s P [(0)] .02381 0 0 2 Mshowa p .002 w .22181 0 m .22181 .00625 L s P [(100)] .22181 0 0 2 Mshowa p .002 w .41981 0 m .41981 .00625 L s P [(200)] .41981 0 0 2 Mshowa p .002 w .61781 0 m .61781 .00625 L s P [(300)] .61781 0 0 2 Mshowa p .002 w .81581 0 m .81581 .00625 L s P [(400)] .81581 0 0 2 Mshowa p .001 w .06341 0 m .06341 .00375 L s P p .001 w .10301 0 m .10301 .00375 L s P p .001 w .14261 0 m .14261 .00375 L s P p .001 w .18221 0 m .18221 .00375 L s P p .001 w .26141 0 m .26141 .00375 L s P p .001 w .30101 0 m .30101 .00375 L s P p .001 w .34061 0 m .34061 .00375 L s P p .001 w .38021 0 m .38021 .00375 L s P p .001 w .45941 0 m .45941 .00375 L s P p .001 w .49901 0 m .49901 .00375 L s P p .001 w .53861 0 m .53861 .00375 L s P p .001 w .57821 0 m .57821 .00375 L s P p .001 w .65741 0 m .65741 .00375 L s P p .001 w .69701 0 m .69701 .00375 L s P p .001 w .73661 0 m .73661 .00375 L s P p .001 w .77621 0 m .77621 .00375 L s P p .001 w .85541 0 m .85541 .00375 L s P p .001 w .89501 0 m .89501 .00375 L s P p .001 w .93461 0 m .93461 .00375 L s P p .001 w .97421 0 m .97421 .00375 L s P p .002 w 0 0 m 1 0 L s P p .002 w .02381 .12361 m .03006 .12361 L s P [(0.2)] .01131 .12361 1 0 Mshowa p .002 w .02381 .24721 m .03006 .24721 L s P [(0.4)] .01131 .24721 1 0 Mshowa p .002 w .02381 .37082 m .03006 .37082 L s P [(0.6)] .01131 .37082 1 0 Mshowa p .002 w .02381 .49443 m .03006 .49443 L s P [(0.8)] .01131 .49443 1 0 Mshowa p .002 w .02381 .61803 m .03006 .61803 L s P [(1)] .01131 .61803 1 0 Mshowa p .001 w .02381 .02472 m .02756 .02472 L s P p .001 w .02381 .04944 m .02756 .04944 L s P p .001 w .02381 .07416 m .02756 .07416 L s P p .001 w .02381 .09889 m .02756 .09889 L s P p .001 w .02381 .14833 m .02756 .14833 L s P p .001 w .02381 .17305 m .02756 .17305 L s P p .001 w .02381 .19777 m .02756 .19777 L s P p .001 w .02381 .22249 m .02756 .22249 L s P p .001 w .02381 .27193 m .02756 .27193 L s P p .001 w .02381 .29666 m .02756 .29666 L s P p .001 w .02381 .32138 m .02756 .32138 L s P p .001 w .02381 .3461 m .02756 .3461 L s P p .001 w .02381 .39554 m .02756 .39554 L s P p .001 w .02381 .42026 m .02756 .42026 L s P p .001 w .02381 .44498 m .02756 .44498 L s P p .001 w .02381 .46971 m .02756 .46971 L s P p .001 w .02381 .51915 m .02756 .51915 L s P p .001 w .02381 .54387 m .02756 .54387 L s P p .001 w .02381 .56859 m .02756 .56859 L s P p .001 w .02381 .59331 m .02756 .59331 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w .02579 0 m .02777 5e-05 L .02975 .00028 L .03173 .00049 L .03371 0 L .03569 0 L .03767 0 L .03965 0 L .04163 0 L .04361 0 L .04559 0 L .04757 0 L .04955 0 L .05153 .02423 L .05351 .05324 L .05549 .08146 L .05747 .10189 L .05945 .1075 L .06143 .09299 L .06341 .05635 L .06539 0 L .06737 0 L .06935 0 L .07133 0 L .07331 0 L .07529 0 L .07727 0 L .07925 0 L .08123 0 L .08321 .12264 L .08519 .23886 L .08717 .32785 L .08915 .37163 L .09113 .35851 L .09311 .28572 L .09509 .1606 L .09707 0 L .09905 0 L .10103 0 L .10301 0 L .10499 0 L .10697 0 L .10895 0 L .11093 0 L .11291 0 L .11489 .20893 L .11687 .39261 L .11885 .52095 L .12083 .57186 L .12281 .53512 L Mistroke .12479 .41431 L .12677 .22655 L .12875 0 L .13073 0 L .13271 0 L .13469 0 L .13667 0 L .13865 0 L .14063 0 L .14261 0 L .14459 0 L .14657 .23728 L .14855 .4383 L .15053 .57204 L .15251 .61803 L .15449 .56952 L .15647 .43446 L .15845 .2342 L .16043 0 L .16241 0 L .16439 0 L .16637 0 L .16835 0 L .17033 0 L .17231 0 L .17429 0 L .17627 0 L .17825 .21759 L .18023 .39791 L .18221 .51427 L .18419 .55036 L .18617 .50249 L .18815 .3799 L .19013 .203 L .19211 0 L .19409 0 L .19607 0 L .19805 0 L .20003 0 L .20201 0 L .20399 0 L .20597 0 L .20795 0 L .20993 .17479 L .21191 .31753 L .21389 .40775 L .21587 .43361 L .21785 .39346 L .21983 .29567 L .22181 .15706 L Mistroke .22379 0 L .22577 0 L .22775 0 L .22973 0 L .23171 0 L .23369 0 L .23567 0 L .23765 0 L .23963 0 L .24161 .12831 L .24359 .232 L .24557 .29655 L .24755 .31394 L .24953 .28361 L .25151 .2122 L .25349 .11225 L .25547 0 L .25745 0 L .25943 0 L .26141 0 L .26339 0 L .26537 0 L .26735 0 L .26933 0 L .27131 0 L .27329 .08823 L .27527 .15898 L .27725 .20251 L .27923 .21366 L .28121 .19238 L .28319 .14347 L .28517 .07565 L .28715 0 L .28913 0 L .29111 0 L .29309 0 L .29507 0 L .29705 0 L .29903 0 L .30101 0 L .30299 0 L .30497 .05774 L .30695 .10375 L .30893 .13181 L .31091 .1387 L .31289 .12457 L .31487 .09266 L .31685 .04873 L .31883 0 L .32081 0 L Mistroke .32279 0 L .32477 0 L .32675 0 L .32873 0 L .33071 0 L .33269 0 L .33467 0 L .33665 .03634 L .33863 .06516 L .34061 .08261 L .34259 .08675 L .34457 .07775 L .34655 .05772 L .34853 .03029 L .35051 0 L .35249 0 L .35447 0 L .35645 0 L .35843 0 L .36041 0 L .36239 0 L .36437 0 L .36635 0 L .36833 .02217 L .37031 .03968 L .37229 .05022 L .37427 .05264 L .37625 .0471 L .37823 .03491 L .38021 .01829 L .38219 0 L .38417 0 L .38615 0 L .38813 0 L .39011 0 L .39209 0 L .39407 0 L .39605 0 L .39803 0 L .40001 .01318 L .40199 .02356 L .40397 .02977 L .40595 .03116 L .40793 .02784 L .40991 .02061 L .41189 .01078 L .41387 0 L .41585 0 L .41783 0 L .41981 0 L Mistroke .42179 0 L .42377 0 L .42575 0 L .42773 0 L .42971 0 L .43169 .00767 L .43367 .01369 L .43565 .01728 L .43763 .01806 L .43961 .01612 L .44159 .01192 L .44357 .00623 L .44555 0 L .44753 0 L .44951 0 L .45149 0 L .45347 0 L .45545 0 L .45743 0 L .45941 0 L .46139 0 L .46337 .00438 L .46535 .00781 L .46733 .00985 L .46931 .01029 L .47129 .00917 L .47327 .00677 L .47525 .00354 L .47723 0 L .47921 0 L .48119 0 L .48317 0 L .48515 0 L .48713 0 L .48911 0 L .49109 0 L .49307 0 L .49505 .00246 L .49703 .00439 L .49901 .00553 L .50099 .00577 L .50297 .00514 L .50495 .00379 L .50693 .00198 L .50891 0 L .51089 0 L .51287 0 L .51485 0 L .51683 0 L .51881 0 L Mistroke .52079 0 L .52277 0 L .52475 0 L .52673 .00137 L .52871 .00243 L .53069 .00306 L .53267 .00319 L .53465 .00284 L .53663 .00209 L .53861 .00109 L .54059 0 L .54257 0 L .54455 0 L .54653 0 L .54851 0 L .55049 0 L .55247 0 L .55445 0 L .55643 0 L .55841 .00075 L .56039 .00133 L .56237 .00168 L .56435 .00175 L .56633 .00155 L .56831 .00114 L .57029 .0006 L .57227 0 L .57425 0 L .57623 0 L .57821 0 L .58019 0 L .58217 0 L .58415 0 L .58613 0 L .58811 0 L .59009 .00041 L .59207 .00072 L .59405 .00091 L .59603 .00094 L .59801 .00084 L .59999 .00062 L .60197 .00032 L .60395 0 L .60593 0 L .60791 0 L .60989 0 L .61187 0 L .61385 0 L .61583 0 L .61781 0 L Mistroke .61979 0 L .62177 .00022 L .62375 .00039 L .62573 .00049 L .62771 .00051 L .62969 .00045 L .63167 .00033 L .63365 .00017 L .63563 0 L .63761 0 L .63959 0 L .64157 0 L .64355 0 L .64553 0 L .64751 0 L .64949 0 L .65147 0 L .65345 .00012 L .65543 .00021 L .65741 .00026 L .65939 .00027 L .66137 .00024 L .66335 .00018 L .66533 9e-05 L .66731 0 L .66929 0 L .67127 0 L .67325 0 L .67523 0 L .67721 0 L .67919 0 L .68117 0 L .68315 0 L .68513 6e-05 L .68711 .00011 L .68909 .00014 L .69107 .00014 L .69305 .00013 L .69503 9e-05 L .69701 5e-05 L .69899 0 L .70097 0 L .70295 0 L .70493 0 L .70691 0 L .70889 0 L .71087 0 L .71285 0 L .71483 0 L .71681 3e-05 L Mistroke .71879 6e-05 L .72077 7e-05 L .72275 7e-05 L .72473 7e-05 L .72671 5e-05 L .72869 3e-05 L .73067 0 L .73265 0 L .73463 0 L .73661 0 L .73859 0 L .74057 0 L .74255 0 L .74453 0 L .74651 0 L .74849 2e-05 L .75047 3e-05 L .75245 4e-05 L .75443 4e-05 L .75641 3e-05 L .75839 3e-05 L .76037 1e-05 L .76235 0 L .76433 0 L .76631 0 L .76829 0 L .77027 0 L .77225 0 L .77423 0 L .77621 0 L .77819 0 L .78017 1e-05 L .78215 2e-05 L .78413 2e-05 L .78611 2e-05 L .78809 2e-05 L .79007 1e-05 L .79205 1e-05 L .79403 0 L .79601 0 L .79799 0 L .79997 0 L .80195 0 L .80393 0 L .80591 0 L .80789 0 L .80987 0 L .81185 0 L .81383 1e-05 L .81581 1e-05 L Mistroke .81779 1e-05 L .81977 1e-05 L .82175 1e-05 L .82373 0 L .82571 0 L .82769 0 L .82967 0 L .83165 0 L .83363 0 L .83561 0 L .83759 0 L .83957 0 L .84155 0 L .84353 0 L .84551 0 L .84749 1e-05 L .84947 1e-05 L .85145 0 L .85343 0 L .85541 0 L .85739 0 L .85937 0 L .86135 0 L .86333 0 L .86531 0 L .86729 0 L .86927 0 L .87125 0 L .87323 0 L .87521 0 L .87719 0 L .87917 0 L .88115 0 L .88313 0 L .88511 0 L .88709 0 L .88907 0 L .89105 0 L .89303 0 L .89501 0 L .89699 0 L .89897 0 L .90095 0 L .90293 0 L .90491 0 L .90689 0 L .90887 0 L .91085 0 L .91283 0 L .91481 0 L Mistroke .91679 0 L .91877 0 L .92075 0 L .92273 0 L .92471 0 L .92669 0 L .92867 0 L .93065 0 L .93263 0 L .93461 0 L .93659 0 L .93857 0 L .94055 0 L .94253 0 L .94451 0 L .94649 0 L .94847 0 L .95045 0 L .95243 0 L .95441 0 L .95639 0 L .95837 0 L .96035 0 L .96233 0 L .96431 0 L .96629 0 L .96827 0 L .97025 0 L .97223 0 L .97421 0 L .97619 0 L Mfstroke % End of Graphics MathPictureEnd :[font = text; inactive; closed; preserveAspect; ] Now, we can apply the compression algorithm and generate a new set of data. :[font = input; inactive; closed; preserveAspect; ] loggt = Map[N[256+20*Log[#1 + 10^-6]]&, hwrgt]; :[font = input; inactive; closed; preserveAspect; startGroup; ] loggtplot = ListPlot[loggt, PlotJoined->True, PlotRange->{0,256}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; closed; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00198 0 0.0024142 [ [(0)] .02381 0 0 2 Msboxa [(100)] .22181 0 0 2 Msboxa [(200)] .41981 0 0 2 Msboxa [(300)] .61781 0 0 2 Msboxa [(400)] .81581 0 0 2 Msboxa [(50)] .01131 .12071 1 0 Msboxa [(100)] .01131 .24142 1 0 Msboxa [(150)] .01131 .36213 1 0 Msboxa [(200)] .01131 .48284 1 0 Msboxa [(250)] .01131 .60355 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .02381 0 m .02381 .00625 L s P [(0)] .02381 0 0 2 Mshowa p .002 w .22181 0 m .22181 .00625 L s P [(100)] .22181 0 0 2 Mshowa p .002 w .41981 0 m .41981 .00625 L s P [(200)] .41981 0 0 2 Mshowa p .002 w .61781 0 m .61781 .00625 L s P [(300)] .61781 0 0 2 Mshowa p .002 w .81581 0 m .81581 .00625 L s P [(400)] .81581 0 0 2 Mshowa p .001 w .06341 0 m .06341 .00375 L s P p .001 w .10301 0 m .10301 .00375 L s P p .001 w .14261 0 m .14261 .00375 L s P p .001 w .18221 0 m .18221 .00375 L s P p .001 w .26141 0 m .26141 .00375 L s P p .001 w .30101 0 m .30101 .00375 L s P p .001 w .34061 0 m .34061 .00375 L s P p .001 w .38021 0 m .38021 .00375 L s P p .001 w .45941 0 m .45941 .00375 L s P p .001 w .49901 0 m .49901 .00375 L s P p .001 w .53861 0 m .53861 .00375 L s P p .001 w .57821 0 m .57821 .00375 L s P p .001 w .65741 0 m .65741 .00375 L s P p .001 w .69701 0 m .69701 .00375 L s P p .001 w .73661 0 m .73661 .00375 L s P p .001 w .77621 0 m .77621 .00375 L s P p .001 w .85541 0 m .85541 .00375 L s P p .001 w .89501 0 m .89501 .00375 L s P p .001 w .93461 0 m .93461 .00375 L s P p .001 w .97421 0 m .97421 .00375 L s P p .002 w 0 0 m 1 0 L s P p .002 w .02381 .12071 m .03006 .12071 L s P [(50)] .01131 .12071 1 0 Mshowa p .002 w .02381 .24142 m .03006 .24142 L s P [(100)] .01131 .24142 1 0 Mshowa p .002 w .02381 .36213 m .03006 .36213 L s P [(150)] .01131 .36213 1 0 Mshowa p .002 w .02381 .48284 m .03006 .48284 L s P [(200)] .01131 .48284 1 0 Mshowa p .002 w .02381 .60355 m .03006 .60355 L s P [(250)] .01131 .60355 1 0 Mshowa p .001 w .02381 .02414 m .02756 .02414 L s P p .001 w .02381 .04828 m .02756 .04828 L s P p .001 w .02381 .07243 m .02756 .07243 L s P p .001 w .02381 .09657 m .02756 .09657 L s P p .001 w .02381 .14485 m .02756 .14485 L s P p .001 w .02381 .16899 m .02756 .16899 L s P p .001 w .02381 .19314 m .02756 .19314 L s P p .001 w .02381 .21728 m .02756 .21728 L s P p .001 w .02381 .26556 m .02756 .26556 L s P p .001 w .02381 .2897 m .02756 .2897 L s P p .001 w .02381 .31385 m .02756 .31385 L s P p .001 w .02381 .33799 m .02756 .33799 L s P p .001 w .02381 .38627 m .02756 .38627 L s P p .001 w .02381 .41041 m .02756 .41041 L s P p .001 w .02381 .43456 m .02756 .43456 L s P p .001 w .02381 .4587 m .02756 .4587 L s P p .001 w .02381 .50698 m .02756 .50698 L s P p .001 w .02381 .53112 m .02756 .53112 L s P p .001 w .02381 .55526 m .02756 .55526 L s P p .001 w .02381 .57941 m .02756 .57941 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .004 w s .02625 0 m .02777 .16173 L s .02777 .16173 m .02975 .24634 L .03173 .27301 L s .03341 0 m .03173 .27301 L s s s s s s s s s .04974 0 m .05153 .46165 L s .05153 .46165 m .05351 .49966 L .05549 .52019 L .05747 .53099 L .05945 .53358 L .06143 .52658 L .06341 .5024 L s .06521 0 m .06341 .5024 L s s s s s s s s s .08139 0 m .08321 .53995 L s .08321 .53995 m .08519 .57213 L .08717 .58742 L .08915 .59347 L .09113 .59174 L .09311 .58078 L .09509 .55297 L s .09691 0 m .09509 .55297 L s s s s s s s s s .11307 0 m .11489 .56567 L s .11489 .56567 m .11687 .59613 L .11885 .60978 L .12083 .61428 L .12281 .61108 L .12479 .59872 L .12677 .56958 L s .12859 0 m .12677 .56958 L s s s s s s s s s .14475 0 m .14657 .57181 L s .14657 .57181 m .14855 .60144 L .15053 .6143 L s .15251 .61803 m .15053 .6143 L s .15251 .61803 m .15449 .61409 L s .15449 .61409 m .15647 .60102 L .15845 .57118 L s .16027 0 m .15845 .57118 L s s s s s s s s s .17643 0 m .17825 .56763 L s .17825 .56763 m .18023 .59677 L .18221 .60916 L .18419 .61243 L .18617 .60804 L .18815 .59454 L .19013 .56428 L s .19195 0 m .19013 .56428 L s s s s s s s s s .20811 0 m .20993 .55705 L s .20993 .55705 m .21191 .58588 L .21389 .59795 L .21587 .60092 L .21785 .59623 L .21983 .58243 L .22181 .55189 L s .22363 0 m .22181 .55189 L s s s s s s s s s .23979 0 m .24161 .54213 L s .24161 .54213 m .24359 .57073 L .24557 .58258 L .24755 .58533 L .24953 .58042 L .25151 .56642 L .25349 .53567 L s .2553 0 m .25349 .53567 L s s s s s s s s s .27148 0 m .27329 .52405 L s .27329 .52405 m .27527 .55247 L .27725 .56416 L .27923 .56675 L .28121 .56168 L .28319 .54752 L .28517 .51662 L s .28698 0 m .28517 .51662 L s s s s s s s s s .30317 0 m .30497 .50357 L s .30497 .50357 m .30695 .53187 L .30893 .54343 L .31091 .54589 L .31289 .5407 L .31487 .52641 L .31685 .49539 L s .31865 0 m .31685 .49539 L s s s s s s s s s .33485 0 m .33665 .48122 L s .33665 .48122 m .33863 .50941 L .34061 .52087 L .34259 .52323 L .34457 .51794 L .34655 .50355 L .34853 .47243 L s .35032 0 m .34853 .47243 L s s s s s s s s s .36654 0 m .36833 .45735 L s .36833 .45735 m .37031 .48546 L .37229 .49683 L .37427 .49911 L .37625 .49374 L .37823 .47927 L .38021 .44807 L s .38199 0 m .38021 .44807 L s s s s s s s s s .39823 0 m .40001 .43225 L s .40001 .43225 m .40199 .46028 L .40397 .47159 L .40595 .47379 L .40793 .46835 L .40991 .45382 L .41189 .42255 L s .41366 0 m .41189 .42255 L s s s s s s s s s .42992 0 m .43169 .4061 L s .43169 .4061 m .43367 .43407 L .43565 .44532 L .43763 .44747 L .43961 .44197 L .44159 .42738 L .44357 .39606 L s .44533 0 m .44357 .39606 L s s s s s s s s s .46162 0 m .46337 .37906 L s .46337 .37906 m .46535 .40699 L .46733 .41818 L .46931 .42028 L .47129 .41473 L .47327 .4001 L .47525 .36872 L s .477 0 m .47525 .36872 L s s s s s s s s s .49331 0 m .49505 .35127 L s .49505 .35127 m .49703 .37915 L .49901 .3903 L .50099 .39235 L .50297 .38676 L .50495 .37209 L .50693 .34067 L s .50866 0 m .50693 .34067 L s s s s s s s s s .52501 0 m .52673 .32282 L s .52673 .32282 m .52871 .35066 L .53069 .36177 L .53267 .36379 L .53465 .35816 L .53663 .34344 L .53861 .312 L s .54032 0 m .53861 .312 L s s s s s s s s s .55671 0 m .55841 .2938 L s .55841 .2938 m .56039 .3216 L .56237 .33267 L .56435 .33465 L .56633 .32899 L .56831 .31425 L .57029 .28279 L s .57198 0 m .57029 .28279 L s s s s s s s s s .58842 0 m .59009 .26428 L s .59009 .26428 m .59207 .29203 L .59405 .30307 L .59603 .30502 L .59801 .29934 L .59999 .28457 L .60197 .2531 L s .60363 0 m .60197 .2531 L s s s s s s s s s .62013 0 m .62177 .23433 L s .62177 .23433 m .62375 .26203 L .62573 .27303 L .62771 .27496 L .62969 .26925 L .63167 .25447 L .63365 .22301 L s .63527 0 m .63365 .22301 L s s s s s s s s s .65185 0 m .65345 .20403 L s .65345 .20403 m .65543 .23165 L .65741 .24262 L .65939 .24452 L .66137 .23879 L .66335 .22401 L .66533 .1926 L s .66691 0 m .66533 .1926 L s s s s s s s s s .68359 0 m .68513 .17347 L s .68513 .17347 m .68711 .20097 L .68909 .21189 L .69107 .21377 L .69305 .20803 L .69503 .19326 L .69701 .16197 L s .69853 0 m .69701 .16197 L s s s s s s s s s .71534 0 m .71681 .14278 L s .71681 .14278 m .71879 .17007 L .72077 .18092 L .72275 .18277 L .72473 .17704 L .72671 .16233 L .72869 .13128 L s .73013 0 m .72869 .13128 L s s s s s s s s s .74711 0 m .74849 .11218 L s .74849 .11218 m .75047 .1391 L .75245 .14983 L .75443 .15165 L .75641 .14595 L .75839 .13137 L .76037 .10079 L s .7617 0 m .76037 .10079 L s s s s s s s s s .77893 0 m .78017 .08204 L s .78017 .08204 m .78215 .10828 L .78413 .11882 L .78611 .12059 L .78809 .11496 L .79007 .10064 L .79205 .07097 L s .79322 0 m .79205 .07097 L s s s s s s s s s .81082 0 m .81185 .05298 L s .81185 .05298 m .81383 .07801 L .81581 .08821 L .81779 .08992 L .81977 .08443 L .82175 .0706 L .82373 .04256 L s .82465 0 m .82373 .04256 L s s s s s s s s s .84284 0 m .84353 .02603 L s .84353 .02603 m .84551 .04899 L .84749 .05858 L .84947 .06019 L .85145 .05499 L .85343 .04204 L .85541 .01672 L s .85591 0 m .85541 .01672 L s s s s s s s s s .87511 0 m .87521 .0025 L s .87521 .0025 m .87719 .02228 L .87917 .03088 L .88115 .03233 L .88313 .02761 L .88511 .01612 L s .88661 0 m .88511 .01612 L s s s s s s s s s s s s .90907 0 m .91085 .00642 L s .91085 .00642 m .91283 .00764 L .91481 .00366 L s .91558 0 m .91481 .00366 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s % End of Graphics MathPictureEnd :[font = text; inactive; closed; preserveAspect; ] The adaptive threshold is a function of both time and cochlear channel. The threshold first increases rapidly to follow the initial pulse of a sound. The threshold then decays, at a rate proportional to the exponential decay rate of the Gammatone impulse response. The goal is to pass the first peak of the response but then to suppress the succeeding pulses. :[font = text; inactive; closed; preserveAspect; ] Note, the envelope of the Gammatone filter is given by the expression :[font = input; output; inactive; closed; preserveAspect; ] t^(n-1) E^(-2 Pi b t) ;[o] n - 1 t --------- 2 Pi b t E :[font = text; inactive; closed; preserveAspect; ] Taking the logarithm (base E) gives us the following equation for the envelope. :[font = input; output; inactive; closed; preserveAspect; ] Log[t^(n-1) E^(-2 Pi b t)] = (n-1)Log[t] - 2 Pi b t ;[o] n - 1 t Log[---------] = (n - 1) Log[t] - 2 Pi b t 2 Pi b t E :[font = text; inactive; closed; preserveAspect; ] The first term doesn't grow nearly as fast as the second term, so for large values of time the envelope in the Log domain decays at a rate of :[font = input; output; inactive; closed; preserveAspect; startGroup; ] -2 Pi b t = -2 Pi 125 t ;[o] -2 Pi b t = -2 Pi 125 t :[font = output; output; inactive; closed; preserveAspect; endGroup; ] -250*Pi*t ;[o] -250 Pi t :[font = input; inactive; closed; preserveAspect; startGroup; ] Show[loggtplot, Plot[20*Log[t^3*E^(-2 Pi 125 t/16000)],{t,1,.03*16000}], Plot[256+20*(-2 Pi 125 t/16000),{t,0,.03*16000}]]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; closed; preserveAspect; pictureLeft = 34; pictureWidth = 282; pictureHeight = 174; endGroup; ] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.00198 0 0.0024142 [ [(0)] .02381 0 0 2 Msboxa [(100)] .22181 0 0 2 Msboxa [(200)] .41981 0 0 2 Msboxa [(300)] .61781 0 0 2 Msboxa [(400)] .81581 0 0 2 Msboxa [(50)] .01131 .12071 1 0 Msboxa [(100)] .01131 .24142 1 0 Msboxa [(150)] .01131 .36213 1 0 Msboxa [(200)] .01131 .48284 1 0 Msboxa [(250)] .01131 .60355 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .02381 0 m .02381 .00625 L s P [(0)] .02381 0 0 2 Mshowa p .002 w .22181 0 m .22181 .00625 L s P [(100)] .22181 0 0 2 Mshowa p .002 w .41981 0 m .41981 .00625 L s P [(200)] .41981 0 0 2 Mshowa p .002 w .61781 0 m .61781 .00625 L s P [(300)] .61781 0 0 2 Mshowa p .002 w .81581 0 m .81581 .00625 L s P [(400)] .81581 0 0 2 Mshowa p .001 w .06341 0 m .06341 .00375 L s P p .001 w .10301 0 m .10301 .00375 L s P p .001 w .14261 0 m .14261 .00375 L s P p .001 w .18221 0 m .18221 .00375 L s P p .001 w .26141 0 m .26141 .00375 L s P p .001 w .30101 0 m .30101 .00375 L s P p .001 w .34061 0 m .34061 .00375 L s P p .001 w .38021 0 m .38021 .00375 L s P p .001 w .45941 0 m .45941 .00375 L s P p .001 w .49901 0 m .49901 .00375 L s P p .001 w .53861 0 m .53861 .00375 L s P p .001 w .57821 0 m .57821 .00375 L s P p .001 w .65741 0 m .65741 .00375 L s P p .001 w .69701 0 m .69701 .00375 L s P p .001 w .73661 0 m .73661 .00375 L s P p .001 w .77621 0 m .77621 .00375 L s P p .001 w .85541 0 m .85541 .00375 L s P p .001 w .89501 0 m .89501 .00375 L s P p .001 w .93461 0 m .93461 .00375 L s P p .001 w .97421 0 m .97421 .00375 L s P p .002 w 0 0 m 1 0 L s P p .002 w .02381 .12071 m .03006 .12071 L s P [(50)] .01131 .12071 1 0 Mshowa p .002 w .02381 .24142 m .03006 .24142 L s P [(100)] .01131 .24142 1 0 Mshowa p .002 w .02381 .36213 m .03006 .36213 L s P [(150)] .01131 .36213 1 0 Mshowa p .002 w .02381 .48284 m .03006 .48284 L s P [(200)] .01131 .48284 1 0 Mshowa p .002 w .02381 .60355 m .03006 .60355 L s P [(250)] .01131 .60355 1 0 Mshowa p .001 w .02381 .02414 m .02756 .02414 L s P p .001 w .02381 .04828 m .02756 .04828 L s P p .001 w .02381 .07243 m .02756 .07243 L s P p .001 w .02381 .09657 m .02756 .09657 L s P p .001 w .02381 .14485 m .02756 .14485 L s P p .001 w .02381 .16899 m .02756 .16899 L s P p .001 w .02381 .19314 m .02756 .19314 L s P p .001 w .02381 .21728 m .02756 .21728 L s P p .001 w .02381 .26556 m .02756 .26556 L s P p .001 w .02381 .2897 m .02756 .2897 L s P p .001 w .02381 .31385 m .02756 .31385 L s P p .001 w .02381 .33799 m .02756 .33799 L s P p .001 w .02381 .38627 m .02756 .38627 L s P p .001 w .02381 .41041 m .02756 .41041 L s P p .001 w .02381 .43456 m .02756 .43456 L s P p .001 w .02381 .4587 m .02756 .4587 L s P p .001 w .02381 .50698 m .02756 .50698 L s P p .001 w .02381 .53112 m .02756 .53112 L s P p .001 w .02381 .55526 m .02756 .55526 L s P p .001 w .02381 .57941 m .02756 .57941 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p .004 w s .02625 0 m .02777 .16173 L s .02777 .16173 m .02975 .24634 L .03173 .27301 L s .03341 0 m .03173 .27301 L s s s s s s s s s .04974 0 m .05153 .46165 L s .05153 .46165 m .05351 .49966 L .05549 .52019 L .05747 .53099 L .05945 .53358 L .06143 .52658 L .06341 .5024 L s .06521 0 m .06341 .5024 L s s s s s s s s s .08139 0 m .08321 .53995 L s .08321 .53995 m .08519 .57213 L .08717 .58742 L .08915 .59347 L .09113 .59174 L .09311 .58078 L .09509 .55297 L s .09691 0 m .09509 .55297 L s s s s s s s s s .11307 0 m .11489 .56567 L s .11489 .56567 m .11687 .59613 L .11885 .60978 L .12083 .61428 L .12281 .61108 L .12479 .59872 L .12677 .56958 L s .12859 0 m .12677 .56958 L s s s s s s s s s .14475 0 m .14657 .57181 L s .14657 .57181 m .14855 .60144 L .15053 .6143 L s .15251 .61803 m .15053 .6143 L s .15251 .61803 m .15449 .61409 L s .15449 .61409 m .15647 .60102 L .15845 .57118 L s .16027 0 m .15845 .57118 L s s s s s s s s s .17643 0 m .17825 .56763 L s .17825 .56763 m .18023 .59677 L .18221 .60916 L .18419 .61243 L .18617 .60804 L .18815 .59454 L .19013 .56428 L s .19195 0 m .19013 .56428 L s s s s s s s s s .20811 0 m .20993 .55705 L s .20993 .55705 m .21191 .58588 L .21389 .59795 L .21587 .60092 L .21785 .59623 L .21983 .58243 L .22181 .55189 L s .22363 0 m .22181 .55189 L s s s s s s s s s .23979 0 m .24161 .54213 L s .24161 .54213 m .24359 .57073 L .24557 .58258 L .24755 .58533 L .24953 .58042 L .25151 .56642 L .25349 .53567 L s .2553 0 m .25349 .53567 L s s s s s s s s s .27148 0 m .27329 .52405 L s .27329 .52405 m .27527 .55247 L .27725 .56416 L .27923 .56675 L .28121 .56168 L .28319 .54752 L .28517 .51662 L s .28698 0 m .28517 .51662 L s s s s s s s s s .30317 0 m .30497 .50357 L s .30497 .50357 m .30695 .53187 L .30893 .54343 L .31091 .54589 L .31289 .5407 L .31487 .52641 L .31685 .49539 L s .31865 0 m .31685 .49539 L s s s s s s s s s .33485 0 m .33665 .48122 L s .33665 .48122 m .33863 .50941 L .34061 .52087 L .34259 .52323 L .34457 .51794 L .34655 .50355 L .34853 .47243 L s .35032 0 m .34853 .47243 L s s s s s s s s s .36654 0 m .36833 .45735 L s .36833 .45735 m .37031 .48546 L .37229 .49683 L .37427 .49911 L .37625 .49374 L .37823 .47927 L .38021 .44807 L s .38199 0 m .38021 .44807 L s s s s s s s s s .39823 0 m .40001 .43225 L s .40001 .43225 m .40199 .46028 L .40397 .47159 L .40595 .47379 L .40793 .46835 L .40991 .45382 L .41189 .42255 L s .41366 0 m .41189 .42255 L s s s s s s s s s .42992 0 m .43169 .4061 L s .43169 .4061 m .43367 .43407 L .43565 .44532 L .43763 .44747 L .43961 .44197 L .44159 .42738 L .44357 .39606 L s .44533 0 m .44357 .39606 L s s s s s s s s s .46162 0 m .46337 .37906 L s .46337 .37906 m .46535 .40699 L .46733 .41818 L .46931 .42028 L .47129 .41473 L .47327 .4001 L .47525 .36872 L s .477 0 m .47525 .36872 L s s s s s s s s s .49331 0 m .49505 .35127 L s .49505 .35127 m .49703 .37915 L .49901 .3903 L .50099 .39235 L .50297 .38676 L .50495 .37209 L .50693 .34067 L s .50866 0 m .50693 .34067 L s s s s s s s s s .52501 0 m .52673 .32282 L s .52673 .32282 m .52871 .35066 L .53069 .36177 L .53267 .36379 L .53465 .35816 L .53663 .34344 L .53861 .312 L s .54032 0 m .53861 .312 L s s s s s s s s s .55671 0 m .55841 .2938 L s .55841 .2938 m .56039 .3216 L .56237 .33267 L .56435 .33465 L .56633 .32899 L .56831 .31425 L .57029 .28279 L s .57198 0 m .57029 .28279 L s s s s s s s s s .58842 0 m .59009 .26428 L s .59009 .26428 m .59207 .29203 L .59405 .30307 L .59603 .30502 L .59801 .29934 L .59999 .28457 L .60197 .2531 L s .60363 0 m .60197 .2531 L s s s s s s s s s .62013 0 m .62177 .23433 L s .62177 .23433 m .62375 .26203 L .62573 .27303 L .62771 .27496 L .62969 .26925 L .63167 .25447 L .63365 .22301 L s .63527 0 m .63365 .22301 L s s s s s s s s s .65185 0 m .65345 .20403 L s .65345 .20403 m .65543 .23165 L .65741 .24262 L .65939 .24452 L .66137 .23879 L .66335 .22401 L .66533 .1926 L s .66691 0 m .66533 .1926 L s s s s s s s s s .68359 0 m .68513 .17347 L s .68513 .17347 m .68711 .20097 L .68909 .21189 L .69107 .21377 L .69305 .20803 L .69503 .19326 L .69701 .16197 L s .69853 0 m .69701 .16197 L s s s s s s s s s .71534 0 m .71681 .14278 L s .71681 .14278 m .71879 .17007 L .72077 .18092 L .72275 .18277 L .72473 .17704 L .72671 .16233 L .72869 .13128 L s .73013 0 m .72869 .13128 L s s s s s s s s s .74711 0 m .74849 .11218 L s .74849 .11218 m .75047 .1391 L .75245 .14983 L .75443 .15165 L .75641 .14595 L .75839 .13137 L .76037 .10079 L s .7617 0 m .76037 .10079 L s s s s s s s s s .77893 0 m .78017 .08204 L s .78017 .08204 m .78215 .10828 L .78413 .11882 L .78611 .12059 L .78809 .11496 L .79007 .10064 L .79205 .07097 L s .79322 0 m .79205 .07097 L s s s s s s s s s .81082 0 m .81185 .05298 L s .81185 .05298 m .81383 .07801 L .81581 .08821 L .81779 .08992 L .81977 .08443 L .82175 .0706 L .82373 .04256 L s .82465 0 m .82373 .04256 L s s s s s s s s s .84284 0 m .84353 .02603 L s .84353 .02603 m .84551 .04899 L .84749 .05858 L .84947 .06019 L .85145 .05499 L .85343 .04204 L .85541 .01672 L s .85591 0 m .85541 .01672 L s s s s s s s s s .87511 0 m .87521 .0025 L s .87521 .0025 m .87719 .02228 L .87917 .03088 L .88115 .03233 L .88313 .02761 L .88511 .01612 L s .88661 0 m .88511 .01612 L s s s s s s s s s s s s .90907 0 m .91085 .00642 L s .91085 .00642 m .91283 .00764 L .91481 .00366 L s .91558 0 m .91481 .00366 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s p p s .02583 0 m .02702 .06636 L s .02702 .06636 m .02826 .11197 L .02949 .14597 L .03073 .17297 L .0332 .21422 L .03567 .24509 L .04061 .28962 L .04555 .32104 L .05049 .34479 L .05543 .36348 L .06037 .3786 L .06531 .39104 L .07519 .41015 L .08507 .4238 L .09495 .43363 L .09988 .43745 L .10482 .44064 L .1147 .44549 L .11964 .44724 L .12458 .44861 L .12952 .44962 L .13199 .45001 L .13446 .45033 L .13693 .45057 L .13817 .45066 L .1394 .45074 L .14064 .4508 L .14187 .45085 L .14311 .45087 L .14434 .45089 L .14558 .45089 L .14681 .45087 L .14805 .45084 L .14928 .45079 L .15175 .45066 L .15422 .45047 L .15916 .44995 L .1641 .44923 L .17398 .44726 L .18386 .44466 L .20362 .43787 L .22338 .42932 L .26289 .40819 L .30241 .38304 L .34193 .35495 L .38145 .32461 L .42096 .29248 L .46048 .25892 L .5 .22416 L .53952 .18841 L Mistroke .57904 .1518 L .61855 .11446 L .65807 .07647 L .69759 .03792 L Mfstroke .73596 0 m .69759 .03792 L s s s s s s s s P P p p .02381 .61803 m .06341 .57063 L .10301 .52323 L .14261 .47583 L .18221 .42842 L .22181 .38102 L .26141 .33362 L .30101 .28622 L .34061 .23881 L .38021 .19141 L .41981 .14401 L .45941 .09661 L .49901 .0492 L .53861 .0018 L s .54011 0 m .53861 .0018 L s s s s s s s s s s s s P P P % End of Graphics MathPictureEnd :[font = text; inactive; closed; preserveAspect; endGroup; endGroup; ] More details to follow.... ^*)