Compare View

switch
from
...
to
 
Commits (3)

Diff

Showing 12 changed files Side-by-side Diff

ifcs2018_journal.tex
... ... @@ -120,10 +120,10 @@ processing (as opposed to First-In, First-Out FIFO memory batch processing) of r
120 120 signals, High Level Synthesis (HLS) languages \cite{kasbah2008multigrid} are not considered but
121 121 the problem is tackled at the Very-high-speed-integrated-circuit Hardware Description Language
122 122 (VHDL) level.
123   -{\color{red}Since latency is not an issue in a openloop phase noise characterization instrument,
  123 +Since latency is not an issue in a openloop phase noise characterization instrument,
124 124 the large
125 125 numbre of taps in the FIR, as opposed to the shorter Infinite Impulse Response (IIR) filter,
126   -is not considered as an issue as would be in a closed loop system.} % r2.4
  126 +is not considered as an issue as would be in a closed loop system.
127 127  
128 128 The coefficients are classically expressed as floating point values. However, this binary
129 129 number representation is not efficient for fast arithmetic computation by an FPGA. Instead,
... ... @@ -144,9 +144,9 @@ integer operations is not trivial. As an illustration of the issue related to th
144 144 relation between number of fiter taps and quantization, Fig. \ref{float_vs_int} exhibits
145 145 a 128-coefficient FIR bandpass filter designed using floating point numbers (blue). Upon
146 146 quantization on 6~bit integers, 60 of the 128~coefficients in the beginning and end of the
147   -taps become null, {\color{red}making the large number of coefficients irrelevant: processing
148   -resources % r1.1
149   -are hence saved by shrinking the filter length.} This tradeoff aimed at minimizing resources
  147 +taps become null, making the large number of coefficients irrelevant: processing
  148 +resources
  149 +are hence saved by shrinking the filter length. This tradeoff aimed at minimizing resources
150 150 to reach a given rejection level, or maximizing out of band rejection for a given computational
151 151 resource, will drive the investigation on cascading filters designed with varying tap resolution
152 152 and tap length, as will be shown in the next section. Indeed, our development strategy closely
... ... @@ -163,11 +163,11 @@ moment.
163 163 Our objective is to develop a new methodology applicable to any Digital Signal Processing (DSP)
164 164 chain obtained by assembling basic processing blocks, with hardware and manufacturer independence.
165 165 Achieving such a target requires defining an abstract model to represent some basic properties
166   -of DSP blocks such as perfomance (i.e. rejection or ripples in the bandpass for filters) and
  166 +of DSP blocks such as performance (i.e. rejection or ripples in the bandpass for filters) and
167 167 resource occupation. These abstract properties, not necessarily related to the detailed hardware
168 168 implementation of a given platform, will feed a scheduler solver aimed at assembling the optimum
169 169 target, whether in terms of maximizing performance for a given arbitrary resource occupation, or
170   -minimizing resource occupation for a given perfomance. In our approach, the solution of the
  170 +minimizing resource occupation for a given performance. In our approach, the solution of the
171 171 solver is then synthesized using the dedicated tool provided by each platform manufacturer
172 172 to assess the validity of our abstract resource occupation indicator, and the result of running
173 173 the DSP chain on the FPGA allows for assessing the performance of the scheduler. We emphasize
... ... @@ -184,24 +184,23 @@ time and frequency transfer or characterization \cite{carolina1,carolina2,rsi}.
184 184  
185 185 Addressing only two operations allows for demonstrating the methodology but should not be
186 186 considered as a limitation of the framework which can be extended to assembling any number
187   -of skeleton blocks as long as perfomance and resource occupation can be determined. {\color{red}
  187 +of skeleton blocks as long as performance and resource occupation can be determined.
188 188 Hence,
189   -in this paper we will apply our methodology on simple DSP chains: a white noise input signal % r1.2
  189 +in this paper we will apply our methodology on simple DSP chains: a white noise input signal
190 190 is generated using a Pseudo-Random Number (PRN) generator or by sampling a wideband (125~MS/s)
191   -14-bit Analog to Digital Converter (ADC) loaded by a 50~$\Omega$ resistor.} Once samples have been
  191 +14-bit Analog to Digital Converter (ADC) loaded by a 50~$\Omega$ resistor. Once samples have been
192 192 digitized at a rate of 125~MS/s, filtering is applied to qualify the processing block performance --
193 193 practically meeting the radiofrequency frontend requirement of noise and bandwidth reduction
194 194 by filtering and decimating. Finally, bursts of filtered samples are stored for post-processing,
195 195 allowing to assess either filter rejection for a given resource usage, or validating the rejection
196 196 when implementing a solution minimizing resource occupation.
197 197  
198   -{\color{red}
199   -The first step of our approach is to model the DSP chain. Since we aim at only optimizing % r1.3
  198 +The first step of our approach is to model the DSP chain. Since we aim at only optimizing
200 199 the filtering part of the signal processing chain, we have not included the PRN generator or the
201 200 ADC in the model: the input data size and rate are considered fixed and defined by the hardware.
202 201 The filtering can be done in two ways, either by considering a single monolithic FIR filter
203 202 requiring many coefficients to reach the targeted noise rejection ratio, or by
204   -cascading multiple FIR filters, each with fewer coefficients than found in the monolithic filter.}
  203 +cascading multiple FIR filters, each with fewer coefficients than found in the monolithic filter.
205 204  
206 205 After each filter we leave the possibility of shifting the filtered data to consume
207 206 less resources. Hence in the case of cascaded filter, we define a stage as a filter
... ... @@ -245,12 +244,12 @@ With these coefficients, the \texttt{freqz} function is used to estimate the mag
245 244 transfer function.
246 245 Comparing the performance between FIRs requires however defining a unique criterion. As shown in figure~\ref{fig:fir_mag},
247 246 the FIR magnitude exhibits two parts: we focus here on the transitions width and the rejection rather than on the
248   -bandpass ripples as emphasized in \cite{lim_1988,lim_1996}. {\color{red}Throughout this demonstration,
  247 +bandpass ripples as emphasized in \cite{lim_1988,lim_1996}. Throughout this demonstration,
249 248 we arbitrarily set a bandpass of 40\% of the Nyquist frequency and a bandstop from 60\%
250 249 of the Nyquist frequency to the end of the band, as would be typically selected to prevent
251 250 aliasing before decimating the dataflow by 2. The method is however generalized to any filter
252   -shape as long as it is defined from the initial modelling steps: Fig. \ref{fig:rejection_pyramid}
253   -as described below is indeed unique for each filter shape.}
  251 +shape as long as it is defined from the initial modeling steps: Fig. \ref{fig:rejection_pyramid}
  252 +as described below is indeed unique for each filter shape.
254 253  
255 254 \begin{figure}
256 255 \begin{center}
... ... @@ -290,18 +289,29 @@ the stopband the last 40\%, allowing 20\% transition width.}
290 289 \label{fig:fir_mag}
291 290 \end{figure}
292 291  
293   -In the transition band, the behavior of the filter is left free, we only {\color{red}define} the passband and the stopband characteristics.
  292 +In the transition band, the behavior of the filter is left free, we only define the passband and the stopband characteristics.
294 293 % r2.7
295   -{\color{red}Initial considered criteria include the mean value of the stopband rejection which yields unacceptable results since notches
296   -overestimate the rejection capability of the filter.}
  294 +Initial considered criteria include the mean value of the stopband rejection which yields unacceptable results since notches
  295 +overestimate the rejection capability of the filter.
297 296 % Furthermore, the losses within
298 297 % the passband are not considered and might be excessive for excessively wide transitions widths introduced for filters with few coefficients.
299   -Our final criterion to compute the filter rejection considers
300   -% r2.8 et r2.2 r2.3
301   -the {\color{red}minimal} rejection within the stopband, to which the {\color{red}sum of the absolute values
  298 +{\color{red} In intermediate criterion considered the minimal rejection within the stopband, to which the sum of the absolute values
302 299 within the passband is subtracted to avoid filters with excessive ripples, normalized to the
303   -bin width to remain consistent with the passband criterion (dBc/Hz units in all cases)}. With this
  300 +bin width to remain consistent with the passband criterion (dBc/Hz units in all cases).
  301 +In this case, when we cascaded too filters with a excessive deviation in passband ($>$ 1~dB),
  302 +the final deviation in passband may be too considerable ($>$ 10~dB). Hence our final
  303 +criterion always take the minimal rejection in stopband but we substract the maximal
  304 +amplitude in passband (maximum value minus the minimum value). If this amplitude is
  305 +greater than 1~dB, we discard the filter.}
  306 +% Our final criterion to compute the filter rejection considers
  307 +% % r2.8 et r2.2 r2.3
  308 +% the minimal rejection within the stopband, to which the sum of the absolute values
  309 +% within the passband is subtracted to avoid filters with excessive ripples, normalized to the
  310 +% bin width to remain consistent with the passband criterion (dBc/Hz units in all cases).
  311 +With this
304 312 criterion, we meet the expected rejection capability of low pass filters as shown in figure~\ref{fig:custom_criterion}.
  313 +{\color{red} The best filter has a correct rejection estimation and the worst filter
  314 +is discarded.} % AH 20191609: Utile ?
305 315  
306 316 % \begin{figure}
307 317 % \centering
... ... @@ -312,9 +322,9 @@ criterion, we meet the expected rejection capability of low pass filters as show
312 322  
313 323 \begin{figure}
314 324 \centering
315   -\includegraphics[width=\linewidth]{images/colored_custom_criterion}
316   -\caption{Custom criterion (maximum rejection in the stopband minus the {\color{red} sum of the
317   -absolute values of the passband rejection normalized to the bandwidth})
  325 +\includegraphics[width=\linewidth]{images/custom_criterion}
  326 +\caption{\color{red}Custom criterion (maximum rejection in the stopband minus the maximal
  327 +amplitude in passband (if $>$ 1~dB the filter is discarded) rejection normalized to the bandwidth)
318 328 comparison between monolithic filter and cascaded filters}
319 329 \label{fig:custom_criterion}
320 330 \end{figure}
... ... @@ -330,9 +340,9 @@ the rejection. Hence the best coefficient set are on the vertex of the pyramid.
330 340 \begin{figure}
331 341 \centering
332 342 \includegraphics[width=\linewidth]{images/rejection_pyramid}
333   -\caption{{\color{red}{Filter}} rejection as a function of number of coefficients and number of bits
334   -{\color{red}: this lookup table will be used to identify which filter parameters -- number of bits
335   -representing coefficients and number of coefficients -- best match the targeted transfer function.}}
  343 +\caption{\color{red}Filter rejection as a function of number of coefficients and number of bits
  344 +: this lookup table will be used to identify which filter parameters -- number of bits
  345 +representing coefficients and number of coefficients -- best match the targeted transfer function.}
336 346 \label{fig:rejection_pyramid}
337 347 \end{figure}
338 348  
... ... @@ -346,32 +356,30 @@ are two different filters with maximums and notches not located at the same freq
346 356 Hence when summing the transfer functions, the resulting rejection shown as the dashed yellow line is improved
347 357 with respect to a basic sum of the rejection criteria shown as a the dotted yellow line.
348 358 % r2.9
349   -Thus, estimating the rejection of filter cascades is more complex than {\color{red}taking} the sum of all the rejection
350   -criteria of each filter. However since the {\color{red}individual filter rejection} sum underestimates the rejection capability of the cascade,
  359 +Thus, estimating the rejection of filter cascades is more complex than taking the sum of all the rejection
  360 +criteria of each filter. However since the individual filter rejection sum underestimates the rejection capability of the cascade,
351 361 % r2.10
352   -this upper bound is considered as a {\color{red}conservative} and acceptable criterion for deciding on the suitability
  362 +this upper bound is considered as a conservative and acceptable criterion for deciding on the suitability
353 363 of the filter cascade to meet design criteria.
354 364  
355 365 \begin{figure}
356 366 \centering
357 367 \includegraphics[width=\linewidth]{images/cascaded_criterion}
358   -\caption{{\color{red}Transfer function of individual filters and after cascading} the two filters,
359   -{\color{red}demonstrating that the selected criterion of maximum rejection in the bandstop (horizontal
  368 +\caption{Transfer function of individual filters and after cascading the two filters,
  369 +demonstrating that the selected criterion of maximum rejection in the bandstop (horizontal
360 370 lines) is met. Notice that the cascaded filter has better rejection than summing the bandstop
361   -maximum of each individual filter.}
  371 +maximum of each individual filter.
362 372 }
363 373 \label{fig:sum_rejection}
364 374 \end{figure}
365 375  
366   -% r2.6
367   -{\color{red}
368 376 Finally in our case, we consider that the input signal are fully known. The
369 377 resolution of the input data stream are fixed and still the same for all experiments
370   -in this paper.}
  378 +in this paper.
371 379  
372 380 Based on this analysis, we address the estimate of resource consumption (called
373 381 % r2.11
374   -silicon area -- in the case of FPGAs {\color{red}this means} processing cells) as a function of
  382 +silicon area -- in the case of FPGAs this means processing cells) as a function of
375 383 filter characteristics. As a reminder, we do not aim at matching actual hardware
376 384 configuration but consider an arbitrary silicon area occupied by each processing function,
377 385 and will assess after synthesis the adequation of this arbitrary unit with actual
... ... @@ -415,7 +423,6 @@ shift bit would cause an additional 6~dB rejection rise. A totally equivalent eq
415 423 $\pi_i^S \leq \pi_i^- + \pi_i^C - 1 - \sum_{k=1}^{i} \left(1 + \frac{r_j}{6}\right)$.
416 424 Finally, equation~\ref{eq:init} gives the number of bits of the global input.
417 425  
418   -{\color{red}
419 426 This model is non-linear since we multiply some variable with another variable
420 427 and it is even non-quadratic, as the cost function $F$ does not have a known
421 428 linear or quadratic expression. To linearize this problem, we introduce $p$ FIR configurations.
... ... @@ -437,7 +444,6 @@ we define $1 \leq j \leq p$ so that the function $F$ can be estimated (Look Up T
437 444 for each configurations thanks to the rejection criterion. We also define the binary
438 445 variable $\delta_{ij}$ that has value 1 if stage~$i$ is in configuration~$j$
439 446 and 0 otherwise. The new equations are as follows:
440   -}
441 447  
442 448 \begin{align}
443 449 a_i & = \sum_{j=1}^p \delta_{ij} \times C_{ij} \times (\pi_{ij}^C + \pi_i^-), & \forall i \in [1, n] \label{eq:areadef2} \\
... ... @@ -450,7 +456,6 @@ Equations \ref{eq:areadef2}, \ref{eq:rejectiondef2} and \ref{eq:bits2} replace
450 456 respectively equations \ref{eq:areadef}, \ref{eq:rejectiondef} and \ref{eq:bits}.
451 457 Equation~\ref{eq:config} states that for each stage, a single configuration is chosen at most.
452 458  
453   -{\color{red}
454 459 % JM: conflict merge
455 460 % However the problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2}
456 461 % we multiply
... ... @@ -464,7 +469,7 @@ Equation~\ref{eq:config} states that for each stage, a single configuration is c
464 469 The problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2}
465 470 we multiply
466 471 $\delta_{ij}$ and $\pi_i^-$. However, since $\delta_{ij}$ is a binary variable we can
467   -linearise linearize this multiplication. The following formula shows how to linearize
  472 +linearize this multiplication. The following formula shows how to linearize
468 473 this situation in general case with $y$ a binary variable and $x$ a real variable ($0 \leq x \leq X^{max}$):
469 474 \begin{equation*}
470 475 m = x \times y \implies
... ... @@ -481,7 +486,7 @@ So if we bound up $\pi_i^-$ by 128~bits which is the maximum data size whose est
481 486 assumed on hardware characteristics,
482 487 the Gurobi (\url{www.gurobi.com}) optimization software will be able to linearize
483 488 for us the quadratic problem so the model is left as is. This model
484   -has $O(np)$ variables and $O(n)$ constraints.}
  489 +has $O(np)$ variables and $O(n)$ constraints.
485 490  
486 491 % This model is non-linear and even non-quadratic, as $F$ does not have a known
487 492 % linear or quadratic expression. We introduce $p$ FIR configurations
... ... @@ -515,7 +520,7 @@ has $O(np)$ variables and $O(n)$ constraints.}
515 520  
516 521 Two problems will be addressed using the workflow described in the next section: on the one
517 522 hand maximizing the rejection capability of a set of cascaded filters occupying a fixed arbitrary
518   -silcon area (section~\ref{sec:fixed_area}) and on the second hand the dual problem of minimizing the silicon area
  523 +silicon area (section~\ref{sec:fixed_area}) and on the second hand the dual problem of minimizing the silicon area
519 524 for a fixed rejection criterion (section~\ref{sec:fixed_rej}). In the latter case, the
520 525 objective function is replaced with:
521 526 \begin{align}
... ... @@ -560,8 +565,8 @@ in the computation of the results.
560 565 \draw[->] (Deploy) edge node [left] { (5) } (Postproc) ;
561 566 \draw[->] (Postproc) -- (Results) ;
562 567 \end{tikzpicture}
563   - \caption{Design workflow from the input parameters to the results {\color{red} allowing for
564   -a fully automated optimal solution search.}}
  568 + \caption{Design workflow from the input parameters to the results allowing for
  569 +a fully automated optimal solution search.}
565 570 \label{fig:workflow}
566 571 \end{figure}
567 572  
... ... @@ -616,7 +621,7 @@ The experimental setup is composed of three cases. The raw input is generated
616 621 by a Pseudo Random Number (PRN) generator, which fixes the input data size $\Pi^I$.
617 622 Then the total silicon area $\mathcal{A}$ has been fixed to either 500, 1000 or 1500
618 623 arbitrary units. Hence, the three cases have been named: MAX/500, MAX/1000, MAX/1500.
619   -The number of configurations $p$ is 1827, with $C_i$ ranging from 3 to 60 and $\pi^C$
  624 +The number of configurations $p$ is \color{1133}, with $C_i$ ranging from 3 to 60 and $\pi^C$
620 625 ranging from 2 to 22. In each case, the quadratic program has been able to give a
621 626 result up to five stages ($n = 5$) in the cascaded filter.
622 627  
... ... @@ -630,16 +635,17 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver
630 635 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/500}
631 636 \label{tbl:gurobi_max_500}
632 637 \centering
633   - {\scalefont{0.77}
  638 + {\color{red}
  639 + \scalefont{0.77}
634 640 \begin{tabular}{|c|ccccc|c|c|}
635 641 \hline
636 642 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
637 643 \hline
638 644 1 & (21, 7, 0) & - & - & - & - & 32~dB & 483 \\
639   - 2 & (3, 3, 15) & (31, 9, 0) & - & - & - & 58~dB & 460 \\
640   - 3 & (3, 3, 15) & (27, 9, 0) & (5, 3, 0) & - & - & 66~dB & 488 \\
641   - 4 & (3, 3, 15) & (19, 7, 0) & (11, 5, 0) & (3, 3, 0) & - & 74~dB & 499 \\
642   - 5 & (3, 3, 15) & (23, 8, 0) & (3, 3, 1) & (3, 3, 0) & (3, 3, 0) & 78~dB & 489 \\
  645 + 2 & (3, 5, 18) & (33, 10, 0) & - & - & - & 48~dB & 492 \\
  646 + 3 & (3, 5, 18) & (19, 7, 1) & (15, 7, 0) & - & - & 56~dB & 493 \\
  647 + 4 & (3, 5, 18) & (19, 7, 1) & (15, 7, 0) & - & - & 56~dB & 493 \\
  648 + 5 & (3, 5, 18) & (19, 7, 1) & (15, 7, 0) & - & - & 56~dB & 493 \\
643 649 \hline
644 650 \end{tabular}
645 651 }
... ... @@ -649,16 +655,16 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver
649 655 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1000}
650 656 \label{tbl:gurobi_max_1000}
651 657 \centering
652   - {\scalefont{0.77}
  658 + {\color{red}\scalefont{0.77}
653 659 \begin{tabular}{|c|ccccc|c|c|}
654 660 \hline
655 661 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
656 662 \hline
657 663 1 & (37, 11, 0) & - & - & - & - & 56~dB & 999 \\
658   - 2 & (3, 3, 15) & (51, 14, 0) & - & - & - & 87~dB & 975 \\
659   - 3 & (3, 3, 15) & (35, 11, 0) & (19, 7, 0) & - & - & 99~dB & 1000 \\
660   - 4 & (3, 4, 16) & (27, 8, 0) & (19, 7, 1) & (11, 5, 0) & - & 103~dB & 998 \\
661   - 5 & (3, 3, 15) & (31, 9, 0) & (19, 7, 0) & (3, 3, 1) & (3, 3, 0) & 111~dB & 984 \\
  664 + 2 & (15, 8, 17) & (35, 11, 0) & - & - & - & 80~dB & 990 \\
  665 + 3 & (3, 13, 26) & (31, 9, 1) & (27, 9, 0) & - & - & 92~dB & 999 \\
  666 + 4 & (3, 5, 18) & (19, 7, 1) & (19, 7, 0) & (19, 7, 0) & - & 98~dB & 994 \\
  667 + 5 & (3, 5, 18) & (19, 7, 1) & (19, 7, 0) & (19, 7, 0) & - & 98~dB & 994 \\
662 668 \hline
663 669 \end{tabular}
664 670 }
... ... @@ -668,16 +674,16 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver
668 674 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1500}
669 675 \label{tbl:gurobi_max_1500}
670 676 \centering
671   - {\scalefont{0.77}
  677 + {\color{red}\scalefont{0.77}
672 678 \begin{tabular}{|c|ccccc|c|c|}
673 679 \hline
674 680 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
675 681 \hline
676 682 1 & (47, 15, 0) & - & - & - & - & 71~dB & 1457 \\
677   - 2 & (19, 6, 15) & (51, 14, 0) & - & - & - & 103~dB & 1489 \\
678   - 3 & (3, 3, 15) & (35, 11, 0) & (35, 11, 0) & - & - & 122~dB & 1492 \\
679   - 4 & (3, 3, 15) & (27, 8, 0) & (19, 7, 0) & (27, 9, 0) & - & 129~dB & 1498 \\
680   - 5 & (3, 3, 15) & (23, 9, 2) & (27, 9, 0) & (19, 7, 0) & (3, 3, 0) & 136~dB & 1499 \\
  683 + 2 & (19, 6, 15) & (51, 14, 0) & - & - & - & 102~dB & 1489 \\
  684 + 3 & (15, 9, 18) & (31, 8, 0) & (27, 9, 0) & - & - & 116~dB & 1488 \\
  685 + 4 & (3, 9, 22) & (31, 9, 1) & (27, 9, 0) & (19, 7, 0) & - & 125~dB & 1500 \\
  686 + 5 & (3, 9, 22) & (31, 9, 1) & (27, 9, 0) & (19, 7, 0) & - & 125~dB & 1500 \\
681 687 \hline
682 688 \end{tabular}
683 689 }
... ... @@ -685,8 +691,12 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver
685 691  
686 692 \renewcommand{\arraystretch}{1}
687 693  
688   -From these tables, we can first state that the more stages are used to define
689   -the cascaded FIR filters, the better the rejection. It was an expected result as it has
  694 +% From these tables, we can first state that the more stages are used to define
  695 +% the cascaded FIR filters, the better the rejection.
  696 +{\color{red} From these tables, we can first state that we reach an optimal solution
  697 +for each case : $n = 3$ for MAX/500 and $n = 4$ for MAX/1000 and MAX/1500. Moreover
  698 +the cascade filters always are better than monolithic solution.}
  699 +It was an expected result as it has
690 700 been previously observed that many small filters are better than
691 701 a single large filter \cite{lim_1988, lim_1996, young_1992}, despite such conclusions
692 702 being hardly used in practice due to the lack of tools for identifying individual filter
... ... @@ -782,9 +792,10 @@ the FIR filters and remove additional processing blocks including FIFO and Progr
782 792 Logic (PL -- FPGA) to Processing System (PS -- general purpose processor) communication.
783 793  
784 794 \begin{table}[h!tb]
785   - \caption{Resource occupation {\color{red}following synthesis of the solutions found for
786   -the problem of maximizing rejection for a given resource allocation}. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.}
  795 + \caption{Resource occupation following synthesis of the solutions found for
  796 +the problem of maximizing rejection for a given resource allocation. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.}
787 797 \label{tbl:resources_usage}
  798 + \color{red}
788 799 \centering
789 800 \begin{tabular}{|c|c|ccc|c|}
790 801 \hline
... ... @@ -792,22 +803,22 @@ the problem of maximizing rejection for a given resource allocation}. The last c
792 803 & LUT & 249 & 453 & 627 & \emph{17600} \\
793 804 1 & BRAM & 1 & 1 & 1 & \emph{120} \\
794 805 & DSP & 21 & 37 & 47 & \emph{80} \\ \hline
795   - & LUT & 2374 & 5494 & 691 & \emph{17600} \
  806 + & LUT & 2253 & 474 & 691 & \emph{17600} \
796 807 2 & BRAM & 2 & 2 & 2 & \emph{120} \\
797   - & DSP & 0 & 0 & 70 & \emph{80} \\ \hline
798   - & LUT & 2443 & 3304 & 3521 & \emph{17600} \\
  808 + & DSP & 0 & 50 & 70 & \emph{80} \\ \hline
  809 + & LUT & 1329 & 2006 & 3158 & \emph{17600} \\
799 810 3 & BRAM & 3 & 3 & 3 & \emph{120} \\
800   - & DSP & 0 & 19 & 35 & \emph{80} \\ \hline
801   - & LUT & 2634 & 3753 & 2557 & \emph{17600} \\
802   - 4 & BRAM & 4 & 4 & 4 & \emph{120} \\
803   - & DPS & 0 & 19 & 46 & \emph{80} \\ \hline
804   - & LUT & 2423 & 3047 & 2847 & \emph{17600} \\
805   - 5 & BRAM & 5 & 5 & 5 & \emph{120} \\
806   - & DPS & 0 & 22 & 46 & \emph{80} \\ \hline
  811 + & DSP & 15 & 30 & 42 & \emph{80} \\ \hline
  812 + & LUT & 1329 & 1600 & 2260 & \emph{17600} \\
  813 + 4 & BRAM & 3 & 4 & 4 & \emph{120} \\
  814 + & DPS & 15 & 38 & 49 & \emph{80} \\ \hline
  815 + & LUT & 1329 & 1600 & 2260 & \emph{17600} \\
  816 + 5 & BRAM & 3 & 4 & 4 & \emph{120} \\
  817 + & DPS & 15 & 38 & 49 & \emph{80} \\ \hline
807 818 \end{tabular}
808 819 \end{table}
809 820  
810   -In some cases, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that,
  821 +{\color{red} In case $n = 2$ for MAX/500}, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that,
811 822 when the filter coefficients are small enough, or when the input size is small
812 823 enough, Vivado optimizes resource consumption by selecting multiplexers to
813 824 implement the multiplications instead of a DSP. In this case, it is quite difficult
... ... @@ -816,7 +827,7 @@ to compare the whole silicon budget.
816 827 However, a rough estimation can be made with a simple equivalence: looking at
817 828 the first column (MAX/500), where the number of LUTs is quite stable for $n \geq 2$,
818 829 we can deduce that a DSP is roughly equivalent to 100~LUTs in terms of silicon
819   -area use. With this equivalence, our 500 arbitraty units correspond to 2500 LUTs,
  830 +area use. With this equivalence, our 500 arbitrary units correspond to 2500 LUTs,
820 831 1000 arbitrary units correspond to 5000 LUTs and 1500 arbitrary units correspond
821 832 to 7300 LUTs. The conclusion is that the orders of magnitude of our arbitrary
822 833 unit map well to actual hardware resources. The relatively small differences can probably be explained
... ... @@ -832,19 +843,24 @@ problem when the maximal area is fixed to 500, 1000 and 1500 arbitrary units.
832 843 \caption{Time needed to solve the quadratic program with Gurobi}
833 844 \label{tbl:area_time}
834 845 \centering
  846 +\color{red}
835 847 \begin{tabular}{|c|c|c|c|}\hline
836 848 $n$ & Time (MAX/500) & Time (MAX/1000) & Time (MAX/1500) \\\hline\hline
837   -1 & 0.1~s & 0.1~s & 0.3~s \\
838   -2 & 1.1~s & 2.2~s & 12~s \\
839   -3 & 17~s & 137~s ($\approx$ 2~min) & 275~s ($\approx$ 4~min) \\
840   -4 & 52~s & 5448~s ($\approx$ 90~min) & 5505~s ($\approx$ 17~h) \\
841   -5 & 286~s ($\approx$ 4~min) & 4119~s ($\approx$ 68~min) & 235479~s ($\approx$ 3~days) \\\hline
  849 +1 & 0.01~s & 0.02~s & 0.03~s \\
  850 +2 & 0.1~s & 1~s & 2~s \\
  851 +3 & 5~s & 27~s & 351~s ($\approx$ 6~min) \\
  852 +4 & 4~s & 141~s ($\approx$ 3~min) & 1134~s ($\approx$ 18~min) \\
  853 +5 & 6~s & 630~s ($\approx$ 10~min) & 49400~s ($\approx$ 13~h) \\\hline
842 854 \end{tabular}
843 855 \end{table}
844 856  
845   -As expected, the computation time seems to rise exponentially with the number of stages. % TODO: exponentiel ?
  857 +As expected, the computation time seems to rise exponentially with the number of stages.
846 858 When the area is limited, the design exploration space is more limited and the solver is able to
847 859 find an optimal solution faster.
  860 +{\color{red} We can also notice that the solution with $n$ greater than the optimal $n$
  861 +take more time than the optimal one. This can be explain since the search space is
  862 +more important and we need more time to ensure that the previous solution (from the
  863 +smaller value of $n$) still the optimal solution.}
848 864  
849 865 \subsection{Minimizing resource occupation at fixed rejection}\label{sec:fixed_rej}
850 866  
... ... @@ -868,15 +884,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f
868 884 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/40}
869 885 \label{tbl:gurobi_min_40}
870 886 \centering
871   - {\scalefont{0.77}
  887 + {\scalefont{0.77}\color{red}
872 888 \begin{tabular}{|c|ccccc|c|c|}
873 889 \hline
874 890 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
875 891 \hline
876 892 1 & (27, 8, 0) & - & - & - & - & 41~dB & 648 \\
877   - 2 & (3, 2, 14) & (19, 7, 0) & - & - & - & 40~dB & 263 \\
878   - 3 & (3, 3, 15) & (11, 5, 0) & (3, 3, 0) & - & - & 41~dB & 192 \\
879   - 4 & (3, 3, 15) & (3, 3, 0) & (3, 3, 0) & (3, 3, 0) & - & 42~dB & 147 \\
  893 + 2 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\
  894 + 3 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\
  895 + 4 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\
  896 + 5 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\
880 897 \hline
881 898 \end{tabular}
882 899 }
... ... @@ -886,16 +903,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f
886 903 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/60}
887 904 \label{tbl:gurobi_min_60}
888 905 \centering
889   - {\scalefont{0.77}
  906 + {\scalefont{0.77}\color{red}
890 907 \begin{tabular}{|c|ccccc|c|c|}
891 908 \hline
892 909 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
893 910 \hline
894 911 1 & (39, 13, 0) & - & - & - & - & 60~dB & 1131 \\
895   - 2 & (3, 3, 15) & (35, 10, 0) & - & - & - & 60~dB & 547 \\
896   - 3 & (3, 3, 15) & (27, 8, 0) & (3, 3, 0) & - & - & 62~dB & 426 \\
897   - 4 & (3, 2, 14) & (11, 5, 1) & (11, 5, 0) & (3, 3, 0) & - & 60~dB & 344 \\
898   - 5 & (3, 2, 14) & (3, 3, 1) & (3, 3, 0) & (3, 3, 0) & (3, 3, 0) & 60~dB & 279 \\
  912 + 2 & (15, 6, 16) & (23, 9, 0) & - & - & - & 60~dB & 675 \\
  913 + 3 & (3, 5, 18) & (15, 6, 2) & (23, 8, 0) & - & - & 60~dB & 543 \\
  914 + 4 & (3, 5, 18) & (15, 6, 2) & (23, 8, 0) & - & - & 60~dB & 543 \\
  915 + 5 & (3, 5, 18) & (15, 6, 2) & (23, 8, 0) & - & - & 60~dB & 543 \\
899 916 \hline
900 917 \end{tabular}
901 918 }
... ... @@ -905,16 +922,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f
905 922 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/80}
906 923 \label{tbl:gurobi_min_80}
907 924 \centering
908   - {\scalefont{0.77}
  925 + {\scalefont{0.77}\color{red}
909 926 \begin{tabular}{|c|ccccc|c|c|}
910 927 \hline
911 928 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
912 929 \hline
913 930 1 & (55, 16, 0) & - & - & - & - & 81~dB & 1760 \\
914   - 2 & (3, 3, 15) & (47, 14, 0) & - & - & - & 80~dB & 903 \\
915   - 3 & (3, 3, 15) & (23, 9, 0) & (19, 7, 0) & - & - & 80~dB & 698 \\
916   - 4 & (3, 3, 15) & (27, 9, 0) & (7, 7, 4) & (3, 3, 0) & - & 80~dB & 605 \\
917   - 5 & (3, 2, 14) & (27, 8, 0) & (3, 3, 1) & (3, 3, 0) & (3, 3, 0) & 81~dB & 534 \\
  931 + 2 & (15, 8, 17) & (35, 11, 0) & - & - & - & 80~dB & 990 \\
  932 + 3 & (3, 7, 20) & (31, 9, 1) & (19, 7, 0) & - & - & 80~dB & 783 \\
  933 + 4 & (3, 7, 20) & (31, 9, 1) & (19, 7, 0) & - & - & 80~dB & 783 \\
  934 + 5 & (3, 7, 20) & (31, 9, 1) & (19, 7, 0) & - & - & 80~dB & 783 \\
918 935 \hline
919 936 \end{tabular}
920 937 }
... ... @@ -924,16 +941,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f
924 941 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/100}
925 942 \label{tbl:gurobi_min_100}
926 943 \centering
927   - {\scalefont{0.77}
  944 + {\scalefont{0.77}\color{red}
928 945 \begin{tabular}{|c|ccccc|c|c|}
929 946 \hline
930 947 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
931 948 \hline
932 949 1 & - & - & - & - & - & - & - \\
933   - 2 & (15, 7, 17) & (51, 14, 0) & - & - & - & 100~dB & 1365 \\
934   - 3 & (3, 3, 15) & (27, 9, 0) & (27, 9, 0) & - & - & 100~dB & 1002 \\
935   - 4 & (3, 3, 15) & (31, 9, 0) & (19, 7, 0) & (3, 3, 0) & - & 101~dB & 909 \\
936   - 5 & (3, 3, 15) & (23, 8, 1) & (19, 7, 0) & (3, 3, 0) & (3, 3, 0) & 101~dB & 810 \\
  950 + 2 & (27, 9, 15) & (35, 11, 0) & - & - & - & 100~dB & 1410 \\
  951 + 3 & (3, 5, 18) & (35, 11, 1) & (27, 9, 0) & - & - & 100~dB & 1147 \\
  952 + 4 & (3, 5, 18) & (15, 6, 2) & (27, 9, 0) & (19, 7, 0) & - & 100~dB & 1067 \\
  953 + 5 & (3, 5, 18) & (15, 6, 2) & (27, 9, 0) & (19, 7, 0) & - & 100~dB & 1067 \\
937 954 \hline
938 955 \end{tabular}
939 956 }
... ... @@ -944,8 +961,8 @@ From these tables, we can first state that almost all configurations reach the t
944 961 level or even better thanks to our underestimate of the cascade rejection as the sum of the
945 962 individual filter rejection. The only exception is for the monolithic case ($n = 1$) in
946 963 MIN/100: no solution is found for a single monolithic filter reach a 100~dB rejection.
947   -Futhermore, the area of the monolithic filter is twice as big as the two cascaded filters
948   -(1131 and 1760 arbitrary units v.s 547 and 903 arbitrary units for 60 and 80~dB rejection
  964 +Furthermore, the area of the monolithic filter is twice as big as the two cascaded filters
  965 +{\color{red}(675 and 1131 arbitrary units v.s 990 and 1760 arbitrary units for 60 and 80~dB rejection}
949 966 respectively). More generally, the more filters are cascaded, the lower the occupied area.
950 967  
951 968 Like in previous section, the solver chooses always a little filter as first
... ... @@ -954,9 +971,12 @@ as in the previous section, with the solver using just enough bits not to degrad
954 971 signal and in the second filter selecting a better filter to improve rejection without
955 972 having too many bits in the output data.
956 973  
957   -For the specific case of MIN/40 for $n = 5$ the solver has determined that the optimal
958   -number of filters is 4 so it did not chose any configuration for the last filter. Hence this
959   -solution is equivalent to the result for $n = 4$.
  974 +{\color{red} For each case, we found an optimal solution with $n < 5$: for MIN/40 $n=2$,
  975 +for MIN/60 and MIN/80 $n = 3$ and for MIN/100 $n = 4$. In all cases, the solutions
  976 +when $n$ is greater than the optimal $n$ they remain identical to the optimal one.}
  977 +% For the specific case of MIN/40 for $n = 5$ the solver has determined that the optimal
  978 +% number of filters is 4 so it did not chose any configuration for the last filter. Hence this
  979 +% solution is equivalent to the result for $n = 4$.
960 980  
961 981 The following graphs present the rejection for real data on the FPGA. In all the following
962 982 figures, the solid line represents the actual rejection of the filtered
... ... @@ -1047,25 +1067,25 @@ PS communication.
1047 1067 \caption{Resource occupation. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.}
1048 1068 \label{tbl:resources_usage_comp}
1049 1069 \centering
1050   - {\scalefont{0.90}
  1070 + {\scalefont{0.90}\color{red}
1051 1071 \begin{tabular}{|c|c|cccc|c|}
1052 1072 \hline
1053 1073 $n$ & & MIN/40 & MIN/60 & MIN/80 & MIN/100 & \emph{Zynq 7010} \\ \hline\hline
1054 1074 & LUT & 343 & 334 & 772 & - & \emph{17600} \\
1055 1075 1 & BRAM & 1 & 1 & 1 & - & \emph{120} \\
1056 1076 & DSP & 27 & 39 & 55 & - & \emph{80} \\ \hline
1057   - & LUT & 1252 & 2862 & 5099 & 640 & \emph{17600} \
  1077 + & LUT & 1664 & 2329 & 474 & 620 & \emph{17600} \
1058 1078 2 & BRAM & 2 & 2 & 2 & 2 & \emph{120} \\
1059   - & DSP & 0 & 0 & 0 & 66 & \emph{80} \\ \hline
1060   - & LUT & 891 & 2148 & 2023 & 2448 & \emph{17600} \\
1061   - 3 & BRAM & 3 & 3 & 3 & 3 & \emph{120} \\
1062   - & DSP & 0 & 0 & 19 & 27 & \emph{80} \\ \hline
1063   - & LUT & 662 & 1729 & 2451 & 2893 & \emph{17600} \\
1064   - 4 & BRAM & 4 & 4 & 4 & 4 & \emph{120} \\
1065   - & DPS & 0 & 0 & 7 & 19 & \emph{80} \\ \hline
1066   - & LUT & - & 1259 & 2602 & 2505 & \emph{17600} \\
1067   - 5 & BRAM & - & 5 & 5 & 5 & \emph{120} \\
1068   - & DPS & - & 0 & 0 & 19 & \emph{80} \\ \hline
  1079 + & DSP & 0 & 15 & 50 & 62 & \emph{80} \\ \hline
  1080 + & LUT & 1664 & 3114 & 1884 & 2873 & \emph{17600} \\
  1081 + 3 & BRAM & 2 & 3 & 3 & 3 & \emph{120} \\
  1082 + & DSP & 0 & 0 & 22 & 27 & \emph{80} \\ \hline
  1083 + & LUT & 1664 & 3114 & 2570 & 4318 & \emph{17600} \\
  1084 + 4 & BRAM & 2 & 3 & 4 & 4 & \emph{120} \\
  1085 + & DPS & 0 & 15 & 19 & 19 & \emph{80} \\ \hline
  1086 + & LUT & 1664 & 3114 & 2570 & 4318 & \emph{17600} \\
  1087 + 5 & BRAM & 2 & 3 & 4 & 4 & \emph{120} \\
  1088 + & DPS & 0 & 0 & 19 & 19 & \emph{80} \\ \hline
1069 1089 \end{tabular}
1070 1090 }
1071 1091 \end{table}
... ... @@ -1086,25 +1106,24 @@ the quadratic program.
1086 1106 \caption{Time to solve the quadratic program with Gurobi}
1087 1107 \label{tbl:area_time_comp}
1088 1108 \centering
1089   -{\scalefont{0.90}
  1109 +{\scalefont{0.90}\color{red}
1090 1110 \begin{tabular}{|c|c|c|c|c|}\hline
1091 1111 $n$ & Time (MIN/40) & Time (MIN/60) & Time (MIN/80) & Time (MIN/100) \\\hline\hline
1092   -1 & 0.07~s & 0.02~s & 0.01~s & - \\
1093   -2 & 7.8~s & 16~s & 14~s & 1.8~s \\
1094   -3 & 4.7~s & 14~s & 28~s & 39~s \\
1095   -4 & 39~s & 20~s & 193~s & 522~s ($\approx$ 9~min) \\
1096   -5 & - & 12~s & 170~s & 1048~s ($\approx$ 17~min) \\\hline
  1112 +1 & 0.04~s & 0.01~s & 0.01~s & - \\
  1113 +2 & 2.7~s & 2.4~s & 2.4~s & 0.8~s \\
  1114 +3 & 4.6~s & 7~s & 7~s & 18~s \\
  1115 +4 & 3~s & 22~s & 70~s & 220~s ($\approx$ 3~min) \\
  1116 +5 & 5~s & 122~s & 200~s & 384~s ($\approx$ 5~min) \\\hline
1097 1117 \end{tabular}
1098 1118 }
1099 1119 \end{table}
1100 1120 \renewcommand{\arraystretch}{1}
1101 1121  
1102 1122 The time needed to solve this configuration is significantly shorter than the time
1103   -needed in the previous section. Indeed the worst time in this case is only 17~minutes,
1104   -compared to 3~days in the previous section: this problem is more easily solved than the
  1123 +needed in the previous section. Indeed the worst time in this case is only {\color{red}5~minutes,
  1124 +compared to 13~hours} in the previous section: this problem is more easily solved than the
1105 1125 previous one.
1106 1126  
1107   -{\color{red} % r1.4
1108 1127 To conclude, we compare our monolithic filters with the FIR Compiler provided by
1109 1128 Xilinx in the Vivado software suite (v.2018.2). For each experiment we use the
1110 1129 same coefficient set and we compare the resource consumption, having checked that
... ... @@ -1137,11 +1156,10 @@ MIN/80 &amp; 482 &amp; 0 &amp; 55 &amp; 772 &amp; 1 &amp; 55
1137 1156 \end{tabular}
1138 1157 \end{table}
1139 1158 \renewcommand{\arraystretch}{1}
1140   -}
1141 1159  
1142 1160 \section{Conclusion}
1143 1161  
1144   -We have proposed a new approach to schedule a set of signal processing blocks whose performances
  1162 +We have proposed a new approach to optimize a set of signal processing blocks whose performances
1145 1163 and resource consumption has been tabulated, and applied this methodology to the practical
1146 1164 case of implementing cascaded FIR filters inside a FPGA.
1147 1165 This method aims to be hardware independent and focuses an a high-level of abstraction.
ifcs2018_journal_reponse2.tex
... ... @@ -0,0 +1,47 @@
  1 +% MANUSCRIPT NO. TUFFC-09469-2019.R1
  2 +% MANUSCRIPT TYPE: Papers
  3 +% TITLE: Filter optimization for real time digital processing of radiofrequency signals: application to oscillator metrology
  4 +% AUTHOR(S): HUGEAT, Arthur; BERNARD, Julien; Goavec-Mérou, Gwenhaël; Bourgeois, Pierre-Yves; Friedt, Jean-Michel
  5 +
  6 +\documentclass[a4paper]{article}
  7 +\usepackage[english]{babel}
  8 +\usepackage{fullpage,graphicx,amsmath, subcaption}
  9 +\begin{document}
  10 +\begin{center}
  11 +{\bf\Large
  12 +Rebuttal letter to the review #2 of the manuscript entitled
  13 +
  14 +``Filter optimization for real time digital processing of radiofrequency
  15 +signals: application to oscillator metrology''
  16 +}
  17 +
  18 +by A. Hugeat \& al.
  19 +\end{center}
  20 +
  21 +%
  22 +% REVIEWERS' COMMENTS:
  23 +% Reviewer: 1
  24 +%
  25 +% Comments to the Author
  26 +% The Authors have implemented all Reviewers’ remarks except the one related to the criterion that, in my opinion, is the most important one. By considering ``the minimal rejection within the stopband, to which the sum of the absolute values within the passband is subtracted to avoid filters with excessive ripples, normalized to the bin width to remain consistent with the passband criterion (dBc/Hz units in all cases)'' (please, find a way to state criterions more clearly), the Authors get filters with very different behaviors in pass band and, consequently, their comparison loses its meaning.
  27 +% In practice, the Authors use a good method based on a bad criterion, and this point weakens a lot the results they present.
  28 +% In phase noise metrology, the target is an uncertainty of 1 dB, even less. In this regard, I would personally use a maximum ripple in pass band of 1 dB (or less), while, in some cases, the filters presented in the Manuscript exceed 10 dB of ripple, which is definitely too much.
  29 +% The Authors seem to be reactive in redoing the measures and it does not seem a big problem for them to re-run the analysis with a better criterion. The article would gain a lot, because, in addition to the methodology, the reader could understand if it is actually better to put a cascade of small filters rather than a single large filter that is an interesting point.
  30 +% To help the Authors in finding a better criterion (``…finding a better criterion to avoid the ripples in the passband is challenging...''), in addition to the minimum rejection in stop band, I suggest to specify also the maximum ripple in pass band as it is done, for example, in fig. 4.10, pg. 146 of Crochierie R. E. and Rabiner L. R. (1983) ``Multirate Digital Signal Processing'', Prentice-Hall (see attach). This suggestion, in practice, specify the maximum allowed deviation from the transfer function modulus of an ideal filter: 1 in pass band and 0 in stop band. As a result, it should solve one of the Authors’ concerns: ``Selecting a strong constraint such as the sum of absolute values in the passband is too selective because it considers all frequency bins in the passband while the stopband criterion is limited to a single bin at which rejection is poorest…'' since both pass and stop bands are considered in the same way.
  31 +%
  32 +% I understand that the Manuscript is devoted to present a methodology (``In this article we focus on the methodology, so even if our criterion could be improved, our methodology still remains and works independently of rejection criterion.''). Please, remember that a methodology is a solution to a class of problems and the example chosen to present the methodology plays a key role in showing to the reader if the method is valid or not. Here the example problem is represented by the synthesis of a decimation filter to be used in phase noise metrology. Many of the filters presented by the Authors in figures 9 and 10 as the output of this methodology are not suitable to be used in this context, since, for example, some of them have an attenuation as high as 50 dB in DC (!) that poses severe problems in interpreting the phase noise power spectral densities. What is the cause of this fail? The methodology or the criterion?
  33 +
  34 +{\bf
  35 +In my opinion, it is mandatory to correct the criterion and to re-run the analysis for checking if the methodology works properly or not.
  36 +In the end, I suggest to publish the Manuscript After Minor Revisions.
  37 +}
  38 +
  39 +We have change our criterion to be more selective in passband. Now, when the filter response
  40 +exceed 1~dB in the passband, we discard the filter. We have re-run all experimentation
  41 +and we have updated the dataset and our conclusion. The methodology provide the
  42 +same results but since we have less filters we found the optimal solution earlier.
  43 +Our argumentation about the needed time to compute the optimal solution is not so
  44 +valid anymore since we need less time but we can also see that for biggest cases
  45 +we need more time.
  46 +
  47 +\end{document}
images/custom_criterion.pdf
No preview for this file type
images/letter_pondered_criterion.pdf
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
images/rejection_pyramid.pdf
No preview for this file type