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