Commit ee2ff04c6201ec2798d6445f20b53fc3c30cca66
1 parent
76ebb20ed4
Exists in
master
illustration quantification
Showing 4 changed files with 1464 additions and 0 deletions Inline Diff
ifcs2018_proceeding.tex
| \documentclass[a4paper,conference]{IEEEtran/IEEEtran} | 1 | 1 | \documentclass[a4paper,conference]{IEEEtran/IEEEtran} | |
| \usepackage{graphicx,color,hyperref} | 2 | 2 | \usepackage{graphicx,color,hyperref} | |
| \usepackage{amsfonts} | 3 | 3 | \usepackage{amsfonts} | |
| \usepackage{url} | 4 | 4 | \usepackage{url} | |
| \usepackage[normalem]{ulem} | 5 | 5 | \usepackage[normalem]{ulem} | |
| \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} | 6 | 6 | \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} | |
| % correct bad hyphenation here | 7 | 7 | % correct bad hyphenation here | |
| \hyphenation{op-tical net-works semi-conduc-tor} | 8 | 8 | \hyphenation{op-tical net-works semi-conduc-tor} | |
| \textheight=26cm | 9 | 9 | \textheight=26cm | |
| \setlength{\footskip}{30pt} | 10 | 10 | \setlength{\footskip}{30pt} | |
| \pagenumbering{gobble} | 11 | 11 | \pagenumbering{gobble} | |
| \begin{document} | 12 | 12 | \begin{document} | |
| \title{Filter optimization for real time digital processing of radiofrequency signals: application | 13 | 13 | \title{Filter optimization for real time digital processing of radiofrequency signals: application | |
| to oscillator metrology} | 14 | 14 | to oscillator metrology} | |
| 15 | 15 | |||
| \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, | 16 | 16 | \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, | |
| G. Goavec-M\'erou\IEEEauthorrefmark{1}, | 17 | 17 | G. Goavec-M\'erou\IEEEauthorrefmark{1}, | |
| P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M. Friedt\IEEEauthorrefmark{1}} | 18 | 18 | P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M. Friedt\IEEEauthorrefmark{1}} | |
| \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } | 19 | 19 | \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } | |
| \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ | 20 | 20 | \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ | |
| Email: \{pyb2,jmfriedt\}@femto-st.fr} | 21 | 21 | Email: \{pyb2,jmfriedt\}@femto-st.fr} | |
| } | 22 | 22 | } | |
| \maketitle | 23 | 23 | \maketitle | |
| \thispagestyle{plain} | 24 | 24 | \thispagestyle{plain} | |
| \pagestyle{plain} | 25 | 25 | \pagestyle{plain} | |
| 26 | 26 | |||
| \begin{abstract} | 27 | 27 | \begin{abstract} | |
| Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to | 28 | 28 | Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to | |
| radiofrequency signal processing. Applied to oscillator characterization in the context | 29 | 29 | radiofrequency signal processing. Applied to oscillator characterization in the context | |
| of ultrastable clocks, stringent filtering requirements are defined by spurious signal or | 30 | 30 | of ultrastable clocks, stringent filtering requirements are defined by spurious signal or | |
| noise rejection needs. Since real time radiofrequency processing must be performed in a | 31 | 31 | noise rejection needs. Since real time radiofrequency processing must be performed in a | |
| Field Programmable Array to meet timing constraints, we investigate optimization strategies | 32 | 32 | Field Programmable Array to meet timing constraints, we investigate optimization strategies | |
| to design filters meeting rejection characteristics while limiting the hardware resources | 33 | 33 | to design filters meeting rejection characteristics while limiting the hardware resources | |
| required and keeping timing constraints within the targeted measurement bandwidths. | 34 | 34 | required and keeping timing constraints within the targeted measurement bandwidths. | |
| \end{abstract} | 35 | 35 | \end{abstract} | |
| 36 | 36 | |||
| \begin{IEEEkeywords} | 37 | 37 | \begin{IEEEkeywords} | |
| Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter | 38 | 38 | Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter | |
| \end{IEEEkeywords} | 39 | 39 | \end{IEEEkeywords} | |
| 40 | 40 | |||
| \section{Digital signal processing of ultrastable clock signals} | 41 | 41 | \section{Digital signal processing of ultrastable clock signals} | |
| 42 | 42 | |||
| Analog oscillator phase noise characteristics are classically performed by downconverting | 43 | 43 | Analog oscillator phase noise characteristics are classically performed by downconverting | |
| the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, | 44 | 44 | the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, | |
| followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In | 45 | 45 | followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In | |
| a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by | 46 | 46 | a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by | |
| multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. | 47 | 47 | multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. | |
| 48 | 48 | |||
| \begin{figure}[h!tb] | 49 | 49 | \begin{figure}[h!tb] | |
| \begin{center} | 50 | 50 | \begin{center} | |
| \includegraphics[width=.8\linewidth]{images/schema} | 51 | 51 | \includegraphics[width=.8\linewidth]{images/schema} | |
| \end{center} | 52 | 52 | \end{center} | |
| \caption{Fully digital oscillator phase noise characterization: the Device Under Test | 53 | 53 | \caption{Fully digital oscillator phase noise characterization: the Device Under Test | |
| (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and | 54 | 54 | (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and | |
| downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals | 55 | 55 | downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals | |
| and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite | 56 | 56 | and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite | |
| Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays | 57 | 57 | Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays | |
| the spectral characteristics of the phase fluctuations.} | 58 | 58 | the spectral characteristics of the phase fluctuations.} | |
| \label{schema} | 59 | 59 | \label{schema} | |
| \end{figure} | 60 | 60 | \end{figure} | |
| 61 | 61 | |||
| As with the analog mixer, | 62 | 62 | As with the analog mixer, | |
| the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as | 63 | 63 | the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as | |
| well as the generation of the frequency sum signal in addition to the frequency difference. | 64 | 64 | well as the generation of the frequency sum signal in addition to the frequency difference. | |
| These unwanted spectral characteristics must be rejected before decimating the data stream | 65 | 65 | These unwanted spectral characteristics must be rejected before decimating the data stream | |
| for the phase noise spectral characterization. The characteristics introduced between the downconverter | 66 | 66 | for the phase noise spectral characterization. The characteristics introduced between the downconverter | |
| and the decimation processing blocks are core characteristics of an oscillator characterization | 67 | 67 | and the decimation processing blocks are core characteristics of an oscillator characterization | |
| system, and must reject out-of-band signals below the targeted phase noise -- typically in the | 68 | 68 | system, and must reject out-of-band signals below the targeted phase noise -- typically in the | |
| sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will | 69 | 69 | sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will | |
| use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency | 70 | 70 | use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency | |
| datastream: optimizing the performance of the filter while reducing the needed resources is | 71 | 71 | datastream: optimizing the performance of the filter while reducing the needed resources is | |
| hence tackled in a systematic approach using optimization techniques. Most significantly, we | 72 | 72 | hence tackled in a systematic approach using optimization techniques. Most significantly, we | |
| tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with | 73 | 73 | tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with | |
| tunable number of coefficients and tunable number of bits representing the coefficients and the | 74 | 74 | tunable number of coefficients and tunable number of bits representing the coefficients and the | |
| data being processed. | 75 | 75 | data being processed. | |
| 76 | 76 | |||
| \section{Finite impulse response filter} | 77 | 77 | \section{Finite impulse response filter} | |
| 78 | 78 | |||
| We select FIR filter for their unconditional stability and ease of design. A FIR filter is defined | 79 | 79 | We select FIR filter for their unconditional stability and ease of design. A FIR filter is defined | |
| by a set of weights $b_k$ applied to the inputs $x_k$ through a convolution to generate the outputs $y_k$ | 80 | 80 | by a set of weights $b_k$ applied to the inputs $x_k$ through a convolution to generate the outputs $y_k$ | |
| $$y_n=\sum_{k=0}^N b_k x_{n-k}$$ | 81 | 81 | $$y_n=\sum_{k=0}^N b_k x_{n-k}$$ | |
| 82 | 82 | |||
| As opposed to an implementation on a general purpose processor in which word size is defined by the | 83 | 83 | As opposed to an implementation on a general purpose processor in which word size is defined by the | |
| processor architecture, implementing such a filter on an FPGA offer more degrees of freedom since | 84 | 84 | processor architecture, implementing such a filter on an FPGA offer more degrees of freedom since | |
| not only the coefficient values and number of taps must be defined, but also the number of bits defining | 85 | 85 | not only the coefficient values and number of taps must be defined, but also the number of bits defining | |
| the coefficients and the sample size. | 86 | 86 | the coefficients and the sample size. | |
| 87 | 87 | |||
| The coefficients are classically expressed as floating point values. However, this binary | 88 | 88 | The coefficients are classically expressed as floating point values. However, this binary | |
| number representation is not efficient for fast arithmetic computation by an FPGA. Instead, | 89 | 89 | number representation is not efficient for fast arithmetic computation by an FPGA. Instead, | |
| we select to quantify these floating point values into integer values. This quantization | 90 | 90 | we select to quantify these floating point values into integer values. This quantization | |
| will result in some precision loss. As illustrated in Fig. \ref{float_vs_int}, we see that we aren't | 91 | 91 | will result in some precision loss. As illustrated in Fig. \ref{float_vs_int}, we see that we aren't | |
| need too coefficients or too sample size. If we have lot of coefficients but a small sample size, | 92 | 92 | need too coefficients or too sample size. If we have lot of coefficients but a small sample size, | |
| the first and last are equal to zero. But if we have too sample size for few coefficients that not improve the quality. | 93 | 93 | the first and last are equal to zero. But if we have too sample size for few coefficients that not improve the quality. | |
| 94 | 94 | |||
| % JMF je ne comprends pas la derniere phrase ci-dessus ni la figure ci dessous | 95 | 95 | % JMF je ne comprends pas la derniere phrase ci-dessus ni la figure ci dessous | |
| \begin{figure}[h!tb] | 96 | 96 | \begin{figure}[h!tb] | |
| \includegraphics[width=\linewidth]{images/float-vs-integer.pdf} | 97 | 97 | \includegraphics[width=\linewidth]{images/float-vs-integer.pdf} | |
| \caption{Impact of the quantization resolution of the coefficients} | 98 | 98 | \caption{Impact of the quantization resolution of the coefficients} | |
| 99 | %\label{float_vs_int} | |||
| 100 | \end{figure} | |||
| 101 | ||||
| 102 | \begin{figure}[h!tb] | |||
| 103 | \includegraphics[width=\linewidth]{images/demo_filtre} | |||
| 104 | \caption{Impact of the quantization resolution of the coefficients: the quantization is | |||
| 105 | set to 6~bits, setting the 30~first and 30~last coefficients out of the initial 128~band-pass | |||
| 106 | filter coefficients to 0.} | |||
| \label{float_vs_int} | 99 | 107 | \label{float_vs_int} | |
| \end{figure} | 100 | 108 | \end{figure} | |
| 109 | ||||
| 101 | 110 | |||
| \section{Filter optimization} | 102 | 111 | \section{Filter optimization} | |
| 103 | 112 | |||
| A basic approach for implementing the FIR filter is to compute the transfer function of | 104 | 113 | A basic approach for implementing the FIR filter is to compute the transfer function of | |
| a monolithic filter: this single filter defines all coefficients with the same resolution | 105 | 114 | a monolithic filter: this single filter defines all coefficients with the same resolution | |
| (number of bits) and processes data represented with their own resolution. Meeting the | 106 | 115 | (number of bits) and processes data represented with their own resolution. Meeting the | |
| filter shape requires a large number of coefficients, limited by resources of the FPGA since | 107 | 116 | filter shape requires a large number of coefficients, limited by resources of the FPGA since | |
| this filter must process data stream at the radiofrequency sampling rate after the mixer. | 108 | 117 | this filter must process data stream at the radiofrequency sampling rate after the mixer. | |
| 109 | 118 | |||
| An optimization problem \cite{leung2004handbook} aims at improving one or many | 110 | 119 | An optimization problem \cite{leung2004handbook} aims at improving one or many | |
| performance criteria within a constrained resource environment. Amongst the tools | 111 | 120 | performance criteria within a constrained resource environment. Amongst the tools | |
| developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to | 112 | 121 | developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to | |
| provide a formal definition of the stated problem and search for an optimal use of available | 113 | 122 | provide a formal definition of the stated problem and search for an optimal use of available | |
| resources \cite{yu2007design, kodek1980design}. | 114 | 123 | resources \cite{yu2007design, kodek1980design}. | |
| 115 | 124 | |||
| The degrees of freedom when addressing the problem of replacing the single monolithic | 116 | 125 | The degrees of freedom when addressing the problem of replacing the single monolithic | |
| FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, | 117 | 126 | FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, | |
| the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing | 118 | 127 | the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing | |
| the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, | 119 | 128 | the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, | |
| the optimization of the complete processing chain within a constrained resource environment is not | 120 | 129 | the optimization of the complete processing chain within a constrained resource environment is not | |
| trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is | 121 | 130 | trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is | |
| the number of bits needed in a worst case condition to represent the output of the FIR. | 122 | 131 | the number of bits needed in a worst case condition to represent the output of the FIR. | |
| 123 | 132 | |||
| 124 | 133 | |||
| \begin{figure}[h!tb] | 125 | 134 | \begin{figure}[h!tb] | |
| \includegraphics[width=\linewidth]{images/noise-rejection.pdf} | 126 | 135 | \includegraphics[width=\linewidth]{images/noise-rejection.pdf} | |
| \caption{Rejection as a function of number of coefficients and number of bits} | 127 | 136 | \caption{Rejection as a function of number of coefficients and number of bits} | |
| \label{noise-rejection} | 128 | 137 | \label{noise-rejection} | |
| \end{figure} | 129 | 138 | \end{figure} | |
| 130 | 139 | |||
| The objective function maximizes the noise rejection while keeping resource occupation below | 131 | 140 | The objective function maximizes the noise rejection while keeping resource occupation below | |
| a user-defined threshold. The MILP solver is allowed to choose the number of successive | 132 | 141 | a user-defined threshold. The MILP solver is allowed to choose the number of successive | |
| filters, within an upper bound. The last problem is to model the noise rejection. Since filter | 133 | 142 | filters, within an upper bound. The last problem is to model the noise rejection. Since filter | |
| noise rejection capability is not modeled with linear equation, a look-up-table is generated | 134 | 143 | noise rejection capability is not modeled with linear equation, a look-up-table is generated | |
| for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each | 135 | 144 | for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each | |
| one of these conditions, the low-pass filter rejection defined as the mean power between | 136 | 145 | one of these conditions, the low-pass filter rejection defined as the mean power between | |
| half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response | 137 | 146 | half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response | |
| of the digital filter (Fig. \ref{noise-rejection}). | 138 | 147 | of the digital filter (Fig. \ref{noise-rejection}). | |
| 139 | 148 | |||
| Linear program formalism for solving the problem is well documented: an objective function is | 140 | 149 | Linear program formalism for solving the problem is well documented: an objective function is | |
| defined which is linearly dependent on the parameters to be optimized. Constraints are expressed | 141 | 150 | defined which is linearly dependent on the parameters to be optimized. Constraints are expressed | |
| as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. | 142 | 151 | as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. | |
| 143 | 152 | |||
| The MILP solver provides a solution to the problem by selecting a series of small FIR with | 144 | 153 | The MILP solver provides a solution to the problem by selecting a series of small FIR with | |
| increasing number of bits representing data and coefficients as well as an increasing number | 145 | 154 | increasing number of bits representing data and coefficients as well as an increasing number | |
| of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the | 146 | 155 | of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the | |
| performance comparison between one solution and a monolithic FIR when selecting a cutoff | 147 | 156 | performance comparison between one solution and a monolithic FIR when selecting a cutoff | |
| frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the | 148 | 157 | frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the | |
| same space usage are provided as selected by the MILP solver. The FIR cascade provides improved | 149 | 158 | same space usage are provided as selected by the MILP solver. The FIR cascade provides improved | |
| rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to | 150 | 159 | rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to | |
| be tuned or compensated for. | 151 | 160 | be tuned or compensated for. | |
| 152 | 161 | |||
| \begin{figure}[h!tb] | 153 | 162 | \begin{figure}[h!tb] | |
| % \includegraphics[width=\linewidth]{images/compare-fir.pdf} | 154 | 163 | % \includegraphics[width=\linewidth]{images/compare-fir.pdf} | |
| \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} | 155 | 164 | \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} | |
| \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR | 156 | 165 | \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR | |
| with a cutoff frequency set at half the Nyquist frequency.} | 157 | 166 | with a cutoff frequency set at half the Nyquist frequency.} | |
| \label{compare-fir} | 158 | 167 | \label{compare-fir} | |
| \end{figure} | 159 | 168 | \end{figure} | |
| 160 | 169 | |||
| The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. | 161 | 170 | The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. | |
| 162 | 171 | |||
| \begin{table}[h!tb] | 163 | 172 | \begin{table}[h!tb] | |
| \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade | 164 | 173 | \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade | |
| identified as optimal by the MILP solver within a finite resource criterion. The last line refers | 165 | 174 | identified as optimal by the MILP solver within a finite resource criterion. The last line refers | |
| to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean | 166 | 175 | to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean | |
| value from 0.6 to 1 Nyquist frequency.} | 167 | 176 | value from 0.6 to 1 Nyquist frequency.} | |
| \begin{center} | 168 | 177 | \begin{center} | |
| \begin{tabular}{|c|cccc|}\hline | 169 | 178 | \begin{tabular}{|c|cccc|}\hline | |
| FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline | 170 | 179 | FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline | |
| 1 (monolithic) & 1 & 4064 & 40 & -72 \\ | 171 | 180 | 1 (monolithic) & 1 & 4064 & 40 & -72 \\ | |
| 5 & 5 & 12332 & 0 & -217 \\ | 172 | 181 | 5 & 5 & 12332 & 0 & -217 \\ | |
| 10 & 10 & 12717 & 0 & -251 \\\hline\hline | 173 | 182 | 10 & 10 & 12717 & 0 & -251 \\\hline\hline | |
| Zynq 7010 & 60 & 17600 & 80 & \\\hline | 174 | 183 | Zynq 7010 & 60 & 17600 & 80 & \\\hline | |
| \end{tabular} | 175 | 184 | \end{tabular} | |
| \end{center} | 176 | 185 | \end{center} | |
| %\vspace{-0.7cm} | 177 | 186 | %\vspace{-0.7cm} | |
| \label{t1} | 178 | 187 | \label{t1} | |
| \end{table} | 179 | 188 | \end{table} | |
| 180 | 189 | |||
| \section{Filter coefficient selection} | 181 | 190 | \section{Filter coefficient selection} | |
| 182 | 191 | |||
| The coefficients of a single monolithic filter are computed as the impulse response | 183 | 192 | The coefficients of a single monolithic filter are computed as the impulse response | |
| of the filter transfer function, and practically approximated by a multitude of methods | 184 | 193 | of the filter transfer function, and practically approximated by a multitude of methods | |
| including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing | 185 | 194 | including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing | |
| (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by | 186 | 195 | (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by | |
| selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} | 187 | 196 | selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} | |
| illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better | 188 | 197 | illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better | |
| rejection than {\tt firls}: since the linear solver increases the number of coefficients along | 189 | 198 | rejection than {\tt firls}: since the linear solver increases the number of coefficients along | |
| the processing chain, the type of selected filter also changes depending on the number of coefficients | 190 | 199 | the processing chain, the type of selected filter also changes depending on the number of coefficients |
images/demo_filtre.eps
| File was created | 1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
| 2 | %%Title: demo_filtre.eps | |||
| 3 | %%Creator: gnuplot 5.2 patchlevel 2 | |||
| 4 | %%CreationDate: Fri May 18 19:34:59 2018 | |||
| 5 | %%DocumentFonts: (atend) | |||
| 6 | %%BoundingBox: 50 50 626 482 | |||
| 7 | %%EndComments | |||
| 8 | %%BeginProlog | |||
| 9 | /gnudict 256 dict def | |||
| 10 | gnudict begin | |||
| 11 | % | |||
| 12 | % The following true/false flags may be edited by hand if desired. | |||
| 13 | % The unit line width and grayscale image gamma correction may also be changed. | |||
| 14 | % | |||
| 15 | /Color true def | |||
| 16 | /Blacktext false def | |||
| 17 | /Solid false def | |||
| 18 | /Dashlength 2 def | |||
| 19 | /Landscape false def | |||
| 20 | /Level1 true def | |||
| 21 | /Level3 false def | |||
| 22 | /Rounded false def | |||
| 23 | /ClipToBoundingBox false def | |||
| 24 | /SuppressPDFMark false def | |||
| 25 | /TransparentPatterns false def | |||
| 26 | /gnulinewidth 5.000 def | |||
| 27 | /userlinewidth gnulinewidth def | |||
| 28 | /Gamma 1.0 def | |||
| 29 | /BackgroundColor {1.000 1.000 1.000} def | |||
| 30 | % | |||
| 31 | /vshift -66 def | |||
| 32 | /dl1 { | |||
| 33 | 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul | |||
| 34 | Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if | |||
| 35 | } def | |||
| 36 | /dl2 { | |||
| 37 | 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul | |||
| 38 | Rounded { currentlinewidth 0.75 mul add } if | |||
| 39 | } def | |||
| 40 | /hpt_ 31.5 def | |||
| 41 | /vpt_ 31.5 def | |||
| 42 | /hpt hpt_ def | |||
| 43 | /vpt vpt_ def | |||
| 44 | /doclip { | |||
| 45 | ClipToBoundingBox { | |||
| 46 | newpath 50 50 moveto 626 50 lineto 626 482 lineto 50 482 lineto closepath | |||
| 47 | clip | |||
| 48 | } if | |||
| 49 | } def | |||
| 50 | % | |||
| 51 | % Gnuplot Prolog Version 5.1 (Oct 2015) | |||
| 52 | % | |||
| 53 | %/SuppressPDFMark true def | |||
| 54 | % | |||
| 55 | /M {moveto} bind def | |||
| 56 | /L {lineto} bind def | |||
| 57 | /R {rmoveto} bind def | |||
| 58 | /V {rlineto} bind def | |||
| 59 | /N {newpath moveto} bind def | |||
| 60 | /Z {closepath} bind def | |||
| 61 | /C {setrgbcolor} bind def | |||
| 62 | /f {rlineto fill} bind def | |||
| 63 | /g {setgray} bind def | |||
| 64 | /Gshow {show} def % May be redefined later in the file to support UTF-8 | |||
| 65 | /vpt2 vpt 2 mul def | |||
| 66 | /hpt2 hpt 2 mul def | |||
| 67 | /Lshow {currentpoint stroke M 0 vshift R | |||
| 68 | Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def | |||
| 69 | /Rshow {currentpoint stroke M dup stringwidth pop neg vshift R | |||
| 70 | Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def | |||
| 71 | /Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R | |||
| 72 | Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def | |||
| 73 | /UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def | |||
| 74 | /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def | |||
| 75 | /DL {Color {setrgbcolor Solid {pop []} if 0 setdash} | |||
| 76 | {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def | |||
| 77 | /BL {stroke userlinewidth 2 mul setlinewidth | |||
| 78 | Rounded {1 setlinejoin 1 setlinecap} if} def | |||
| 79 | /AL {stroke userlinewidth 2 div setlinewidth | |||
| 80 | Rounded {1 setlinejoin 1 setlinecap} if} def | |||
| 81 | /UL {dup gnulinewidth mul /userlinewidth exch def | |||
| 82 | dup 1 lt {pop 1} if 10 mul /udl exch def} def | |||
| 83 | /PL {stroke userlinewidth setlinewidth | |||
| 84 | Rounded {1 setlinejoin 1 setlinecap} if} def | |||
| 85 | 3.8 setmiterlimit | |||
| 86 | % Classic Line colors (version 5.0) | |||
| 87 | /LCw {1 1 1} def | |||
| 88 | /LCb {0 0 0} def | |||
| 89 | /LCa {0 0 0} def | |||
| 90 | /LC0 {1 0 0} def | |||
| 91 | /LC1 {0 1 0} def | |||
| 92 | /LC2 {0 0 1} def | |||
| 93 | /LC3 {1 0 1} def | |||
| 94 | /LC4 {0 1 1} def | |||
| 95 | /LC5 {1 1 0} def | |||
| 96 | /LC6 {0 0 0} def | |||
| 97 | /LC7 {1 0.3 0} def | |||
| 98 | /LC8 {0.5 0.5 0.5} def | |||
| 99 | % Default dash patterns (version 5.0) | |||
| 100 | /LTB {BL [] LCb DL} def | |||
| 101 | /LTw {PL [] 1 setgray} def | |||
| 102 | /LTb {PL [] LCb DL} def | |||
| 103 | /LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def | |||
| 104 | /LT0 {PL [] LC0 DL} def | |||
| 105 | /LT1 {PL [2 dl1 3 dl2] LC1 DL} def | |||
| 106 | /LT2 {PL [1 dl1 1.5 dl2] LC2 DL} def | |||
| 107 | /LT3 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC3 DL} def | |||
| 108 | /LT4 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def | |||
| 109 | /LT5 {PL [4 dl1 2 dl2] LC5 DL} def | |||
| 110 | /LT6 {PL [1.5 dl1 1.5 dl2 1.5 dl1 1.5 dl2 1.5 dl1 6 dl2] LC6 DL} def | |||
| 111 | /LT7 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC7 DL} def | |||
| 112 | /LT8 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC8 DL} def | |||
| 113 | /SL {[] 0 setdash} def | |||
| 114 | /Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def | |||
| 115 | /Dia {stroke [] 0 setdash 2 copy vpt add M | |||
| 116 | hpt neg vpt neg V hpt vpt neg V | |||
| 117 | hpt vpt V hpt neg vpt V closepath stroke | |||
| 118 | Pnt} def | |||
| 119 | /Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V | |||
| 120 | currentpoint stroke M | |||
| 121 | hpt neg vpt neg R hpt2 0 V stroke | |||
| 122 | } def | |||
| 123 | /Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M | |||
| 124 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | |||
| 125 | hpt2 neg 0 V closepath stroke | |||
| 126 | Pnt} def | |||
| 127 | /Crs {stroke [] 0 setdash exch hpt sub exch vpt add M | |||
| 128 | hpt2 vpt2 neg V currentpoint stroke M | |||
| 129 | hpt2 neg 0 R hpt2 vpt2 V stroke} def | |||
| 130 | /TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M | |||
| 131 | hpt neg vpt -1.62 mul V | |||
| 132 | hpt 2 mul 0 V | |||
| 133 | hpt neg vpt 1.62 mul V closepath stroke | |||
| 134 | Pnt} def | |||
| 135 | /Star {2 copy Pls Crs} def | |||
| 136 | /BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M | |||
| 137 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | |||
| 138 | hpt2 neg 0 V closepath fill} def | |||
| 139 | /TriUF {stroke [] 0 setdash vpt 1.12 mul add M | |||
| 140 | hpt neg vpt -1.62 mul V | |||
| 141 | hpt 2 mul 0 V | |||
| 142 | hpt neg vpt 1.62 mul V closepath fill} def | |||
| 143 | /TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M | |||
| 144 | hpt neg vpt 1.62 mul V | |||
| 145 | hpt 2 mul 0 V | |||
| 146 | hpt neg vpt -1.62 mul V closepath stroke | |||
| 147 | Pnt} def | |||
| 148 | /TriDF {stroke [] 0 setdash vpt 1.12 mul sub M | |||
| 149 | hpt neg vpt 1.62 mul V | |||
| 150 | hpt 2 mul 0 V | |||
| 151 | hpt neg vpt -1.62 mul V closepath fill} def | |||
| 152 | /DiaF {stroke [] 0 setdash vpt add M | |||
| 153 | hpt neg vpt neg V hpt vpt neg V | |||
| 154 | hpt vpt V hpt neg vpt V closepath fill} def | |||
| 155 | /Pent {stroke [] 0 setdash 2 copy gsave | |||
| 156 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | |||
| 157 | closepath stroke grestore Pnt} def | |||
| 158 | /PentF {stroke [] 0 setdash gsave | |||
| 159 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | |||
| 160 | closepath fill grestore} def | |||
| 161 | /Circle {stroke [] 0 setdash 2 copy | |||
| 162 | hpt 0 360 arc stroke Pnt} def | |||
| 163 | /CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def | |||
| 164 | /C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def | |||
| 165 | /C1 {BL [] 0 setdash 2 copy moveto | |||
| 166 | 2 copy vpt 0 90 arc closepath fill | |||
| 167 | vpt 0 360 arc closepath} bind def | |||
| 168 | /C2 {BL [] 0 setdash 2 copy moveto | |||
| 169 | 2 copy vpt 90 180 arc closepath fill | |||
| 170 | vpt 0 360 arc closepath} bind def | |||
| 171 | /C3 {BL [] 0 setdash 2 copy moveto | |||
| 172 | 2 copy vpt 0 180 arc closepath fill | |||
| 173 | vpt 0 360 arc closepath} bind def | |||
| 174 | /C4 {BL [] 0 setdash 2 copy moveto | |||
| 175 | 2 copy vpt 180 270 arc closepath fill | |||
| 176 | vpt 0 360 arc closepath} bind def | |||
| 177 | /C5 {BL [] 0 setdash 2 copy moveto | |||
| 178 | 2 copy vpt 0 90 arc | |||
| 179 | 2 copy moveto | |||
| 180 | 2 copy vpt 180 270 arc closepath fill | |||
| 181 | vpt 0 360 arc} bind def | |||
| 182 | /C6 {BL [] 0 setdash 2 copy moveto | |||
| 183 | 2 copy vpt 90 270 arc closepath fill | |||
| 184 | vpt 0 360 arc closepath} bind def | |||
| 185 | /C7 {BL [] 0 setdash 2 copy moveto | |||
| 186 | 2 copy vpt 0 270 arc closepath fill | |||
| 187 | vpt 0 360 arc closepath} bind def | |||
| 188 | /C8 {BL [] 0 setdash 2 copy moveto | |||
| 189 | 2 copy vpt 270 360 arc closepath fill | |||
| 190 | vpt 0 360 arc closepath} bind def | |||
| 191 | /C9 {BL [] 0 setdash 2 copy moveto | |||
| 192 | 2 copy vpt 270 450 arc closepath fill | |||
| 193 | vpt 0 360 arc closepath} bind def | |||
| 194 | /C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill | |||
| 195 | 2 copy moveto | |||
| 196 | 2 copy vpt 90 180 arc closepath fill | |||
| 197 | vpt 0 360 arc closepath} bind def | |||
| 198 | /C11 {BL [] 0 setdash 2 copy moveto | |||
| 199 | 2 copy vpt 0 180 arc closepath fill | |||
| 200 | 2 copy moveto | |||
| 201 | 2 copy vpt 270 360 arc closepath fill | |||
| 202 | vpt 0 360 arc closepath} bind def | |||
| 203 | /C12 {BL [] 0 setdash 2 copy moveto | |||
| 204 | 2 copy vpt 180 360 arc closepath fill | |||
| 205 | vpt 0 360 arc closepath} bind def | |||
| 206 | /C13 {BL [] 0 setdash 2 copy moveto | |||
| 207 | 2 copy vpt 0 90 arc closepath fill | |||
| 208 | 2 copy moveto | |||
| 209 | 2 copy vpt 180 360 arc closepath fill | |||
| 210 | vpt 0 360 arc closepath} bind def | |||
| 211 | /C14 {BL [] 0 setdash 2 copy moveto | |||
| 212 | 2 copy vpt 90 360 arc closepath fill | |||
| 213 | vpt 0 360 arc} bind def | |||
| 214 | /C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill | |||
| 215 | vpt 0 360 arc closepath} bind def | |||
| 216 | /Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto | |||
| 217 | neg 0 rlineto closepath} bind def | |||
| 218 | /Square {dup Rec} bind def | |||
| 219 | /Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def | |||
| 220 | /S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def | |||
| 221 | /S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def | |||
| 222 | /S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def | |||
| 223 | /S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def | |||
| 224 | /S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def | |||
| 225 | /S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill | |||
| 226 | exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def | |||
| 227 | /S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def | |||
| 228 | /S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill | |||
| 229 | 2 copy vpt Square fill Bsquare} bind def | |||
| 230 | /S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def | |||
| 231 | /S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def | |||
| 232 | /S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill | |||
| 233 | Bsquare} bind def | |||
| 234 | /S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill | |||
| 235 | Bsquare} bind def | |||
| 236 | /S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def | |||
| 237 | /S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill | |||
| 238 | 2 copy vpt Square fill Bsquare} bind def | |||
| 239 | /S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill | |||
| 240 | 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def | |||
| 241 | /S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def | |||
| 242 | /D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def | |||
| 243 | /D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def | |||
| 244 | /D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def | |||
| 245 | /D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def | |||
| 246 | /D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def | |||
| 247 | /D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def | |||
| 248 | /D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def | |||
| 249 | /D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def | |||
| 250 | /D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def | |||
| 251 | /D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def | |||
| 252 | /D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def | |||
| 253 | /D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def | |||
| 254 | /D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def | |||
| 255 | /D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def | |||
| 256 | /D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def | |||
| 257 | /D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def | |||
| 258 | /DiaE {stroke [] 0 setdash vpt add M | |||
| 259 | hpt neg vpt neg V hpt vpt neg V | |||
| 260 | hpt vpt V hpt neg vpt V closepath stroke} def | |||
| 261 | /BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M | |||
| 262 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | |||
| 263 | hpt2 neg 0 V closepath stroke} def | |||
| 264 | /TriUE {stroke [] 0 setdash vpt 1.12 mul add M | |||
| 265 | hpt neg vpt -1.62 mul V | |||
| 266 | hpt 2 mul 0 V | |||
| 267 | hpt neg vpt 1.62 mul V closepath stroke} def | |||
| 268 | /TriDE {stroke [] 0 setdash vpt 1.12 mul sub M | |||
| 269 | hpt neg vpt 1.62 mul V | |||
| 270 | hpt 2 mul 0 V | |||
| 271 | hpt neg vpt -1.62 mul V closepath stroke} def | |||
| 272 | /PentE {stroke [] 0 setdash gsave | |||
| 273 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | |||
| 274 | closepath stroke grestore} def | |||
| 275 | /CircE {stroke [] 0 setdash | |||
| 276 | hpt 0 360 arc stroke} def | |||
| 277 | /Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def | |||
| 278 | /DiaW {stroke [] 0 setdash vpt add M | |||
| 279 | hpt neg vpt neg V hpt vpt neg V | |||
| 280 | hpt vpt V hpt neg vpt V Opaque stroke} def | |||
| 281 | /BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M | |||
| 282 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | |||
| 283 | hpt2 neg 0 V Opaque stroke} def | |||
| 284 | /TriUW {stroke [] 0 setdash vpt 1.12 mul add M | |||
| 285 | hpt neg vpt -1.62 mul V | |||
| 286 | hpt 2 mul 0 V | |||
| 287 | hpt neg vpt 1.62 mul V Opaque stroke} def | |||
| 288 | /TriDW {stroke [] 0 setdash vpt 1.12 mul sub M | |||
| 289 | hpt neg vpt 1.62 mul V | |||
| 290 | hpt 2 mul 0 V | |||
| 291 | hpt neg vpt -1.62 mul V Opaque stroke} def | |||
| 292 | /PentW {stroke [] 0 setdash gsave | |||
| 293 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | |||
| 294 | Opaque stroke grestore} def | |||
| 295 | /CircW {stroke [] 0 setdash | |||
| 296 | hpt 0 360 arc Opaque stroke} def | |||
| 297 | /BoxFill {gsave Rec 1 setgray fill grestore} def | |||
| 298 | /Density { | |||
| 299 | /Fillden exch def | |||
| 300 | currentrgbcolor | |||
| 301 | /ColB exch def /ColG exch def /ColR exch def | |||
| 302 | /ColR ColR Fillden mul Fillden sub 1 add def | |||
| 303 | /ColG ColG Fillden mul Fillden sub 1 add def | |||
| 304 | /ColB ColB Fillden mul Fillden sub 1 add def | |||
| 305 | ColR ColG ColB setrgbcolor} def | |||
| 306 | /BoxColFill {gsave Rec PolyFill} def | |||
| 307 | /PolyFill {gsave Density fill grestore grestore} def | |||
| 308 | /h {rlineto rlineto rlineto gsave closepath fill grestore} bind def | |||
| 309 | % | |||
| 310 | % PostScript Level 1 Pattern Fill routine for rectangles | |||
| 311 | % Usage: x y w h s a XX PatternFill | |||
| 312 | % x,y = lower left corner of box to be filled | |||
| 313 | % w,h = width and height of box | |||
| 314 | % a = angle in degrees between lines and x-axis | |||
| 315 | % XX = 0/1 for no/yes cross-hatch | |||
| 316 | % | |||
| 317 | /PatternFill {gsave /PFa [ 9 2 roll ] def | |||
| 318 | PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate | |||
| 319 | PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec | |||
| 320 | TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse | |||
| 321 | clip | |||
| 322 | currentlinewidth 0.5 mul setlinewidth | |||
| 323 | /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def | |||
| 324 | 0 0 M PFa 5 get rotate PFs -2 div dup translate | |||
| 325 | 0 1 PFs PFa 4 get div 1 add floor cvi | |||
| 326 | {PFa 4 get mul 0 M 0 PFs V} for | |||
| 327 | 0 PFa 6 get ne { | |||
| 328 | 0 1 PFs PFa 4 get div 1 add floor cvi | |||
| 329 | {PFa 4 get mul 0 2 1 roll M PFs 0 V} for | |||
| 330 | } if | |||
| 331 | stroke grestore} def | |||
| 332 | % | |||
| 333 | /languagelevel where | |||
| 334 | {pop languagelevel} {1} ifelse | |||
| 335 | dup 2 lt | |||
| 336 | {/InterpretLevel1 true def | |||
| 337 | /InterpretLevel3 false def} | |||
| 338 | {/InterpretLevel1 Level1 def | |||
| 339 | 2 gt | |||
| 340 | {/InterpretLevel3 Level3 def} | |||
| 341 | {/InterpretLevel3 false def} | |||
| 342 | ifelse } | |||
| 343 | ifelse | |||
| 344 | % | |||
| 345 | % PostScript level 2 pattern fill definitions | |||
| 346 | % | |||
| 347 | /Level2PatternFill { | |||
| 348 | /Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} | |||
| 349 | bind def | |||
| 350 | /KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def | |||
| 351 | << Tile8x8 | |||
| 352 | /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} | |||
| 353 | >> matrix makepattern | |||
| 354 | /Pat1 exch def | |||
| 355 | << Tile8x8 | |||
| 356 | /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke | |||
| 357 | 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} | |||
| 358 | >> matrix makepattern | |||
| 359 | /Pat2 exch def | |||
| 360 | << Tile8x8 | |||
| 361 | /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L | |||
| 362 | 8 8 L 8 0 L 0 0 L fill} | |||
| 363 | >> matrix makepattern | |||
| 364 | /Pat3 exch def | |||
| 365 | << Tile8x8 | |||
| 366 | /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L | |||
| 367 | 0 12 M 12 0 L stroke} | |||
| 368 | >> matrix makepattern | |||
| 369 | /Pat4 exch def | |||
| 370 | << Tile8x8 | |||
| 371 | /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L | |||
| 372 | 0 -4 M 12 8 L stroke} | |||
| 373 | >> matrix makepattern | |||
| 374 | /Pat5 exch def | |||
| 375 | << Tile8x8 | |||
| 376 | /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L | |||
| 377 | 0 12 M 8 -4 L 4 12 M 10 0 L stroke} | |||
| 378 | >> matrix makepattern | |||
| 379 | /Pat6 exch def | |||
| 380 | << Tile8x8 | |||
| 381 | /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L | |||
| 382 | 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} | |||
| 383 | >> matrix makepattern | |||
| 384 | /Pat7 exch def | |||
| 385 | << Tile8x8 | |||
| 386 | /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L | |||
| 387 | 12 0 M -4 8 L 12 4 M 0 10 L stroke} | |||
| 388 | >> matrix makepattern | |||
| 389 | /Pat8 exch def | |||
| 390 | << Tile8x8 | |||
| 391 | /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L | |||
| 392 | -4 0 M 12 8 L -4 4 M 8 10 L stroke} | |||
| 393 | >> matrix makepattern | |||
| 394 | /Pat9 exch def | |||
| 395 | /Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def | |||
| 396 | /Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def | |||
| 397 | /Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def | |||
| 398 | /Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def | |||
| 399 | /Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def | |||
| 400 | /Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def | |||
| 401 | /Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def | |||
| 402 | } def | |||
| 403 | % | |||
| 404 | % | |||
| 405 | %End of PostScript Level 2 code | |||
| 406 | % | |||
| 407 | /PatternBgnd { | |||
| 408 | TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse | |||
| 409 | } def | |||
| 410 | % | |||
| 411 | % Substitute for Level 2 pattern fill codes with | |||
| 412 | % grayscale if Level 2 support is not selected. | |||
| 413 | % | |||
| 414 | /Level1PatternFill { | |||
| 415 | /Pattern1 {0.250 Density} bind def | |||
| 416 | /Pattern2 {0.500 Density} bind def | |||
| 417 | /Pattern3 {0.750 Density} bind def | |||
| 418 | /Pattern4 {0.125 Density} bind def | |||
| 419 | /Pattern5 {0.375 Density} bind def | |||
| 420 | /Pattern6 {0.625 Density} bind def | |||
| 421 | /Pattern7 {0.875 Density} bind def | |||
| 422 | } def | |||
| 423 | % | |||
| 424 | % Now test for support of Level 2 code | |||
| 425 | % | |||
| 426 | Level1 {Level1PatternFill} {Level2PatternFill} ifelse | |||
| 427 | % | |||
| 428 | /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont | |||
| 429 | dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall | |||
| 430 | currentdict end definefont pop | |||
| 431 | % | |||
| 432 | /Metrics {ExtendTextBox Gswidth} def | |||
| 433 | /Lwidth {currentpoint stroke M 0 vshift R Metrics} def | |||
| 434 | /Rwidth {currentpoint stroke M dup stringwidth pop neg vshift R Metrics} def | |||
| 435 | /Cwidth {currentpoint stroke M dup stringwidth pop -2 div vshift R Metrics} def | |||
| 436 | /GLwidth {currentpoint stroke M 0 vshift R {ExtendTextBox} forall} def | |||
| 437 | /GRwidth {currentpoint stroke M dup Gwidth vshift R {ExtendTextBox} forall} def | |||
| 438 | /GCwidth {currentpoint stroke M dup Gwidth 2 div vshift R {ExtendTextBox} forall} def | |||
| 439 | /GLwidth2 {0 Gwidth AddGlyphWidth} def | |||
| 440 | /GRwidth2 {Gwidth -1 mul 0 AddGlyphWidth} def | |||
| 441 | /GCwidth2 {Gwidth 2 div dup -1 mul AddGlyphWidth} def | |||
| 442 | /AddGlyphWidth { dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse | |||
| 443 | dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse } def | |||
| 444 | /MFshow { | |||
| 445 | { dup 5 get 3 ge | |||
| 446 | { 5 get 3 eq {gsave} {grestore} ifelse } | |||
| 447 | {dup dup 0 get findfont exch 1 get scalefont setfont | |||
| 448 | [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 | |||
| 449 | get exch 4 get {textshow} {Metrics pop 0 R} ifelse }if dup 5 get 0 eq | |||
| 450 | {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 | |||
| 451 | get 1 eq {dup 2 get exch dup 3 get exch 6 get Gswidth pop -2 div | |||
| 452 | dup 0 R} {dup 6 get Gswidth pop -2 div 0 R 6 get | |||
| 453 | textshow 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop | |||
| 454 | pop aload pop M} ifelse }ifelse }ifelse } | |||
| 455 | ifelse } | |||
| 456 | forall} def | |||
| 457 | /Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def | |||
| 458 | /MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } | |||
| 459 | {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont | |||
| 460 | 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def | |||
| 461 | /MLshow { currentpoint stroke M | |||
| 462 | 0 exch R | |||
| 463 | Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def | |||
| 464 | /MRshow { currentpoint stroke M | |||
| 465 | exch dup MFwidth neg 3 -1 roll R | |||
| 466 | Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def | |||
| 467 | /MCshow { currentpoint stroke M | |||
| 468 | exch dup MFwidth -2 div 3 -1 roll R | |||
| 469 | Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def | |||
| 470 | /XYsave { [( ) 1 2 true false 3 ()] } bind def | |||
| 471 | /XYrestore { [( ) 1 2 true false 4 ()] } bind def | |||
| 472 | Level1 SuppressPDFMark or | |||
| 473 | {} { | |||
| 474 | /SDict 10 dict def | |||
| 475 | systemdict /pdfmark known not { | |||
| 476 | userdict /pdfmark systemdict /cleartomark get put | |||
| 477 | } if | |||
| 478 | SDict begin [ | |||
| 479 | /Title (demo_filtre.eps) | |||
| 480 | /Subject (gnuplot plot) | |||
| 481 | /Creator (gnuplot 5.2 patchlevel 2) | |||
| 482 | % /Producer (gnuplot) | |||
| 483 | % /Keywords () | |||
| 484 | /CreationDate (Fri May 18 19:34:59 2018) | |||
| 485 | /DOCINFO pdfmark | |||
| 486 | end | |||
| 487 | } ifelse | |||
| 488 | % | |||
| 489 | % Support for boxed text - Ethan A Merritt Sep 2016 | |||
| 490 | % | |||
| 491 | /InitTextBox { userdict /TBy2 3 -1 roll put userdict /TBx2 3 -1 roll put | |||
| 492 | userdict /TBy1 3 -1 roll put userdict /TBx1 3 -1 roll put | |||
| 493 | /Boxing true def } def | |||
| 494 | /ExtendTextBox { dup type /stringtype eq | |||
| 495 | { Boxing { gsave dup false charpath pathbbox | |||
| 496 | dup TBy2 gt {userdict /TBy2 3 -1 roll put} {pop} ifelse | |||
| 497 | dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse | |||
| 498 | dup TBy1 lt {userdict /TBy1 3 -1 roll put} {pop} ifelse | |||
| 499 | dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse | |||
| 500 | grestore } if } | |||
| 501 | {} ifelse} def | |||
| 502 | /PopTextBox { newpath TBx1 TBxmargin sub TBy1 TBymargin sub M | |||
| 503 | TBx1 TBxmargin sub TBy2 TBymargin add L | |||
| 504 | TBx2 TBxmargin add TBy2 TBymargin add L | |||
| 505 | TBx2 TBxmargin add TBy1 TBymargin sub L closepath } def | |||
| 506 | /DrawTextBox { PopTextBox stroke /Boxing false def} def | |||
| 507 | /FillTextBox { gsave PopTextBox fill grestore /Boxing false def} def | |||
| 508 | 0 0 0 0 InitTextBox | |||
| 509 | /TBxmargin 20 def | |||
| 510 | /TBymargin 20 def | |||
| 511 | /Boxing false def | |||
| 512 | /textshow { ExtendTextBox Gshow } def | |||
| 513 | % | |||
| 514 | end | |||
| 515 | %%EndProlog | |||
| 516 | %%Page: 1 1 | |||
| 517 | gnudict begin | |||
| 518 | gsave | |||
| 519 | doclip | |||
| 520 | 50 50 translate | |||
| 521 | 0.050 0.050 scale | |||
| 522 | 0 setgray | |||
| 523 | newpath | |||
| 524 | (Helvetica) findfont 200 scalefont setfont | |||
| 525 | 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 | |||
| 526 | gsave % colour palette begin | |||
| 527 | /maxcolors 64 def | |||
| 528 | /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray | |||
| 529 | { /HSVs exch def /HSVv exch def 6.0 mul dup floor dup 3 1 roll sub | |||
| 530 | /HSVf exch def /HSVi exch cvi def /HSVp HSVv 1.0 HSVs sub mul def | |||
| 531 | /HSVq HSVv 1.0 HSVs HSVf mul sub mul def | |||
| 532 | /HSVt HSVv 1.0 HSVs 1.0 HSVf sub mul sub mul def | |||
| 533 | /HSVi HSVi 6 mod def 0 HSVi eq {HSVv HSVt HSVp} | |||
| 534 | {1 HSVi eq {HSVq HSVv HSVp}{2 HSVi eq {HSVp HSVv HSVt} | |||
| 535 | {3 HSVi eq {HSVp HSVq HSVv}{4 HSVi eq {HSVt HSVp HSVv} | |||
| 536 | {HSVv HSVp HSVq} ifelse} ifelse} ifelse} ifelse} ifelse | |||
| 537 | } ifelse} def | |||
| 538 | /Constrain { | |||
| 539 | dup 0 lt {0 exch pop}{dup 1 gt {1 exch pop} if} ifelse} def | |||
| 540 | /YIQ2RGB { | |||
| 541 | 3 copy -1.702 mul exch -1.105 mul add add Constrain 4 1 roll | |||
| 542 | 3 copy -0.647 mul exch -0.272 mul add add Constrain 5 1 roll | |||
| 543 | 0.621 mul exch -0.956 mul add add Constrain 3 1 roll } def | |||
| 544 | /CMY2RGB { 1 exch sub exch 1 exch sub 3 2 roll 1 exch sub 3 1 roll exch } def | |||
| 545 | /XYZ2RGB { 3 copy -0.9017 mul exch -0.1187 mul add exch 0.0585 mul exch add | |||
| 546 | Constrain 4 1 roll 3 copy -0.0279 mul exch 1.999 mul add exch | |||
| 547 | -0.9844 mul add Constrain 5 1 roll -0.2891 mul exch -0.5338 mul add | |||
| 548 | exch 1.91 mul exch add Constrain 3 1 roll} def | |||
| 549 | /SelectSpace {ColorSpace (HSV) eq {HSV2RGB}{ColorSpace (XYZ) eq { | |||
| 550 | XYZ2RGB}{ColorSpace (CMY) eq {CMY2RGB}{ColorSpace (YIQ) eq {YIQ2RGB} | |||
| 551 | if} ifelse} ifelse} ifelse} def | |||
| 552 | /InterpolatedColor true def | |||
| 553 | /grayindex {/gidx 0 def | |||
| 554 | {GrayA gidx get grayv ge {exit} if /gidx gidx 1 add def} loop} def | |||
| 555 | /dgdx {grayv GrayA gidx get sub GrayA gidx 1 sub get | |||
| 556 | GrayA gidx get sub div} def | |||
| 557 | /redvalue {RedA gidx get RedA gidx 1 sub get | |||
| 558 | RedA gidx get sub dgdxval mul add} def | |||
| 559 | /greenvalue {GreenA gidx get GreenA gidx 1 sub get | |||
| 560 | GreenA gidx get sub dgdxval mul add} def | |||
| 561 | /bluevalue {BlueA gidx get BlueA gidx 1 sub get | |||
| 562 | BlueA gidx get sub dgdxval mul add} def | |||
| 563 | /interpolate { | |||
| 564 | grayindex grayv GrayA gidx get sub abs 1e-5 le | |||
| 565 | {RedA gidx get GreenA gidx get BlueA gidx get} | |||
| 566 | {/dgdxval dgdx def redvalue greenvalue bluevalue} ifelse} def | |||
| 567 | /GrayA [0 .0159 .0317 .0476 .0635 .0794 .0952 .1111 .127 .1429 .1587 .1746 | |||
| 568 | .1905 .2063 .2222 .2381 .254 .2698 .2857 .3016 .3175 .3333 .3492 .3651 | |||
| 569 | .381 .3968 .4127 .4286 .4444 .4603 .4762 .4921 .5079 .5238 .5397 .5556 | |||
| 570 | .5714 .5873 .6032 .619 .6349 .6508 .6667 .6825 .6984 .7143 .7302 .746 | |||
| 571 | .7619 .7778 .7937 .8095 .8254 .8413 .8571 .873 .8889 .9048 .9206 .9365 | |||
| 572 | .9524 .9683 .9841 1 ] def | |||
| 573 | /RedA [.267 .2727 .2771 .2804 .2824 .2832 .2828 .2812 .2785 .2747 .27 .2644 | |||
| 574 | .258 .2511 .2437 .2361 .2283 .2204 .2127 .2051 .1977 .1906 .1838 .1773 | |||
| 575 | .171 .1648 .1588 .153 .1471 .1414 .1358 .1306 .1259 .1222 .1199 .1196 .122 | |||
| 576 | .1277 .1368 .1496 .166 .1855 .208 .2331 .2605 .29 .3213 .3544 .3889 .4249 | |||
| 577 | .4622 .5008 .5403 .5809 .6222 .6641 .7064 .7489 .7913 .8333 .8747 .9153 | |||
| 578 | .9548 .9932 ] def | |||
| 579 | /GreenA [.0049 .0258 .0509 .0742 .096 .1169 .1374 .1575 .1773 .197 .2163 | |||
| 580 | .2354 .2542 .2726 .2906 .3083 .3256 .3425 .3591 .3754 .3913 .4071 .4226 | |||
| 581 | .4379 .4531 .4681 .4831 .4981 .513 .5279 .5428 .5577 .5726 .5875 .6024 | |||
| 582 | .6173 .6321 .6469 .6616 .6761 .6905 .7047 .7187 .7324 .7458 .7588 .7715 | |||
| 583 | .7837 .7955 .8067 .8173 .8274 .8369 .8457 .8538 .8613 .8682 .8745 .8803 | |||
| 584 | .8858 .8909 .896 .901 .9062 ] def | |||
| 585 | /BlueA [.3294 .3534 .3762 .3979 .4183 .4372 .4546 .4704 .4847 .4973 .5083 | |||
| 586 | .5177 .5258 .5325 .5381 .5427 .5463 .5493 .5516 .5535 .555 .5561 .557 | |||
| 587 | .5576 .558 .5581 .5581 .5577 .557 .5559 .5543 .5522 .5494 .546 .5418 .5368 | |||
| 588 | .5308 .5239 .516 .5069 .4968 .4854 .4729 .4591 .4441 .4278 .4103 .3915 | |||
| 589 | .3714 .3501 .3275 .3038 .2789 .253 .2262 .1989 .1715 .145 .1213 .1033 | |||
| 590 | .0954 .1005 .1179 .1439 ] def | |||
| 591 | /pm3dround {maxcolors 0 gt {dup 1 ge | |||
| 592 | {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def | |||
| 593 | /pm3dGamma 1.0 1.5 Gamma mul div def | |||
| 594 | /ColorSpace (RGB) def | |||
| 595 | Color InterpolatedColor or { % COLOUR vs. GRAY map | |||
| 596 | InterpolatedColor { %% Interpolation vs. RGB-Formula | |||
| 597 | /g {stroke pm3dround /grayv exch def interpolate | |||
| 598 | SelectSpace setrgbcolor} bind def | |||
| 599 | }{ | |||
| 600 | /g {stroke pm3dround dup cF7 Constrain exch dup cF5 Constrain exch cF15 Constrain | |||
| 601 | SelectSpace setrgbcolor} bind def | |||
| 602 | } ifelse | |||
| 603 | }{ | |||
| 604 | /g {stroke pm3dround pm3dGamma exp setgray} bind def | |||
| 605 | } ifelse | |||
| 606 | 1.000 UL | |||
| 607 | LTb | |||
| 608 | 1.00 1.00 1.00 C 1.000 980 640 10178 7798 BoxColFill | |||
| 609 | 1.000 UL | |||
| 610 | LTb | |||
| 611 | 0.00 0.00 0.00 C 980 640 M | |||
| 612 | 88 0 V | |||
| 613 | 10091 0 R | |||
| 614 | -88 0 V | |||
| 615 | stroke | |||
| 616 | 0.15 0.15 0.15 C 860 640 M | |||
| 617 | [ [(Helvetica) 200.0 0.0 true true 0 (-1)] | |||
| 618 | ] -66.7 MRshow | |||
| 619 | 1.000 UL | |||
| 620 | LTb | |||
| 621 | 0.00 0.00 0.00 C 980 2590 M | |||
| 622 | 88 0 V | |||
| 623 | 10091 0 R | |||
| 624 | -88 0 V | |||
| 625 | stroke | |||
| 626 | 0.15 0.15 0.15 C 860 2590 M | |||
| 627 | [ [(Helvetica) 200.0 0.0 true true 0 (-0.5)] | |||
| 628 | ] -66.7 MRshow | |||
| 629 | 1.000 UL | |||
| 630 | LTb | |||
| 631 | 0.00 0.00 0.00 C 980 4540 M | |||
| 632 | 88 0 V | |||
| 633 | 10091 0 R | |||
| 634 | -88 0 V | |||
| 635 | stroke | |||
| 636 | 0.15 0.15 0.15 C 860 4540 M | |||
| 637 | [ [(Helvetica) 200.0 0.0 true true 0 (0)] | |||
| 638 | ] -66.7 MRshow | |||
| 639 | 1.000 UL | |||
| 640 | LTb | |||
| 641 | 0.00 0.00 0.00 C 980 6489 M | |||
| 642 | 88 0 V | |||
| 643 | 10091 0 R | |||
| 644 | -88 0 V | |||
| 645 | stroke | |||
| 646 | 0.15 0.15 0.15 C 860 6489 M | |||
| 647 | [ [(Helvetica) 200.0 0.0 true true 0 (0.5)] | |||
| 648 | ] -66.7 MRshow | |||
| 649 | 1.000 UL | |||
| 650 | LTb | |||
| 651 | 0.00 0.00 0.00 C 980 8439 M | |||
| 652 | 88 0 V | |||
| 653 | 10091 0 R | |||
| 654 | -88 0 V | |||
| 655 | stroke | |||
| 656 | 0.15 0.15 0.15 C 860 8439 M | |||
| 657 | [ [(Helvetica) 200.0 0.0 true true 0 (1)] | |||
| 658 | ] -66.7 MRshow | |||
| 659 | 1.000 UL | |||
| 660 | LTb | |||
| 661 | 0.00 0.00 0.00 C 980 640 M | |||
| 662 | 0 88 V | |||
| 663 | 0 7711 R | |||
| 664 | 0 -88 V | |||
| 665 | stroke | |||
| 666 | 0.15 0.15 0.15 C 980 440 M | |||
| 667 | [ [(Helvetica) 200.0 0.0 true true 0 (0)] | |||
| 668 | ] -66.7 MCshow | |||
| 669 | 1.000 UL | |||
| 670 | LTb | |||
| 671 | 0.00 0.00 0.00 C 2434 640 M | |||
| 672 | 0 88 V | |||
| 673 | 0 7711 R | |||
| 674 | 0 -88 V | |||
| 675 | stroke | |||
| 676 | 0.15 0.15 0.15 C 2434 440 M | |||
| 677 | [ [(Helvetica) 200.0 0.0 true true 0 (20)] | |||
| 678 | ] -66.7 MCshow | |||
| 679 | 1.000 UL | |||
| 680 | LTb | |||
| 681 | 0.00 0.00 0.00 C 3888 640 M | |||
| 682 | 0 88 V | |||
| 683 | 0 7711 R | |||
| 684 | 0 -88 V | |||
| 685 | stroke | |||
| 686 | 0.15 0.15 0.15 C 3888 440 M | |||
| 687 | [ [(Helvetica) 200.0 0.0 true true 0 (40)] | |||
| 688 | ] -66.7 MCshow | |||
| 689 | 1.000 UL | |||
| 690 | LTb | |||
| 691 | 0.00 0.00 0.00 C 5342 640 M | |||
| 692 | 0 88 V | |||
| 693 | 0 7711 R | |||
| 694 | 0 -88 V | |||
| 695 | stroke | |||
| 696 | 0.15 0.15 0.15 C 5342 440 M | |||
| 697 | [ [(Helvetica) 200.0 0.0 true true 0 (60)] | |||
| 698 | ] -66.7 MCshow | |||
| 699 | 1.000 UL | |||
| 700 | LTb | |||
| 701 | 0.00 0.00 0.00 C 6797 640 M | |||
| 702 | 0 88 V | |||
| 703 | 0 7711 R | |||
| 704 | 0 -88 V | |||
| 705 | stroke | |||
| 706 | 0.15 0.15 0.15 C 6797 440 M | |||
| 707 | [ [(Helvetica) 200.0 0.0 true true 0 (80)] | |||
| 708 | ] -66.7 MCshow | |||
| 709 | 1.000 UL | |||
| 710 | LTb | |||
| 711 | 0.00 0.00 0.00 C 8251 640 M | |||
| 712 | 0 88 V | |||
| 713 | 0 7711 R | |||
| 714 | 0 -88 V | |||
| 715 | stroke | |||
| 716 | 0.15 0.15 0.15 C 8251 440 M | |||
| 717 | [ [(Helvetica) 200.0 0.0 true true 0 (100)] | |||
| 718 | ] -66.7 MCshow | |||
| 719 | 1.000 UL | |||
| 720 | LTb | |||
| 721 | 0.00 0.00 0.00 C 9705 640 M | |||
| 722 | 0 88 V | |||
| 723 | 0 7711 R | |||
| 724 | 0 -88 V | |||
| 725 | stroke | |||
| 726 | 0.15 0.15 0.15 C 9705 440 M | |||
| 727 | [ [(Helvetica) 200.0 0.0 true true 0 (120)] | |||
| 728 | ] -66.7 MCshow | |||
| 729 | 1.000 UL | |||
| 730 | LTb | |||
| 731 | 0.00 0.00 0.00 C 11159 640 M | |||
| 732 | 0 88 V | |||
| 733 | 0 7711 R | |||
| 734 | 0 -88 V | |||
| 735 | stroke | |||
| 736 | 0.15 0.15 0.15 C 11159 440 M | |||
| 737 | [ [(Helvetica) 200.0 0.0 true true 0 (140)] | |||
| 738 | ] -66.7 MCshow | |||
| 739 | 1.000 UL | |||
| 740 | LTb | |||
| 741 | 0.00 0.00 0.00 C 1.000 UP | |||
| 742 | 1.000 UL | |||
| 743 | LTb | |||
| 744 | 0.00 0.00 0.00 C 0.15 0.15 0.15 C 180 4539 M | |||
| 745 | currentpoint gsave translate 90 rotate 0 0 moveto | |||
| 746 | [ [(Helvetica) 290.0 0.0 true true 0 (normalized coef. value)] | |||
| 747 | ] -73.3 MCshow | |||
| 748 | grestore | |||
| 749 | LTb | |||
| 750 | 0.15 0.15 0.15 C 6069 140 M | |||
| 751 | [ [(Helvetica) 290.0 0.0 true true 0 (cofficient num)] | |||
| 752 | ] -73.3 MCshow | |||
| 753 | LTb | |||
| 754 | 1.000 UL | |||
| 755 | LTb | |||
| 756 | LCb setrgbcolor | |||
| 757 | 7976 7376 N | |||
| 758 | 0 1000 V | |||
| 759 | 3063 0 V | |||
| 760 | 0 -1000 V | |||
| 761 | -3063 0 V | |||
| 762 | Z stroke | |||
| 763 | % Begin plot #1 | |||
| 764 | 2.000 UP | |||
| 765 | 0.500 UL | |||
| 766 | LTb | |||
| 767 | 0.00 0.45 0.74 C 0.00 0.00 0.00 C 8759 8126 M | |||
| 768 | [ [(Helvetica) 200.0 0.0 true true 0 (filter coefficients)] | |||
| 769 | ] -66.7 MLshow | |||
| 770 | 2.000 UP | |||
| 771 | 0.500 UL | |||
| 772 | LTb | |||
| 773 | 0.00 0.45 0.74 C 8096 8126 M | |||
| 774 | 543 0 V | |||
| 775 | 1053 4539 M | |||
| 776 | 72 0 V | |||
| 777 | 73 0 V | |||
| 778 | 73 1 V | |||
| 779 | 73 0 V | |||
| 780 | 72 0 V | |||
| 781 | 73 -1 V | |||
| 782 | 73 -1 V | |||
| 783 | 72 1 V | |||
| 784 | 73 2 V | |||
| 785 | 73 1 V | |||
| 786 | 72 -2 V | |||
| 787 | 73 -1 V | |||
| 788 | 73 1 V | |||
| 789 | 73 0 V | |||
| 790 | 72 -6 V | |||
| 791 | 73 -3 V | |||
| 792 | 73 11 V | |||
| 793 | 72 13 V | |||
| 794 | 73 -2 V | |||
| 795 | 73 -19 V | |||
| 796 | 73 -10 V | |||
| 797 | 72 10 V | |||
| 798 | 73 6 V | |||
| 799 | 73 -12 V | |||
| 800 | 72 0 V | |||
| 801 | 73 36 V | |||
| 802 | 73 32 V | |||
| 803 | 73 -35 V | |||
| 804 | 72 -76 V | |||
| 805 | 73 -19 V | |||
| 806 | 73 63 V | |||
| 807 | 72 49 V | |||
| 808 | 73 -25 V | |||
| 809 | 73 -14 V | |||
| 810 | 72 67 V | |||
| 811 | 73 36 V | |||
| 812 | 73 -130 V | |||
| 813 | 73 -176 V | |||
| 814 | 72 35 V | |||
| 815 | 73 242 V | |||
| 816 | 73 137 V | |||
| 817 | 72 -119 V | |||
| 818 | 73 -123 V | |||
| 819 | 73 77 V | |||
| 820 | 73 36 V | |||
| 821 | 72 -270 V | |||
| 822 | 73 -263 V | |||
| 823 | 73 275 V | |||
| 824 | 72 633 V | |||
| 825 | 73 175 V | |||
| 826 | 73 -536 V | |||
| 827 | 72 -480 V | |||
| 828 | 73 161 V | |||
| 829 | 73 224 V | |||
| 830 | 73 -405 V | |||
| 831 | 72 -334 V | |||
| 832 | 73 960 V | |||
| 833 | 73 1624 V | |||
| 834 | 72 -110 V | |||
| 835 | 73 -2640 V | |||
| 836 | 73 -2385 V | |||
| 837 | 73 1150 V | |||
| 838 | 72 3880 V | |||
| 839 | 73 2159 V | |||
| 840 | 73 -2159 V | |||
| 841 | 72 -3880 V | |||
| 842 | 73 -1150 V | |||
| 843 | 73 2385 V | |||
| 844 | 73 2640 V | |||
| 845 | 72 110 V | |||
| 846 | 73 -1624 V | |||
| 847 | 73 -960 V | |||
| 848 | 72 334 V | |||
| 849 | 73 405 V | |||
| 850 | 73 -224 V | |||
| 851 | 72 -161 V | |||
| 852 | 73 480 V | |||
| 853 | 73 536 V | |||
| 854 | 73 -175 V | |||
| 855 | 72 -633 V | |||
| 856 | 73 -275 V | |||
| 857 | 73 263 V | |||
| 858 | 72 270 V | |||
| 859 | 73 -36 V | |||
| 860 | 73 -77 V | |||
| 861 | 73 123 V | |||
| 862 | 72 119 V | |||
| 863 | 73 -137 V | |||
| 864 | 73 -242 V | |||
| 865 | 72 -35 V | |||
| 866 | 73 176 V | |||
| 867 | 73 130 V | |||
| 868 | 72 -36 V | |||
| 869 | 73 -67 V | |||
| 870 | 73 14 V | |||
| 871 | 73 25 V | |||
| 872 | 72 -49 V | |||
| 873 | 73 -63 V | |||
| 874 | 73 19 V | |||
| 875 | 72 76 V | |||
| 876 | 73 35 V | |||
| 877 | 73 -32 V | |||
| 878 | 73 -36 V | |||
| 879 | 72 0 V | |||
| 880 | 73 12 V | |||
| 881 | 73 -6 V | |||
| 882 | 72 -10 V | |||
| 883 | 73 10 V | |||
| 884 | 73 19 V | |||
| 885 | 72 2 V | |||
| 886 | 73 -13 V | |||
| 887 | 73 -11 V | |||
| 888 | 73 3 V | |||
| 889 | 72 6 V | |||
| 890 | 73 0 V | |||
| 891 | 73 -1 V | |||
| 892 | 72 1 V | |||
| 893 | 73 2 V | |||
| 894 | 73 -1 V | |||
| 895 | 73 -2 V | |||
| 896 | 72 -1 V | |||
| 897 | 73 1 V | |||
| 898 | 73 1 V | |||
| 899 | 72 0 V | |||
| 900 | 73 0 V | |||
| 901 | 73 -1 V | |||
| 902 | 73 0 V | |||
| 903 | 72 0 V | |||
| 904 | 8368 8126 Pnt | |||
| 905 | % End plot #1 | |||
| 906 | % Begin plot #2 | |||
| 907 | 0.667 UP | |||
| 908 | 0.500 UL | |||
| 909 | LTb | |||
| 910 | 1.00 0.00 0.00 C 0.00 0.00 0.00 C 8759 7626 M | |||
| 911 | [ [(Helvetica) 200.0 0.0 true true 0 (6 bit quantization)] | |||
| 912 | ] -66.7 MLshow | |||
| 913 | 0.667 UP | |||
| 914 | 0.500 UL | |||
| 915 | LTb | |||
| 916 | 1.00 0.00 0.00 C 1053 4540 CircleF | |||
| 917 | 8368 7626 CircleF | |||
| 918 | % End plot #2 | |||
| 919 | % Begin plot #3 | |||
| 920 | 0.667 UP | |||
| 921 | 0.500 UL | |||
| 922 | LTb | |||
| 923 | 1.00 0.00 0.00 C 1125 4540 CircleF | |||
| 924 | % End plot #3 | |||
| 925 | % Begin plot #4 | |||
| 926 | 0.667 UP | |||
| 927 | 0.500 UL | |||
| 928 | LTb | |||
| 929 | 1.00 0.00 0.00 C 1198 4540 CircleF | |||
| 930 | % End plot #4 | |||
| 931 | % Begin plot #5 | |||
| 932 | 0.667 UP | |||
| 933 | 0.500 UL | |||
| 934 | LTb | |||
| 935 | 1.00 0.00 0.00 C 1271 4540 CircleF | |||
| 936 | % End plot #5 | |||
| 937 | % Begin plot #6 | |||
| 938 | 0.667 UP | |||
| 939 | 0.500 UL | |||
| 940 | LTb | |||
| 941 | 1.00 0.00 0.00 C 1344 4540 CircleF | |||
| 942 | % End plot #6 | |||
| 943 | % Begin plot #7 | |||
| 944 | 0.667 UP | |||
| 945 | 0.500 UL | |||
| 946 | LTb | |||
| 947 | 1.00 0.00 0.00 C 1416 4540 CircleF | |||
| 948 | % End plot #7 | |||
| 949 | % Begin plot #8 | |||
| 950 | 0.667 UP | |||
| 951 | 0.500 UL | |||
| 952 | LTb | |||
| 953 | 1.00 0.00 0.00 C 1489 4540 CircleF | |||
| 954 | % End plot #8 | |||
| 955 | % Begin plot #9 | |||
| 956 | 0.667 UP | |||
| 957 | 0.500 UL | |||
| 958 | LTb | |||
| 959 | 1.00 0.00 0.00 C 1562 4540 CircleF | |||
| 960 | % End plot #9 | |||
| 961 | % Begin plot #10 | |||
| 962 | 0.667 UP | |||
| 963 | 0.500 UL | |||
| 964 | LTb | |||
| 965 | 1.00 0.00 0.00 C 1634 4540 CircleF | |||
| 966 | % End plot #10 | |||
| 967 | % Begin plot #11 | |||
| 968 | 0.667 UP | |||
| 969 | 0.500 UL | |||
| 970 | LTb | |||
| 971 | 1.00 0.00 0.00 C 1707 4540 CircleF | |||
| 972 | % End plot #11 | |||
| 973 | % Begin plot #12 | |||
| 974 | 0.667 UP | |||
| 975 | 0.500 UL | |||
| 976 | LTb | |||
| 977 | 1.00 0.00 0.00 C 1780 4540 CircleF | |||
| 978 | % End plot #12 | |||
| 979 | % Begin plot #13 | |||
| 980 | 0.667 UP | |||
| 981 | 0.500 UL | |||
| 982 | LTb | |||
| 983 | 1.00 0.00 0.00 C 1852 4540 CircleF | |||
| 984 | % End plot #13 | |||
| 985 | % Begin plot #14 | |||
| 986 | 0.667 UP | |||
| 987 | 0.500 UL | |||
| 988 | LTb | |||
| 989 | 1.00 0.00 0.00 C 1925 4540 CircleF | |||
| 990 | % End plot #14 | |||
| 991 | % Begin plot #15 | |||
| 992 | 0.667 UP | |||
| 993 | 0.500 UL | |||
| 994 | LTb | |||
| 995 | 1.00 0.00 0.00 C 1998 4540 CircleF | |||
| 996 | % End plot #15 | |||
| 997 | % Begin plot #16 | |||
| 998 | 0.667 UP | |||
| 999 | 0.500 UL | |||
| 1000 | LTb | |||
| 1001 | 1.00 0.00 0.00 C 2071 4540 CircleF | |||
| 1002 | % End plot #16 | |||
| 1003 | % Begin plot #17 | |||
| 1004 | 0.667 UP | |||
| 1005 | 0.500 UL | |||
| 1006 | LTb | |||
| 1007 | 1.00 0.00 0.00 C 2143 4540 CircleF | |||
| 1008 | % End plot #17 | |||
| 1009 | % Begin plot #18 | |||
| 1010 | 0.667 UP | |||
| 1011 | 0.500 UL | |||
| 1012 | LTb | |||
| 1013 | 1.00 0.00 0.00 C 2216 4540 CircleF | |||
| 1014 | % End plot #18 | |||
| 1015 | % Begin plot #19 | |||
| 1016 | 0.667 UP | |||
| 1017 | 0.500 UL | |||
| 1018 | LTb | |||
| 1019 | 1.00 0.00 0.00 C 2289 4540 CircleF | |||
| 1020 | % End plot #19 | |||
| 1021 | % Begin plot #20 | |||
| 1022 | 0.667 UP | |||
| 1023 | 0.500 UL | |||
| 1024 | LTb | |||
| 1025 | 1.00 0.00 0.00 C 2361 4540 CircleF | |||
| 1026 | % End plot #20 | |||
| 1027 | % Begin plot #21 | |||
| 1028 | 0.667 UP | |||
| 1029 | 0.500 UL | |||
| 1030 | LTb | |||
| 1031 | 1.00 0.00 0.00 C 2434 4540 CircleF | |||
| 1032 | % End plot #21 | |||
| 1033 | % Begin plot #22 | |||
| 1034 | 0.667 UP | |||
| 1035 | 0.500 UL | |||
| 1036 | LTb | |||
| 1037 | 1.00 0.00 0.00 C 2507 4540 CircleF | |||
| 1038 | % End plot #22 | |||
| 1039 | % Begin plot #23 | |||
| 1040 | 0.667 UP | |||
| 1041 | 0.500 UL | |||
| 1042 | LTb | |||
| 1043 | 1.00 0.00 0.00 C 2580 4540 CircleF | |||
| 1044 | % End plot #23 | |||
| 1045 | % Begin plot #24 | |||
| 1046 | 0.667 UP | |||
| 1047 | 0.500 UL | |||
| 1048 | LTb | |||
| 1049 | 1.00 0.00 0.00 C 2652 4540 CircleF | |||
| 1050 | % End plot #24 | |||
| 1051 | % Begin plot #25 | |||
| 1052 | 0.667 UP | |||
| 1053 | 0.500 UL | |||
| 1054 | LTb | |||
| 1055 | 1.00 0.00 0.00 C 2725 4540 CircleF | |||
| 1056 | % End plot #25 | |||
| 1057 | % Begin plot #26 | |||
| 1058 | 0.667 UP | |||
| 1059 | 0.500 UL | |||
| 1060 | LTb | |||
| 1061 | 1.00 0.00 0.00 C 2798 4540 CircleF | |||
| 1062 | % End plot #26 | |||
| 1063 | % Begin plot #27 | |||
| 1064 | 0.667 UP | |||
| 1065 | 0.500 UL | |||
| 1066 | LTb | |||
| 1067 | 1.00 0.00 0.00 C 2870 4540 CircleF | |||
| 1068 | % End plot #27 | |||
| 1069 | % Begin plot #28 | |||
| 1070 | 0.667 UP | |||
| 1071 | 0.500 UL | |||
| 1072 | LTb | |||
| 1073 | 1.00 0.00 0.00 C 2943 4540 CircleF | |||
| 1074 | % End plot #28 | |||
| 1075 | % Begin plot #29 | |||
| 1076 | 0.667 UP | |||
| 1077 | 0.500 UL | |||
| 1078 | LTb | |||
| 1079 | 1.00 0.00 0.00 C 3016 4540 CircleF | |||
| 1080 | % End plot #29 | |||
| 1081 | % Begin plot #30 | |||
| 1082 | 0.667 UP | |||
| 1083 | 0.500 UL | |||
| 1084 | LTb | |||
| 1085 | 1.00 0.00 0.00 C 3089 4540 CircleF | |||
| 1086 | % End plot #30 | |||
| 1087 | % Begin plot #31 | |||
| 1088 | 0.667 UP | |||
| 1089 | 0.500 UL | |||
| 1090 | LTb | |||
| 1091 | 1.00 0.00 0.00 C 3161 4540 CircleF | |||
| 1092 | % End plot #31 | |||
| 1093 | % Begin plot #32 | |||
| 1094 | 0.667 UP | |||
| 1095 | 0.500 UL | |||
| 1096 | LTb | |||
| 1097 | 1.00 0.00 0.00 C 3307 4540 CircleF | |||
| 1098 | % End plot #32 | |||
| 1099 | % Begin plot #33 | |||
| 1100 | 0.667 UP | |||
| 1101 | 0.500 UL | |||
| 1102 | LTb | |||
| 1103 | 1.00 0.00 0.00 C 3379 4540 CircleF | |||
| 1104 | % End plot #33 | |||
| 1105 | % Begin plot #34 | |||
| 1106 | 0.667 UP | |||
| 1107 | 0.500 UL | |||
| 1108 | LTb | |||
| 1109 | 1.00 0.00 0.00 C 3452 4540 CircleF | |||
| 1110 | % End plot #34 | |||
| 1111 | % Begin plot #35 | |||
| 1112 | 0.667 UP | |||
| 1113 | 0.500 UL | |||
| 1114 | LTb | |||
| 1115 | 1.00 0.00 0.00 C 3525 4540 CircleF | |||
| 1116 | % End plot #35 | |||
| 1117 | % Begin plot #36 | |||
| 1118 | 0.667 UP | |||
| 1119 | 0.500 UL | |||
| 1120 | LTb | |||
| 1121 | 1.00 0.00 0.00 C 3743 4540 CircleF | |||
| 1122 | % End plot #36 | |||
| 1123 | % Begin plot #37 | |||
| 1124 | 0.667 UP | |||
| 1125 | 0.500 UL | |||
| 1126 | LTb | |||
| 1127 | 1.00 0.00 0.00 C 4179 4540 CircleF | |||
| 1128 | % End plot #37 | |||
| 1129 | % Begin plot #38 | |||
| 1130 | 0.667 UP | |||
| 1131 | 0.500 UL | |||
| 1132 | LTb | |||
| 1133 | 1.00 0.00 0.00 C 4252 4540 CircleF | |||
| 1134 | % End plot #38 | |||
| 1135 | % Begin plot #39 | |||
| 1136 | 0.667 UP | |||
| 1137 | 0.500 UL | |||
| 1138 | LTb | |||
| 1139 | 1.00 0.00 0.00 C 4979 4540 CircleF | |||
| 1140 | % End plot #39 | |||
| 1141 | % Begin plot #40 | |||
| 1142 | 0.667 UP | |||
| 1143 | 0.500 UL | |||
| 1144 | LTb | |||
| 1145 | 1.00 0.00 0.00 C 6433 4540 CircleF | |||
| 1146 | % End plot #40 | |||
| 1147 | % Begin plot #41 | |||
| 1148 | 0.667 UP | |||
| 1149 | 0.500 UL | |||
| 1150 | LTb | |||
| 1151 | 1.00 0.00 0.00 C 7160 4540 CircleF | |||
| 1152 | % End plot #41 | |||
| 1153 | % Begin plot #42 | |||
| 1154 | 0.667 UP | |||
| 1155 | 0.500 UL | |||
| 1156 | LTb | |||
| 1157 | 1.00 0.00 0.00 C 7233 4540 CircleF | |||
| 1158 | % End plot #42 | |||
| 1159 | % Begin plot #43 | |||
| 1160 | 0.667 UP | |||
| 1161 | 0.500 UL | |||
| 1162 | LTb | |||
| 1163 | 1.00 0.00 0.00 C 7669 4540 CircleF | |||
| 1164 | % End plot #43 | |||
| 1165 | % Begin plot #44 | |||
| 1166 | 0.667 UP | |||
| 1167 | 0.500 UL | |||
| 1168 | LTb | |||
| 1169 | 1.00 0.00 0.00 C 7887 4540 CircleF | |||
| 1170 | % End plot #44 | |||
| 1171 | % Begin plot #45 | |||
| 1172 | 0.667 UP | |||
| 1173 | 0.500 UL | |||
| 1174 | LTb | |||
| 1175 | 1.00 0.00 0.00 C 7960 4540 CircleF | |||
| 1176 | % End plot #45 | |||
| 1177 | % Begin plot #46 | |||
| 1178 | 0.667 UP | |||
| 1179 | 0.500 UL | |||
| 1180 | LTb | |||
| 1181 | 1.00 0.00 0.00 C 8033 4540 CircleF | |||
| 1182 | % End plot #46 | |||
| 1183 | % Begin plot #47 | |||
| 1184 | 0.667 UP | |||
| 1185 | 0.500 UL | |||
| 1186 | LTb | |||
| 1187 | 1.00 0.00 0.00 C 8105 4540 CircleF | |||
| 1188 | % End plot #47 | |||
| 1189 | % Begin plot #48 | |||
| 1190 | 0.667 UP | |||
| 1191 | 0.500 UL | |||
| 1192 | LTb | |||
| 1193 | 1.00 0.00 0.00 C 8251 4540 CircleF | |||
| 1194 | % End plot #48 | |||
| 1195 | % Begin plot #49 | |||
| 1196 | 0.667 UP | |||
| 1197 | 0.500 UL | |||
| 1198 | LTb | |||
| 1199 | 1.00 0.00 0.00 C 8323 4540 CircleF | |||
| 1200 | % End plot #49 | |||
| 1201 | % Begin plot #50 | |||
| 1202 | 0.667 UP | |||
| 1203 | 0.500 UL | |||
| 1204 | LTb | |||
| 1205 | 1.00 0.00 0.00 C 8396 4540 CircleF | |||
| 1206 | % End plot #50 | |||
| 1207 | % Begin plot #51 | |||
| 1208 | 0.667 UP | |||
| 1209 | 0.500 UL | |||
| 1210 | LTb | |||
| 1211 | 1.00 0.00 0.00 C 8469 4540 CircleF | |||
| 1212 | % End plot #51 | |||
| 1213 | % Begin plot #52 | |||
| 1214 | 0.667 UP | |||
| 1215 | 0.500 UL | |||
| 1216 | LTb | |||
| 1217 | 1.00 0.00 0.00 C 8542 4540 CircleF | |||
| 1218 | % End plot #52 | |||
| 1219 | % Begin plot #53 | |||
| 1220 | 0.667 UP | |||
| 1221 | 0.500 UL | |||
| 1222 | LTb | |||
| 1223 | 1.00 0.00 0.00 C 8614 4540 CircleF | |||
| 1224 | % End plot #53 | |||
| 1225 | % Begin plot #54 | |||
| 1226 | 0.667 UP | |||
| 1227 | 0.500 UL | |||
| 1228 | LTb | |||
| 1229 | 1.00 0.00 0.00 C 8687 4540 CircleF | |||
| 1230 | % End plot #54 | |||
| 1231 | % Begin plot #55 | |||
| 1232 | 0.667 UP | |||
| 1233 | 0.500 UL | |||
| 1234 | LTb | |||
| 1235 | 1.00 0.00 0.00 C 8760 4540 CircleF | |||
| 1236 | % End plot #55 | |||
| 1237 | % Begin plot #56 | |||
| 1238 | 0.667 UP | |||
| 1239 | 0.500 UL | |||
| 1240 | LTb | |||
| 1241 | 1.00 0.00 0.00 C 8832 4540 CircleF | |||
| 1242 | % End plot #56 | |||
| 1243 | % Begin plot #57 | |||
| 1244 | 0.667 UP | |||
| 1245 | 0.500 UL | |||
| 1246 | LTb | |||
| 1247 | 1.00 0.00 0.00 C 8905 4540 CircleF | |||
| 1248 | % End plot #57 | |||
| 1249 | % Begin plot #58 | |||
| 1250 | 0.667 UP | |||
| 1251 | 0.500 UL | |||
| 1252 | LTb | |||
| 1253 | 1.00 0.00 0.00 C 8978 4540 CircleF | |||
| 1254 | % End plot #58 | |||
| 1255 | % Begin plot #59 | |||
| 1256 | 0.667 UP | |||
| 1257 | 0.500 UL | |||
| 1258 | LTb | |||
| 1259 | 1.00 0.00 0.00 C 9050 4540 CircleF | |||
| 1260 | % End plot #59 | |||
| 1261 | % Begin plot #60 | |||
| 1262 | 0.667 UP | |||
| 1263 | 0.500 UL | |||
| 1264 | LTb | |||
| 1265 | 1.00 0.00 0.00 C 9123 4540 CircleF | |||
| 1266 | % End plot #60 | |||
| 1267 | % Begin plot #61 | |||
| 1268 | 0.667 UP | |||
| 1269 | 0.500 UL | |||
| 1270 | LTb | |||
| 1271 | 1.00 0.00 0.00 C 9196 4540 CircleF | |||
| 1272 | % End plot #61 | |||
| 1273 | % Begin plot #62 | |||
| 1274 | 0.667 UP | |||
| 1275 | 0.500 UL | |||
| 1276 | LTb | |||
| 1277 | 1.00 0.00 0.00 C 9269 4540 CircleF | |||
| 1278 | % End plot #62 | |||
| 1279 | % Begin plot #63 | |||
| 1280 | 0.667 UP | |||
| 1281 | 0.500 UL | |||
| 1282 | LTb | |||
| 1283 | 1.00 0.00 0.00 C 9341 4540 CircleF | |||
| 1284 | % End plot #63 | |||
| 1285 | % Begin plot #64 | |||
| 1286 | 0.667 UP | |||
| 1287 | 0.500 UL | |||
| 1288 | LTb | |||
| 1289 | 1.00 0.00 0.00 C 9414 4540 CircleF | |||
| 1290 | % End plot #64 | |||
| 1291 | % Begin plot #65 | |||
| 1292 | 0.667 UP | |||
| 1293 | 0.500 UL | |||
| 1294 | LTb | |||
| 1295 | 1.00 0.00 0.00 C 9487 4540 CircleF | |||
| 1296 | % End plot #65 | |||
| 1297 | % Begin plot #66 | |||
| 1298 | 0.667 UP | |||
| 1299 | 0.500 UL | |||
| 1300 | LTb | |||
| 1301 | 1.00 0.00 0.00 C 9559 4540 CircleF | |||
| 1302 | % End plot #66 | |||
| 1303 | % Begin plot #67 | |||
| 1304 | 0.667 UP | |||
| 1305 | 0.500 UL | |||
| 1306 | LTb | |||
| 1307 | 1.00 0.00 0.00 C 9632 4540 CircleF | |||
| 1308 | % End plot #67 | |||
| 1309 | % Begin plot #68 | |||
| 1310 | 0.667 UP | |||
| 1311 | 0.500 UL | |||
| 1312 | LTb | |||
| 1313 | 1.00 0.00 0.00 C 9705 4540 CircleF | |||
| 1314 | % End plot #68 | |||
| 1315 | % Begin plot #69 | |||
| 1316 | 0.667 UP | |||
| 1317 | 0.500 UL | |||
| 1318 | LTb | |||
| 1319 | 1.00 0.00 0.00 C 9778 4540 CircleF | |||
| 1320 | % End plot #69 | |||
| 1321 | % Begin plot #70 | |||
| 1322 | 0.667 UP | |||
| 1323 | 0.500 UL | |||
| 1324 | LTb | |||
| 1325 | 1.00 0.00 0.00 C 9850 4540 CircleF | |||
| 1326 | % End plot #70 | |||
| 1327 | % Begin plot #71 | |||
| 1328 | 0.667 UP | |||
| 1329 | 0.500 UL | |||
| 1330 | LTb | |||
| 1331 | 1.00 0.00 0.00 C 9923 4540 CircleF | |||
| 1332 | % End plot #71 | |||
| 1333 | % Begin plot #72 | |||
| 1334 | 0.667 UP | |||
| 1335 | 0.500 UL | |||
| 1336 | LTb | |||
| 1337 | 1.00 0.00 0.00 C 9996 4540 CircleF | |||
| 1338 | % End plot #72 | |||
| 1339 | % Begin plot #73 | |||
| 1340 | 0.667 UP | |||
| 1341 | 0.500 UL | |||
| 1342 | LTb | |||
| 1343 | 1.00 0.00 0.00 C 10068 4540 CircleF | |||
| 1344 | % End plot #73 | |||
| 1345 | % Begin plot #74 | |||
| 1346 | 0.667 UP | |||
| 1347 | 0.500 UL | |||
| 1348 | LTb | |||
| 1349 | 1.00 0.00 0.00 C 10141 4540 CircleF | |||
| 1350 | % End plot #74 | |||
| 1351 | % Begin plot #75 | |||
| 1352 | 0.667 UP | |||
| 1353 | 0.500 UL | |||
| 1354 | LTb | |||
| 1355 | 1.00 0.00 0.00 C 10214 4540 CircleF | |||
| 1356 | % End plot #75 | |||
| 1357 | % Begin plot #76 | |||
| 1358 | 0.667 UP | |||
| 1359 | 0.500 UL | |||
| 1360 | LTb | |||
| 1361 | 1.00 0.00 0.00 C 10287 4540 CircleF | |||
| 1362 | % End plot #76 | |||
| 1363 | % Begin plot #77 | |||
| 1364 | 0.667 UP | |||
| 1365 | 0.500 UL | |||
| 1366 | LTb | |||
| 1367 | 1.00 0.00 0.00 C 10359 4540 CircleF | |||
| 1368 | % End plot #77 | |||
| 1369 | % Begin plot #78 | |||
| 1370 | 2.000 UP | |||
| 1371 | 0.500 UL | |||
| 1372 | LTb | |||
| 1373 | 0.00 0.00 0.00 C 1053 4600 M | |||
| 1374 | 9234 0 V | |||
| 1375 | % End plot #78 | |||
| 1376 | % Begin plot #79 | |||
| 1377 | 2.000 UP | |||
| 1378 | stroke | |||
| 1379 | LTb | |||
| 1380 | 0.00 0.00 0.00 C 1053 4479 M | |||
| 1381 | 9234 0 V | |||
| 1382 | % End plot #79 | |||
| 1383 | % Begin plot #80 | |||
| 1384 | 2.000 UP | |||
| 1385 | stroke | |||
| 1386 | LTb | |||
| 1387 | 0.00 0.00 0.00 C 980 4929 M | |||
| 1388 | 2181 0 V | |||
| 1389 | % End plot #80 | |||
| 1390 | % Begin plot #81 | |||
| 1391 | 2.000 UP | |||
| 1392 | stroke | |||
| 1393 | LTb | |||
| 1394 | 0.00 0.00 0.00 C 8105 4929 M | |||
| 1395 | 2182 0 V | |||
| 1396 | % End plot #81 | |||
| 1397 | stroke | |||
| 1398 | 2.000 UL | |||
| 1399 | LTb | |||
| 1400 | LCb setrgbcolor | |||
| 1401 | 1.000 UP | |||
| 1402 | 0.00 0.00 0.00 C 1707 5124 M | |||
| 1403 | [ [(Helvetica) 200.0 0.0 true true 0 (30 coefs at 0)] | |||
| 1404 | ] -66.7 MLshow | |||
| 1405 | 0.00 0.00 0.00 C 8978 5124 M | |||
| 1406 | [ [(Helvetica) 200.0 0.0 true true 0 (30 coefs at 0)] | |||
| 1407 | ] -66.7 MLshow | |||
| 1408 | 0.500 UL | |||
| 1409 | [] 0 setdash | |||
| 1410 | PL 0.15 0.15 0.15 C 980 640 M | |||
| 1411 | 10179 0 V | |||
| 1412 | stroke | |||
| 1413 | [] 0 setdash | |||
| 1414 | 0.15 0.15 0.15 C 980 8439 M | |||
| 1415 | 10179 0 V | |||
| 1416 | stroke | |||
| 1417 | [] 0 setdash | |||
| 1418 | 0.15 0.15 0.15 C 980 640 M | |||
| 1419 | 0 7799 V | |||
| 1420 | stroke | |||
| 1421 | [] 0 setdash | |||
| 1422 | 0.15 0.15 0.15 C 11159 640 M | |||
| 1423 | 0 7799 V | |||
| 1424 | stroke | |||
| 1425 | 1.000 UL | |||
| 1426 | LTb | |||
| 1427 | 0.00 0.00 0.00 C grestore % colour palette end | |||
| 1428 | stroke | |||
| 1429 | grestore | |||
| 1430 | end | |||
| 1431 | showpage | |||
| 1432 | %%Trailer | |||
| 1433 | %%DocumentFonts: Helvetica |
images/demo_filtre.m
| File was created | 1 | pkg load signal | ||
| 2 | close all | |||
| 3 | clear all | |||
| 4 | ||||
| 5 | d=firls(128,[0 .2 .3 .4 .5 1],[0 0 1 1 0 0]); | |||
| 6 | d=d/max(d); | |||
| 7 | plot(d) | |||
| 8 | N=6; | |||
| 9 | k=find(abs(d)<2^(-N)) | |||
| 10 | hold on | |||
| 11 | plot(k,0,'r.') | |||
| 12 | line([1 128],[2^(-N) 2^(-N)]) | |||
| 13 | line([1 128],[-2^(-N) -2^(-N)]) | |||
| 14 | legend('filter coefficients',[num2str(N),' bit quantization']) | |||
| 15 | kk=find(diff(k)>1); | |||
| 16 | k(kk(1)) | |||
| 17 | k(kk(end)) | |||
| 18 | xlabel('cofficient num');ylabel('normalized coef. value') | |||
| 19 | line([0 k(kk(1))],[0.1 0.1]) | |||
| 20 | line([k(kk(end)) 128],[0.1 0.1]) | |||
| 21 | text(10,0.15,'30 coefs at 0') |
images/demo_filtre.pdf
No preview for this file type