diff --git a/ifcs2018_proceeding.tex b/ifcs2018_proceeding.tex index 09ffff9..2b87cfd 100644 --- a/ifcs2018_proceeding.tex +++ b/ifcs2018_proceeding.tex @@ -96,9 +96,18 @@ the first and last are equal to zero. But if we have too sample size for few coe \begin{figure}[h!tb] \includegraphics[width=\linewidth]{images/float-vs-integer.pdf} \caption{Impact of the quantization resolution of the coefficients} +%\label{float_vs_int} +\end{figure} + +\begin{figure}[h!tb] +\includegraphics[width=\linewidth]{images/demo_filtre} +\caption{Impact of the quantization resolution of the coefficients: the quantization is +set to 6~bits, setting the 30~first and 30~last coefficients out of the initial 128~band-pass +filter coefficients to 0.} \label{float_vs_int} \end{figure} + \section{Filter optimization} A basic approach for implementing the FIR filter is to compute the transfer function of diff --git a/images/demo_filtre.eps b/images/demo_filtre.eps new file mode 100644 index 0000000..aac35ab --- /dev/null +++ b/images/demo_filtre.eps @@ -0,0 +1,1433 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: demo_filtre.eps +%%Creator: gnuplot 5.2 patchlevel 2 +%%CreationDate: Fri May 18 19:34:59 2018 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 626 482 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following true/false flags may be edited by hand if desired. +% The unit line width and grayscale image gamma correction may also be changed. +% +/Color true def +/Blacktext false def +/Solid false def +/Dashlength 2 def +/Landscape false def +/Level1 true def +/Level3 false def +/Rounded false def +/ClipToBoundingBox false def +/SuppressPDFMark false def +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/Gamma 1.0 def +/BackgroundColor {1.000 1.000 1.000} def +% +/vshift -66 def +/dl1 { + 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if +} def +/dl2 { + 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + Rounded { currentlinewidth 0.75 mul add } if +} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/doclip { + ClipToBoundingBox { + newpath 50 50 moveto 626 50 lineto 626 482 lineto 50 482 lineto closepath + clip + } if +} def +% +% Gnuplot Prolog Version 5.1 (Oct 2015) +% +%/SuppressPDFMark true def +% +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/N {newpath moveto} bind def +/Z {closepath} bind def +/C {setrgbcolor} bind def +/f {rlineto fill} bind def +/g {setgray} bind def +/Gshow {show} def % May be redefined later in the file to support UTF-8 +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow {currentpoint stroke M 0 vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def +/BL {stroke userlinewidth 2 mul setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/AL {stroke userlinewidth 2 div setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/UL {dup gnulinewidth mul /userlinewidth exch def + dup 1 lt {pop 1} if 10 mul /udl exch def} def +/PL {stroke userlinewidth setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +3.8 setmiterlimit +% Classic Line colors (version 5.0) +/LCw {1 1 1} def +/LCb {0 0 0} def +/LCa {0 0 0} def +/LC0 {1 0 0} def +/LC1 {0 1 0} def +/LC2 {0 0 1} def +/LC3 {1 0 1} def +/LC4 {0 1 1} def +/LC5 {1 1 0} def +/LC6 {0 0 0} def +/LC7 {1 0.3 0} def +/LC8 {0.5 0.5 0.5} def +% Default dash patterns (version 5.0) +/LTB {BL [] LCb DL} def +/LTw {PL [] 1 setgray} def +/LTb {PL [] LCb DL} def +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def +/LT0 {PL [] LC0 DL} def +/LT1 {PL [2 dl1 3 dl2] LC1 DL} def +/LT2 {PL [1 dl1 1.5 dl2] LC2 DL} def +/LT3 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC3 DL} def +/LT4 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def +/LT5 {PL [4 dl1 2 dl2] LC5 DL} def +/LT6 {PL [1.5 dl1 1.5 dl2 1.5 dl1 1.5 dl2 1.5 dl1 6 dl2] LC6 DL} def +/LT7 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC7 DL} def +/LT8 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC8 DL} def +/SL {[] 0 setdash} def +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def +/Dia {stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt} def +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt} def +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke} def +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt} def +/Star {2 copy Pls Crs} def +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill} def +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill} def +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt} def +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill} def +/Pent {stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt} def +/PentF {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore} def +/Circle {stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt} def +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def +/C1 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath} bind def +/C2 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C3 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C4 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C5 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc} bind def +/C6 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C7 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C8 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C9 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath} bind def +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C11 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C12 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C13 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C14 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc} bind def +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath} bind def +/Square {dup Rec} bind def +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare} bind def +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare} bind def +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def +/DiaE {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke} def +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke} def +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke} def +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke} def +/PentE {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore} def +/CircE {stroke [] 0 setdash + hpt 0 360 arc stroke} def +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def +/DiaW {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V Opaque stroke} def +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V Opaque stroke} def +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V Opaque stroke} def +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V Opaque stroke} def +/PentW {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + Opaque stroke grestore} def +/CircW {stroke [] 0 setdash + hpt 0 360 arc Opaque stroke} def +/BoxFill {gsave Rec 1 setgray fill grestore} def +/Density { + /Fillden exch def + currentrgbcolor + /ColB exch def /ColG exch def /ColR exch def + /ColR ColR Fillden mul Fillden sub 1 add def + /ColG ColG Fillden mul Fillden sub 1 add def + /ColB ColB Fillden mul Fillden sub 1 add def + ColR ColG ColB setrgbcolor} def +/BoxColFill {gsave Rec PolyFill} def +/PolyFill {gsave Density fill grestore grestore} def +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def +% +% PostScript Level 1 Pattern Fill routine for rectangles +% Usage: x y w h s a XX PatternFill +% x,y = lower left corner of box to be filled +% w,h = width and height of box +% a = angle in degrees between lines and x-axis +% XX = 0/1 for no/yes cross-hatch +% +/PatternFill {gsave /PFa [ 9 2 roll ] def + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse + clip + currentlinewidth 0.5 mul setlinewidth + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def + 0 0 M PFa 5 get rotate PFs -2 div dup translate + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 M 0 PFs V} for + 0 PFa 6 get ne { + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for + } if + stroke grestore} def +% +/languagelevel where + {pop languagelevel} {1} ifelse +dup 2 lt + {/InterpretLevel1 true def + /InterpretLevel3 false def} + {/InterpretLevel1 Level1 def + 2 gt + {/InterpretLevel3 Level3 def} + {/InterpretLevel3 false def} + ifelse } + ifelse +% +% PostScript level 2 pattern fill definitions +% +/Level2PatternFill { +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} + bind def +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} +>> matrix makepattern +/Pat1 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} +>> matrix makepattern +/Pat2 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L + 8 8 L 8 0 L 0 0 L fill} +>> matrix makepattern +/Pat3 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L + 0 12 M 12 0 L stroke} +>> matrix makepattern +/Pat4 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L + 0 -4 M 12 8 L stroke} +>> matrix makepattern +/Pat5 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} +>> matrix makepattern +/Pat6 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} +>> matrix makepattern +/Pat7 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L + 12 0 M -4 8 L 12 4 M 0 10 L stroke} +>> matrix makepattern +/Pat8 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L + -4 0 M 12 8 L -4 4 M 8 10 L stroke} +>> matrix makepattern +/Pat9 exch def +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def +} def +% +% +%End of PostScript Level 2 code +% +/PatternBgnd { + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse +} def +% +% Substitute for Level 2 pattern fill codes with +% grayscale if Level 2 support is not selected. +% +/Level1PatternFill { +/Pattern1 {0.250 Density} bind def +/Pattern2 {0.500 Density} bind def +/Pattern3 {0.750 Density} bind def +/Pattern4 {0.125 Density} bind def +/Pattern5 {0.375 Density} bind def +/Pattern6 {0.625 Density} bind def +/Pattern7 {0.875 Density} bind def +} def +% +% Now test for support of Level 2 code +% +Level1 {Level1PatternFill} {Level2PatternFill} ifelse +% +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall +currentdict end definefont pop +% +/Metrics {ExtendTextBox Gswidth} def +/Lwidth {currentpoint stroke M 0 vshift R Metrics} def +/Rwidth {currentpoint stroke M dup stringwidth pop neg vshift R Metrics} def +/Cwidth {currentpoint stroke M dup stringwidth pop -2 div vshift R Metrics} def +/GLwidth {currentpoint stroke M 0 vshift R {ExtendTextBox} forall} def +/GRwidth {currentpoint stroke M dup Gwidth vshift R {ExtendTextBox} forall} def +/GCwidth {currentpoint stroke M dup Gwidth 2 div vshift R {ExtendTextBox} forall} def +/GLwidth2 {0 Gwidth AddGlyphWidth} def +/GRwidth2 {Gwidth -1 mul 0 AddGlyphWidth} def +/GCwidth2 {Gwidth 2 div dup -1 mul AddGlyphWidth} def +/AddGlyphWidth { dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse + dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse } def +/MFshow { + { dup 5 get 3 ge + { 5 get 3 eq {gsave} {grestore} ifelse } + {dup dup 0 get findfont exch 1 get scalefont setfont + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 + get exch 4 get {textshow} {Metrics pop 0 R} ifelse }if dup 5 get 0 eq + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 + get 1 eq {dup 2 get exch dup 3 get exch 6 get Gswidth pop -2 div + dup 0 R} {dup 6 get Gswidth pop -2 div 0 R 6 get + textshow 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop + pop aload pop M} ifelse }ifelse }ifelse } + ifelse } + forall} def +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def +/MLshow { currentpoint stroke M + 0 exch R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MRshow { currentpoint stroke M + exch dup MFwidth neg 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MCshow { currentpoint stroke M + exch dup MFwidth -2 div 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/XYsave { [( ) 1 2 true false 3 ()] } bind def +/XYrestore { [( ) 1 2 true false 4 ()] } bind def +Level1 SuppressPDFMark or +{} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (demo_filtre.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 5.2 patchlevel 2) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Fri May 18 19:34:59 2018) + /DOCINFO pdfmark +end +} ifelse +% +% Support for boxed text - Ethan A Merritt Sep 2016 +% +/InitTextBox { userdict /TBy2 3 -1 roll put userdict /TBx2 3 -1 roll put + userdict /TBy1 3 -1 roll put userdict /TBx1 3 -1 roll put + /Boxing true def } def +/ExtendTextBox { dup type /stringtype eq + { Boxing { gsave dup false charpath pathbbox + dup TBy2 gt {userdict /TBy2 3 -1 roll put} {pop} ifelse + dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse + dup TBy1 lt {userdict /TBy1 3 -1 roll put} {pop} ifelse + dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse + grestore } if } + {} ifelse} def +/PopTextBox { newpath TBx1 TBxmargin sub TBy1 TBymargin sub M + TBx1 TBxmargin sub TBy2 TBymargin add L + TBx2 TBxmargin add TBy2 TBymargin add L + TBx2 TBxmargin add TBy1 TBymargin sub L closepath } def +/DrawTextBox { PopTextBox stroke /Boxing false def} def +/FillTextBox { gsave PopTextBox fill grestore /Boxing false def} def +0 0 0 0 InitTextBox +/TBxmargin 20 def +/TBymargin 20 def +/Boxing false def +/textshow { ExtendTextBox Gshow } def +% +end +%%EndProlog +%%Page: 1 1 +gnudict begin +gsave +doclip +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 11520.00 8640.00 BoxColFill} if +gsave % colour palette begin +/maxcolors 64 def +/HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray + { /HSVs exch def /HSVv exch def 6.0 mul dup floor dup 3 1 roll sub + /HSVf exch def /HSVi exch cvi def /HSVp HSVv 1.0 HSVs sub mul def + /HSVq HSVv 1.0 HSVs HSVf mul sub mul def + /HSVt HSVv 1.0 HSVs 1.0 HSVf sub mul sub mul def + /HSVi HSVi 6 mod def 0 HSVi eq {HSVv HSVt HSVp} + {1 HSVi eq {HSVq HSVv HSVp}{2 HSVi eq {HSVp HSVv HSVt} + {3 HSVi eq {HSVp HSVq HSVv}{4 HSVi eq {HSVt HSVp HSVv} + {HSVv HSVp HSVq} ifelse} ifelse} ifelse} ifelse} ifelse + } ifelse} def +/Constrain { + dup 0 lt {0 exch pop}{dup 1 gt {1 exch pop} if} ifelse} def +/YIQ2RGB { + 3 copy -1.702 mul exch -1.105 mul add add Constrain 4 1 roll + 3 copy -0.647 mul exch -0.272 mul add add Constrain 5 1 roll + 0.621 mul exch -0.956 mul add add Constrain 3 1 roll } def +/CMY2RGB { 1 exch sub exch 1 exch sub 3 2 roll 1 exch sub 3 1 roll exch } def +/XYZ2RGB { 3 copy -0.9017 mul exch -0.1187 mul add exch 0.0585 mul exch add + Constrain 4 1 roll 3 copy -0.0279 mul exch 1.999 mul add exch + -0.9844 mul add Constrain 5 1 roll -0.2891 mul exch -0.5338 mul add + exch 1.91 mul exch add Constrain 3 1 roll} def +/SelectSpace {ColorSpace (HSV) eq {HSV2RGB}{ColorSpace (XYZ) eq { + XYZ2RGB}{ColorSpace (CMY) eq {CMY2RGB}{ColorSpace (YIQ) eq {YIQ2RGB} + if} ifelse} ifelse} ifelse} def +/InterpolatedColor true def +/grayindex {/gidx 0 def + {GrayA gidx get grayv ge {exit} if /gidx gidx 1 add def} loop} def +/dgdx {grayv GrayA gidx get sub GrayA gidx 1 sub get + GrayA gidx get sub div} def +/redvalue {RedA gidx get RedA gidx 1 sub get + RedA gidx get sub dgdxval mul add} def +/greenvalue {GreenA gidx get GreenA gidx 1 sub get + GreenA gidx get sub dgdxval mul add} def +/bluevalue {BlueA gidx get BlueA gidx 1 sub get + BlueA gidx get sub dgdxval mul add} def +/interpolate { + grayindex grayv GrayA gidx get sub abs 1e-5 le + {RedA gidx get GreenA gidx get BlueA gidx get} + {/dgdxval dgdx def redvalue greenvalue bluevalue} ifelse} def +/GrayA [0 .0159 .0317 .0476 .0635 .0794 .0952 .1111 .127 .1429 .1587 .1746 + .1905 .2063 .2222 .2381 .254 .2698 .2857 .3016 .3175 .3333 .3492 .3651 + .381 .3968 .4127 .4286 .4444 .4603 .4762 .4921 .5079 .5238 .5397 .5556 + .5714 .5873 .6032 .619 .6349 .6508 .6667 .6825 .6984 .7143 .7302 .746 + .7619 .7778 .7937 .8095 .8254 .8413 .8571 .873 .8889 .9048 .9206 .9365 + .9524 .9683 .9841 1 ] def +/RedA [.267 .2727 .2771 .2804 .2824 .2832 .2828 .2812 .2785 .2747 .27 .2644 + .258 .2511 .2437 .2361 .2283 .2204 .2127 .2051 .1977 .1906 .1838 .1773 + .171 .1648 .1588 .153 .1471 .1414 .1358 .1306 .1259 .1222 .1199 .1196 .122 + .1277 .1368 .1496 .166 .1855 .208 .2331 .2605 .29 .3213 .3544 .3889 .4249 + .4622 .5008 .5403 .5809 .6222 .6641 .7064 .7489 .7913 .8333 .8747 .9153 + .9548 .9932 ] def +/GreenA [.0049 .0258 .0509 .0742 .096 .1169 .1374 .1575 .1773 .197 .2163 + .2354 .2542 .2726 .2906 .3083 .3256 .3425 .3591 .3754 .3913 .4071 .4226 + .4379 .4531 .4681 .4831 .4981 .513 .5279 .5428 .5577 .5726 .5875 .6024 + .6173 .6321 .6469 .6616 .6761 .6905 .7047 .7187 .7324 .7458 .7588 .7715 + .7837 .7955 .8067 .8173 .8274 .8369 .8457 .8538 .8613 .8682 .8745 .8803 + .8858 .8909 .896 .901 .9062 ] def +/BlueA [.3294 .3534 .3762 .3979 .4183 .4372 .4546 .4704 .4847 .4973 .5083 + .5177 .5258 .5325 .5381 .5427 .5463 .5493 .5516 .5535 .555 .5561 .557 + .5576 .558 .5581 .5581 .5577 .557 .5559 .5543 .5522 .5494 .546 .5418 .5368 + .5308 .5239 .516 .5069 .4968 .4854 .4729 .4591 .4441 .4278 .4103 .3915 + .3714 .3501 .3275 .3038 .2789 .253 .2262 .1989 .1715 .145 .1213 .1033 + .0954 .1005 .1179 .1439 ] def +/pm3dround {maxcolors 0 gt {dup 1 ge + {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def +/pm3dGamma 1.0 1.5 Gamma mul div def +/ColorSpace (RGB) def +Color InterpolatedColor or { % COLOUR vs. GRAY map + InterpolatedColor { %% Interpolation vs. RGB-Formula + /g {stroke pm3dround /grayv exch def interpolate + SelectSpace setrgbcolor} bind def + }{ + /g {stroke pm3dround dup cF7 Constrain exch dup cF5 Constrain exch cF15 Constrain + SelectSpace setrgbcolor} bind def + } ifelse +}{ + /g {stroke pm3dround pm3dGamma exp setgray} bind def +} ifelse +1.000 UL +LTb +1.00 1.00 1.00 C 1.000 980 640 10178 7798 BoxColFill +1.000 UL +LTb +0.00 0.00 0.00 C 980 640 M +88 0 V +10091 0 R +-88 0 V +stroke +0.15 0.15 0.15 C 860 640 M +[ [(Helvetica) 200.0 0.0 true true 0 (-1)] +] -66.7 MRshow +1.000 UL +LTb +0.00 0.00 0.00 C 980 2590 M +88 0 V +10091 0 R +-88 0 V +stroke +0.15 0.15 0.15 C 860 2590 M +[ [(Helvetica) 200.0 0.0 true true 0 (-0.5)] +] -66.7 MRshow +1.000 UL +LTb +0.00 0.00 0.00 C 980 4540 M +88 0 V +10091 0 R +-88 0 V +stroke +0.15 0.15 0.15 C 860 4540 M +[ [(Helvetica) 200.0 0.0 true true 0 (0)] +] -66.7 MRshow +1.000 UL +LTb +0.00 0.00 0.00 C 980 6489 M +88 0 V +10091 0 R +-88 0 V +stroke +0.15 0.15 0.15 C 860 6489 M +[ [(Helvetica) 200.0 0.0 true true 0 (0.5)] +] -66.7 MRshow +1.000 UL +LTb +0.00 0.00 0.00 C 980 8439 M +88 0 V +10091 0 R +-88 0 V +stroke +0.15 0.15 0.15 C 860 8439 M +[ [(Helvetica) 200.0 0.0 true true 0 (1)] +] -66.7 MRshow +1.000 UL +LTb +0.00 0.00 0.00 C 980 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 980 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (0)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 2434 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 2434 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (20)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 3888 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 3888 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (40)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 5342 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 5342 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (60)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 6797 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 6797 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (80)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 8251 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 8251 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (100)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 9705 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 9705 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (120)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 11159 640 M +0 88 V +0 7711 R +0 -88 V +stroke +0.15 0.15 0.15 C 11159 440 M +[ [(Helvetica) 200.0 0.0 true true 0 (140)] +] -66.7 MCshow +1.000 UL +LTb +0.00 0.00 0.00 C 1.000 UP +1.000 UL +LTb +0.00 0.00 0.00 C 0.15 0.15 0.15 C 180 4539 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 290.0 0.0 true true 0 (normalized coef. value)] +] -73.3 MCshow +grestore +LTb +0.15 0.15 0.15 C 6069 140 M +[ [(Helvetica) 290.0 0.0 true true 0 (cofficient num)] +] -73.3 MCshow +LTb +1.000 UL +LTb +LCb setrgbcolor +7976 7376 N +0 1000 V +3063 0 V +0 -1000 V +-3063 0 V +Z stroke +% Begin plot #1 +2.000 UP +0.500 UL +LTb +0.00 0.45 0.74 C 0.00 0.00 0.00 C 8759 8126 M +[ [(Helvetica) 200.0 0.0 true true 0 (filter coefficients)] +] -66.7 MLshow +2.000 UP +0.500 UL +LTb +0.00 0.45 0.74 C 8096 8126 M +543 0 V +1053 4539 M +72 0 V +73 0 V +73 1 V +73 0 V +72 0 V +73 -1 V +73 -1 V +72 1 V +73 2 V +73 1 V +72 -2 V +73 -1 V +73 1 V +73 0 V +72 -6 V +73 -3 V +73 11 V +72 13 V +73 -2 V +73 -19 V +73 -10 V +72 10 V +73 6 V +73 -12 V +72 0 V +73 36 V +73 32 V +73 -35 V +72 -76 V +73 -19 V +73 63 V +72 49 V +73 -25 V +73 -14 V +72 67 V +73 36 V +73 -130 V +73 -176 V +72 35 V +73 242 V +73 137 V +72 -119 V +73 -123 V +73 77 V +73 36 V +72 -270 V +73 -263 V +73 275 V +72 633 V +73 175 V +73 -536 V +72 -480 V +73 161 V +73 224 V +73 -405 V +72 -334 V +73 960 V +73 1624 V +72 -110 V +73 -2640 V +73 -2385 V +73 1150 V +72 3880 V +73 2159 V +73 -2159 V +72 -3880 V +73 -1150 V +73 2385 V +73 2640 V +72 110 V +73 -1624 V +73 -960 V +72 334 V +73 405 V +73 -224 V +72 -161 V +73 480 V +73 536 V +73 -175 V +72 -633 V +73 -275 V +73 263 V +72 270 V +73 -36 V +73 -77 V +73 123 V +72 119 V +73 -137 V +73 -242 V +72 -35 V +73 176 V +73 130 V +72 -36 V +73 -67 V +73 14 V +73 25 V +72 -49 V +73 -63 V +73 19 V +72 76 V +73 35 V +73 -32 V +73 -36 V +72 0 V +73 12 V +73 -6 V +72 -10 V +73 10 V +73 19 V +72 2 V +73 -13 V +73 -11 V +73 3 V +72 6 V +73 0 V +73 -1 V +72 1 V +73 2 V +73 -1 V +73 -2 V +72 -1 V +73 1 V +73 1 V +72 0 V +73 0 V +73 -1 V +73 0 V +72 0 V +8368 8126 Pnt +% End plot #1 +% Begin plot #2 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 0.00 0.00 0.00 C 8759 7626 M +[ [(Helvetica) 200.0 0.0 true true 0 (6 bit quantization)] +] -66.7 MLshow +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1053 4540 CircleF +8368 7626 CircleF +% End plot #2 +% Begin plot #3 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1125 4540 CircleF +% End plot #3 +% Begin plot #4 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1198 4540 CircleF +% End plot #4 +% Begin plot #5 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1271 4540 CircleF +% End plot #5 +% Begin plot #6 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1344 4540 CircleF +% End plot #6 +% Begin plot #7 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1416 4540 CircleF +% End plot #7 +% Begin plot #8 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1489 4540 CircleF +% End plot #8 +% Begin plot #9 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1562 4540 CircleF +% End plot #9 +% Begin plot #10 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1634 4540 CircleF +% End plot #10 +% Begin plot #11 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1707 4540 CircleF +% End plot #11 +% Begin plot #12 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1780 4540 CircleF +% End plot #12 +% Begin plot #13 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1852 4540 CircleF +% End plot #13 +% Begin plot #14 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1925 4540 CircleF +% End plot #14 +% Begin plot #15 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 1998 4540 CircleF +% End plot #15 +% Begin plot #16 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2071 4540 CircleF +% End plot #16 +% Begin plot #17 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2143 4540 CircleF +% End plot #17 +% Begin plot #18 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2216 4540 CircleF +% End plot #18 +% Begin plot #19 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2289 4540 CircleF +% End plot #19 +% Begin plot #20 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2361 4540 CircleF +% End plot #20 +% Begin plot #21 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2434 4540 CircleF +% End plot #21 +% Begin plot #22 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2507 4540 CircleF +% End plot #22 +% Begin plot #23 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2580 4540 CircleF +% End plot #23 +% Begin plot #24 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2652 4540 CircleF +% End plot #24 +% Begin plot #25 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2725 4540 CircleF +% End plot #25 +% Begin plot #26 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2798 4540 CircleF +% End plot #26 +% Begin plot #27 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2870 4540 CircleF +% End plot #27 +% Begin plot #28 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 2943 4540 CircleF +% End plot #28 +% Begin plot #29 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3016 4540 CircleF +% End plot #29 +% Begin plot #30 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3089 4540 CircleF +% End plot #30 +% Begin plot #31 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3161 4540 CircleF +% End plot #31 +% Begin plot #32 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3307 4540 CircleF +% End plot #32 +% Begin plot #33 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3379 4540 CircleF +% End plot #33 +% Begin plot #34 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3452 4540 CircleF +% End plot #34 +% Begin plot #35 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3525 4540 CircleF +% End plot #35 +% Begin plot #36 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 3743 4540 CircleF +% End plot #36 +% Begin plot #37 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 4179 4540 CircleF +% End plot #37 +% Begin plot #38 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 4252 4540 CircleF +% End plot #38 +% Begin plot #39 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 4979 4540 CircleF +% End plot #39 +% Begin plot #40 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 6433 4540 CircleF +% End plot #40 +% Begin plot #41 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 7160 4540 CircleF +% End plot #41 +% Begin plot #42 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 7233 4540 CircleF +% End plot #42 +% Begin plot #43 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 7669 4540 CircleF +% End plot #43 +% Begin plot #44 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 7887 4540 CircleF +% End plot #44 +% Begin plot #45 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 7960 4540 CircleF +% End plot #45 +% Begin plot #46 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8033 4540 CircleF +% End plot #46 +% Begin plot #47 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8105 4540 CircleF +% End plot #47 +% Begin plot #48 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8251 4540 CircleF +% End plot #48 +% Begin plot #49 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8323 4540 CircleF +% End plot #49 +% Begin plot #50 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8396 4540 CircleF +% End plot #50 +% Begin plot #51 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8469 4540 CircleF +% End plot #51 +% Begin plot #52 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8542 4540 CircleF +% End plot #52 +% Begin plot #53 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8614 4540 CircleF +% End plot #53 +% Begin plot #54 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8687 4540 CircleF +% End plot #54 +% Begin plot #55 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8760 4540 CircleF +% End plot #55 +% Begin plot #56 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8832 4540 CircleF +% End plot #56 +% Begin plot #57 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8905 4540 CircleF +% End plot #57 +% Begin plot #58 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 8978 4540 CircleF +% End plot #58 +% Begin plot #59 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9050 4540 CircleF +% End plot #59 +% Begin plot #60 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9123 4540 CircleF +% End plot #60 +% Begin plot #61 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9196 4540 CircleF +% End plot #61 +% Begin plot #62 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9269 4540 CircleF +% End plot #62 +% Begin plot #63 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9341 4540 CircleF +% End plot #63 +% Begin plot #64 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9414 4540 CircleF +% End plot #64 +% Begin plot #65 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9487 4540 CircleF +% End plot #65 +% Begin plot #66 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9559 4540 CircleF +% End plot #66 +% Begin plot #67 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9632 4540 CircleF +% End plot #67 +% Begin plot #68 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9705 4540 CircleF +% End plot #68 +% Begin plot #69 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9778 4540 CircleF +% End plot #69 +% Begin plot #70 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9850 4540 CircleF +% End plot #70 +% Begin plot #71 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9923 4540 CircleF +% End plot #71 +% Begin plot #72 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 9996 4540 CircleF +% End plot #72 +% Begin plot #73 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 10068 4540 CircleF +% End plot #73 +% Begin plot #74 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 10141 4540 CircleF +% End plot #74 +% Begin plot #75 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 10214 4540 CircleF +% End plot #75 +% Begin plot #76 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 10287 4540 CircleF +% End plot #76 +% Begin plot #77 +0.667 UP +0.500 UL +LTb +1.00 0.00 0.00 C 10359 4540 CircleF +% End plot #77 +% Begin plot #78 +2.000 UP +0.500 UL +LTb +0.00 0.00 0.00 C 1053 4600 M +9234 0 V +% End plot #78 +% Begin plot #79 +2.000 UP +stroke +LTb +0.00 0.00 0.00 C 1053 4479 M +9234 0 V +% End plot #79 +% Begin plot #80 +2.000 UP +stroke +LTb +0.00 0.00 0.00 C 980 4929 M +2181 0 V +% End plot #80 +% Begin plot #81 +2.000 UP +stroke +LTb +0.00 0.00 0.00 C 8105 4929 M +2182 0 V +% End plot #81 +stroke +2.000 UL +LTb +LCb setrgbcolor +1.000 UP +0.00 0.00 0.00 C 1707 5124 M +[ [(Helvetica) 200.0 0.0 true true 0 (30 coefs at 0)] +] -66.7 MLshow +0.00 0.00 0.00 C 8978 5124 M +[ [(Helvetica) 200.0 0.0 true true 0 (30 coefs at 0)] +] -66.7 MLshow +0.500 UL +[] 0 setdash +PL 0.15 0.15 0.15 C 980 640 M +10179 0 V +stroke +[] 0 setdash +0.15 0.15 0.15 C 980 8439 M +10179 0 V +stroke +[] 0 setdash +0.15 0.15 0.15 C 980 640 M +0 7799 V +stroke +[] 0 setdash +0.15 0.15 0.15 C 11159 640 M +0 7799 V +stroke +1.000 UL +LTb +0.00 0.00 0.00 C grestore % colour palette end +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/images/demo_filtre.m b/images/demo_filtre.m new file mode 100644 index 0000000..3adae6d --- /dev/null +++ b/images/demo_filtre.m @@ -0,0 +1,22 @@ +pkg load signal +close all +clear all + +d=firls(128,[0 .2 .3 .4 .5 1],[0 0 1 1 0 0]); +d=d/max(d); +plot(d) +N=6; +k=find(abs(d)<2^(-N)) +hold on +plot(k,0,'r.') +line([1 128],[2^(-N) 2^(-N)]) +line([1 128],[-2^(-N) -2^(-N)]) +legend('filter coefficients',[num2str(N),' bit quantization']) +kk=find(diff(k)>1); +k(kk(1)) +k(kk(end)) +xlabel('cofficient num');ylabel('normalized coef. value') +line([0 k(kk(1))],[0.1 0.1]) +line([k(kk(end)) 128],[0.1 0.1]) +text(10,0.15,'30 coefs at 0') +text(110,0.15,'30 coefs at 0') diff --git a/images/demo_filtre.pdf b/images/demo_filtre.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aa764a9bf6858c01257bddbb033fde4299c36d91 GIT binary patch literal 9933 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 XABBn`Q@0Bw2_QZoUS4Hw70`bHD{L{I literal 0 HcmV?d00001