Commit c7f6afba76c29c0cb1a35331d7070f935be7fffc

Authored by Arthur HUGEAT
1 parent a45e29d4bf
Exists in master

Dernière correction.

Showing 1 changed file with 47 additions and 186 deletions Side-by-side Diff

ifcs2018_journal.tex
1   -% fusionner max rejection a surface donnee v.s minimiser surface a rejection donnee
2   -% demontrer comment la quantification rejette du bruit vers les hautes frequences => 6 dB de
3   -% rejection par bit et perte si moins de bits que rejection/6
4   -% developper programme lineaire en incluant le decalage de bits
5   -% insister que avant on etait synthetisable mais pas implementable, alors que maintenant on
6   -% implemente et on demontre que ca tourne
7   -% gwen : pourquoi le FIR est desormais implementable et ne l'etait pas meme sur zedboard->new FIR ?
8   -% Gwen : peut-on faire un vrai banc de bruit de phase avec ce FIR, ie ajouter ADC, NCO et mixer
9   -% (zedboard ou redpit)
10   -
11   -% label schema : verifier que "argumenter de la cascade de FIR" est fait
12   -
13 1 \documentclass[a4paper,journal]{IEEEtran/IEEEtran}
14 2 \usepackage{graphicx,color,hyperref}
15 3 \usepackage{amsfonts}
... ... @@ -26,7 +14,7 @@
26 14 \usepackage{caption}
27 15 \usepackage{subcaption}
28 16  
29   -% correct bad hyphenation here
  17 +
30 18 \hyphenation{op-tical net-works semi-conduc-tor}
31 19 \textheight=26cm
32 20 \setlength{\footskip}{30pt}
33 21  
34 22  
35 23  
36 24  
37 25  
38 26  
... ... @@ -290,42 +278,25 @@
290 278 \end{figure}
291 279  
292 280 In the transition band, the behavior of the filter is left free, we only define the passband and the stopband characteristics.
293   -% r2.7
294 281 Initial considered criteria include the mean value of the stopband rejection which yields unacceptable results since notches
295 282 overestimate the rejection capability of the filter.
296   -% Furthermore, the losses within
297   -% the passband are not considered and might be excessive for excessively wide transitions widths introduced for filters with few coefficients.
298   -{\color{red} An intermediate criterion considered the maximal rejection within the stopband, to which the sum of the absolute values
299   -% JMF : je fais le choix de remplacer minimal par maximal rejection pour etre coherent avec caption de Fig custom_criterion mais surtout parceque
300   -% rejection me semble plus convaincant si on la maximise (il me semble que -120 dB de S21 signifie 120 dB de rejection donc on veut maximiser)
  283 +An intermediate criterion considered the maximal rejection within the stopband, to which the sum of the absolute values
301 284 within the passband is subtracted to avoid filters with excessive ripples, normalized to the
302 285 bin width to remain consistent with the passband criterion (dBc/Hz units in all cases).
303   -In this case, cascading too many filters with individual excessive ($>$ 1~dB) passband ripples
304   -led to unacceptable ($>$ 10~dB) final ripple levels, especially close to the transition band.
  286 +In this case, cascading too many filters with individual excessive ($>$ 1~dB) passband ripples
  287 +led to unacceptable ($>$ 10~dB) final ripple levels, especially close to the transition band.
305 288 Hence, the final criterion considers the minimal rejection in the stopband to which the
306 289 the maximal amplitude in the passband (maximum value minus the minimum value) is substracted, with
307   -a 1~dB threshold on the latter quantity over which the filter is discarded.}
308   -% Our final criterion to compute the filter rejection considers
309   -% % r2.8 et r2.2 r2.3
310   -% the minimal rejection within the stopband, to which the sum of the absolute values
311   -% within the passband is subtracted to avoid filters with excessive ripples, normalized to the
312   -% bin width to remain consistent with the passband criterion (dBc/Hz units in all cases).
  290 +a 1~dB threshold on the latter quantity over which the filter is discarded.
313 291 With this
314 292 criterion, we meet the expected rejection capability of low pass filters as shown in figure~\ref{fig:custom_criterion}.
315   -{\color{red} The best filter has a correct rejection estimation and the worst filter
316   -is discarded based on the excessive passband ripple criterion.}
  293 +The best filter has a correct rejection estimation and the worst filter
  294 +is discarded based on the excessive passband ripple criterion.
317 295  
318   -% \begin{figure}
319   -% \centering
320   -% \includegraphics[width=\linewidth]{images/colored_mean_criterion}
321   -% \caption{Mean stopband rejection criterion comparison between monolithic filter and cascaded filters}
322   -% \label{fig:mean_criterion}
323   -% \end{figure}
324   -
325 296 \begin{figure}
326 297 \centering
327 298 \includegraphics[width=\linewidth]{images/custom_criterion}
328   -\caption{\color{red}Selected filter qualification criterion computed as the maximum rejection in the stopband
  299 +\caption{Selected filter qualification criterion computed as the maximum rejection in the stopband
329 300 minus the maximal ripple amplitude in the passband with a $>$ 1~dB threshold above which the filter is discarded:
330 301 comparison between monolithic filter (blue, rejected in this case) and cascaded filters (red).}
331 302 \label{fig:custom_criterion}
332 303  
333 304  
334 305  
335 306  
... ... @@ -337,19 +308,19 @@
337 308 The curve shaped as a pyramid exhibits optimum configurations sets at the vertex where both edges meet.
338 309 Indeed for a given number of coefficients, increasing the number of bits over the edge will not improve the rejection.
339 310 Conversely when setting the a given number of bits, increasing the number of coefficients will not improve
340   -the rejection. Hence the best coefficient set are on the vertex of the pyramid. {\color{red} Notice that the word length
  311 +the rejection. Hence the best coefficient set are on the vertex of the pyramid. Notice that the word length
341 312 and number of coefficients do not start at 1: filters with too few coefficients or too little tap word size are rejected
342 313 by the excessive ripple constraint of the criterion. Hence, the size of the pyramid is significantly reduced by discarding
343   -these filters and so is the solution search space.} % ajout JMF
  314 +these filters and so is the solution search space.
344 315  
345 316 \begin{figure}
346 317 \centering
347 318 \includegraphics[width=\linewidth]{images/rejection_pyramid}
348   -\caption{\color{red}Filter rejection as a function of number of coefficients and number of bits
  319 +\caption{Filter rejection as a function of number of coefficients and number of bits
349 320 : this lookup table will be used to identify which filter parameters -- number of bits
350   -representing coefficients and number of coefficients -- best match the targeted transfer function. {\color{red}Filters
  321 +representing coefficients and number of coefficients -- best match the targeted transfer function. Filters
351 322 with fewer than 10~taps or with coefficients coded on fewer than 5~bits are discarded due to excessive
352   -ripples in the passband.}} % ajout JMF
  323 +ripples in the passband.}
353 324 \label{fig:rejection_pyramid}
354 325 \end{figure}
355 326  
356 327  
... ... @@ -362,10 +333,8 @@
362 333 are two different filters with maximums and notches not located at the same frequency offsets.
363 334 Hence when summing the transfer functions, the resulting rejection shown as the dashed yellow line is improved
364 335 with respect to a basic sum of the rejection criteria shown as a the dotted yellow line.
365   -% r2.9
366 336 Thus, estimating the rejection of filter cascades is more complex than taking the sum of all the rejection
367 337 criteria of each filter. However since the individual filter rejection sum underestimates the rejection capability of the cascade,
368   -% r2.10
369 338 this upper bound is considered as a conservative and acceptable criterion for deciding on the suitability
370 339 of the filter cascade to meet design criteria.
371 340  
... ... @@ -385,7 +354,6 @@
385 354 in this paper.
386 355  
387 356 Based on this analysis, we address the estimate of resource consumption (called
388   -% r2.11
389 357 silicon area -- in the case of FPGAs this means processing cells) as a function of
390 358 filter characteristics. As a reminder, we do not aim at matching actual hardware
391 359 configuration but consider an arbitrary silicon area occupied by each processing function,
... ... @@ -433,15 +401,6 @@
433 401 This model is non-linear since we multiply some variable with another variable
434 402 and it is even non-quadratic, as the cost function $F$ does not have a known
435 403 linear or quadratic expression. To linearize this problem, we introduce $p$ FIR configurations.
436   -% AH: conflit merge
437   -% This variable must be defined by the user, it represent the number of different
438   -% set of coefficients generated (for memory, we use \texttt{firls} and \texttt{fir1}
439   -% functions from GNU Octave). To choose this value, we consider a subset of the figure~\ref{fig:rejection_pyramid}
440   -% to restrict the number of configurations. Indeed, it is useless to have too many coefficients or
441   -% too many bits, hence we take the configurations close to edge of pyramid. Thank to theses
442   -% configurations $C_{ij}$ and $\pi_{ij}^C$ ($1 \leq j \leq p$) become constant
443   -% and the function $F$ can be estimate for each configurations
444   -% thanks our rejection criterion. We also defined binary
445 404 This variable $p$ is defined by the user, and represents the number of different
446 405 set of coefficients generated (remember, we use \texttt{firls} and \texttt{fir1}
447 406 functions from GNU Octave) based on the targeted filter characteristics and implementation
... ... @@ -463,16 +422,6 @@
463 422 respectively equations \ref{eq:areadef}, \ref{eq:rejectiondef} and \ref{eq:bits}.
464 423 Equation~\ref{eq:config} states that for each stage, a single configuration is chosen at most.
465 424  
466   -% JM: conflict merge
467   -% However the problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2}
468   -% we multiply
469   -% $\delta_{ij}$ and $\pi_i^-$. However, since $\delta_{ij}$ is a binary variable we can
470   -% linearise this multiplication if we can bound $\pi_i^-$. As $\pi_i^-$ is the data size,
471   -% we define $0 < \pi_i^- \leq 128$ which is the maximum data size whose estimation is
472   -% assumed on hardware characteristics.
473   -% The Gurobi (\url{www.gurobi.com}) optimization software used to solve this quadratic
474   -% model is able to linearize the model provided as is. This model
475   -% has $O(np)$ variables and $O(n)$ constraints.}
476 425 The problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2}
477 426 we multiply
478 427 $\delta_{ij}$ and $\pi_i^-$. However, since $\delta_{ij}$ is a binary variable we can
... ... @@ -495,36 +444,6 @@
495 444 for us the quadratic problem so the model is left as is. This model
496 445 has $O(np)$ variables and $O(n)$ constraints.
497 446  
498   -% This model is non-linear and even non-quadratic, as $F$ does not have a known
499   -% linear or quadratic expression. We introduce $p$ FIR configurations
500   -% $(C_{ij}, \pi_{ij}^C), 1 \leq j \leq p$ that are constants.
501   -% % r2.12
502   -% This variable must be defined by the user, it represent the number of different
503   -% set of coefficients generated (for memory, we use \texttt{firls} and \texttt{fir1}
504   -% functions from GNU Octave).
505   -% We define binary
506   -% variable $\delta_{ij}$ that has value 1 if stage~$i$ is in configuration~$j$
507   -% and 0 otherwise. The new equations are as follows:
508   -%
509   -% \begin{align}
510   -% 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} \\
511   -% r_i & = \sum_{j=1}^p \delta_{ij} \times F(C_{ij}, \pi_{ij}^C), & \forall i \in [1, n] \label{eq:rejectiondef2} \\
512   -% \pi_i^+ & = \pi_i^- + \left(\sum_{j=1}^p \delta_{ij} \pi_{ij}^C\right) - \pi_i^S, & \forall i \in [1, n] \label{eq:bits2} \\
513   -% \sum_{j=1}^p \delta_{ij} & \leq 1, & \forall i \in [1, n] \label{eq:config}
514   -% \end{align}
515   -%
516   -% Equations \ref{eq:areadef2}, \ref{eq:rejectiondef2} and \ref{eq:bits2} replace
517   -% respectively equations \ref{eq:areadef}, \ref{eq:rejectiondef} and \ref{eq:bits}.
518   -% Equation~\ref{eq:config} states that for each stage, a single configuration is chosen at most.
519   -%
520   -% % r2.13
521   -% This modified model is quadratic since we multiply two variables in the
522   -% equation~\ref{eq:areadef2} ($\delta_{ij}$ by $\pi_{ij}^-$) but it can be linearised if necessary.
523   -% The Gurobi
524   -% (\url{www.gurobi.com}) optimization software is used to solve this quadratic
525   -% model, and since Gurobi is able to linearize, the model is left as is. This model
526   -% has $O(np)$ variables and $O(n)$ constraints.
527   -
528 447 Two problems will be addressed using the workflow described in the next section: on the one
529 448 hand maximizing the rejection capability of a set of cascaded filters occupying a fixed arbitrary
530 449 silicon area (section~\ref{sec:fixed_area}) and on the second hand the dual problem of minimizing the silicon area
... ... @@ -628,7 +547,7 @@
628 547 by a Pseudo Random Number (PRN) generator, which fixes the input data size $\Pi^I$.
629 548 Then the total silicon area $\mathcal{A}$ has been fixed to either 500, 1000 or 1500
630 549 arbitrary units. Hence, the three cases have been named: MAX/500, MAX/1000, MAX/1500.
631   -The number of configurations $p$ is {\color{red}1133}, with $C_i$ ranging from 3 to 60 and $\pi^C$
  550 +The number of configurations $p$ is 1133, with $C_i$ ranging from 3 to 60 and $\pi^C$
632 551 ranging from 2 to 22. In each case, the quadratic program has been able to give a
633 552 result up to five stages ($n = 5$) in the cascaded filter.
634 553  
... ... @@ -642,8 +561,7 @@
642 561 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/500}
643 562 \label{tbl:gurobi_max_500}
644 563 \centering
645   - {\color{red}
646   - \scalefont{0.77}
  564 + {\scalefont{0.77}
647 565 \begin{tabular}{|c|ccccc|c|c|}
648 566 \hline
649 567 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
... ... @@ -662,7 +580,7 @@
662 580 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1000}
663 581 \label{tbl:gurobi_max_1000}
664 582 \centering
665   - {\color{red}\scalefont{0.77}
  583 + {\scalefont{0.77}
666 584 \begin{tabular}{|c|ccccc|c|c|}
667 585 \hline
668 586 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
... ... @@ -681,7 +599,7 @@
681 599 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1500}
682 600 \label{tbl:gurobi_max_1500}
683 601 \centering
684   - {\color{red}\scalefont{0.77}
  602 + {\scalefont{0.77}
685 603 \begin{tabular}{|c|ccccc|c|c|}
686 604 \hline
687 605 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
688 606  
... ... @@ -698,11 +616,9 @@
698 616  
699 617 \renewcommand{\arraystretch}{1}
700 618  
701   -% From these tables, we can first state that the more stages are used to define
702   -% the cascaded FIR filters, the better the rejection.
703   -{\color{red} By analyzing these tables, we can first state that we reach an optimal solution
  619 +By analyzing these tables, we can first state that we reach an optimal solution
704 620 for each case : $n = 3$ for MAX/500, and $n = 4$ for MAX/1000 and MAX/1500. Moreover
705   -the cascaded filters always exhibit better performance than the monolithic solution.}
  621 +the cascaded filters always exhibit better performance than the monolithic solution.
706 622 It was an expected result as it has
707 623 been previously observed that many small filters are better than
708 624 a single large filter \cite{lim_1988, lim_1996, young_1992}, despite such conclusions
709 625  
710 626  
711 627  
712 628  
... ... @@ -730,51 +646,29 @@
730 646 Figure~\ref{fig:max_1000_result} shows the rejection of the different configurations in the case of MAX/1000.
731 647 Figure~\ref{fig:max_1500_result} shows the rejection of the different configurations in the case of MAX/1500.
732 648  
733   -% \begin{figure}
734   -% \centering
735   -% \includegraphics[width=\linewidth]{images/max_500}
736   -% \caption{Signal spectrum for MAX/500}
737   -% \label{fig:max_500_result}
738   -% \end{figure}
739   -%
740   -% \begin{figure}
741   -% \centering
742   -% \includegraphics[width=\linewidth]{images/max_1000}
743   -% \caption{Signal spectrum for MAX/1000}
744   -% \label{fig:max_1000_result}
745   -% \end{figure}
746   -%
747   -% \begin{figure}
748   -% \centering
749   -% \includegraphics[width=\linewidth]{images/max_1500}
750   -% \caption{Signal spectrum for MAX/1500}
751   -% \label{fig:max_1500_result}
752   -% \end{figure}
753   -
754   -% r2.14 et r2.15 et r2.16
755 649 \begin{figure}
756 650 \centering
757 651 \begin{subfigure}{\linewidth}
758 652 \includegraphics[width=\linewidth]{images/max_500}
759   - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
  653 + \caption{Filter transfer functions for varying number of cascaded filters solving
760 654 the MAX/500 problem of maximizing rejection for a given resource allocation (500~arbitrary units).}
761 655 \label{fig:max_500_result}
762 656 \end{subfigure}
763 657  
764 658 \begin{subfigure}{\linewidth}
765 659 \includegraphics[width=\linewidth]{images/max_1000}
766   - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
  660 + \caption{Filter transfer functions for varying number of cascaded filters solving
767 661 the MAX/1000 problem of maximizing rejection for a given resource allocation (1000~arbitrary units).}
768 662 \label{fig:max_1000_result}
769 663 \end{subfigure}
770 664  
771 665 \begin{subfigure}{\linewidth}
772 666 \includegraphics[width=\linewidth]{images/max_1500}
773   - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
  667 + \caption{Filter transfer functions for varying number of cascaded filters solving
774 668 the MAX/1500 problem of maximizing rejection for a given resource allocation (1500~arbitrary units).}
775 669 \label{fig:max_1500_result}
776 670 \end{subfigure}
777   - \caption{\color{red}Solutions for the MAX/500, MAX/1000 and MAX/1500 problems of maximizing
  671 + \caption{Solutions for the MAX/500, MAX/1000 and MAX/1500 problems of maximizing
778 672 rejection for a given resource allocation.
779 673 The filter shape constraint (bandpass and bandstop) is shown as thick
780 674 horizontal lines on each chart.}
... ... @@ -802,7 +696,6 @@
802 696 \caption{Resource occupation following synthesis of the solutions found for
803 697 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.}
804 698 \label{tbl:resources_usage}
805   - \color{red}
806 699 \centering
807 700 \begin{tabular}{|c|c|ccc|c|}
808 701 \hline
... ... @@ -825,7 +718,7 @@
825 718 \end{tabular}
826 719 \end{table}
827 720  
828   -{\color{red} In case $n = 2$ for MAX/500}, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that,
  721 +In case $n = 2$ for MAX/500, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that,
829 722 when the filter coefficients are small enough, or when the input size is small
830 723 enough, Vivado optimizes resource consumption by selecting multiplexers to
831 724 implement the multiplications instead of a DSP. In this case, it is quite difficult
... ... @@ -850,7 +743,6 @@
850 743 \caption{Time needed to solve the quadratic program with Gurobi}
851 744 \label{tbl:area_time}
852 745 \centering
853   -\color{red}
854 746 \begin{tabular}{|c|c|c|c|}\hline
855 747 $n$ & Time (MAX/500) & Time (MAX/1000) & Time (MAX/1500) \\\hline\hline
856 748 1 & 0.01~s & 0.02~s & 0.03~s \\
857 749  
858 750  
... ... @@ -864,12 +756,13 @@
864 756 As expected, the computation time seems to rise exponentially with the number of stages.
865 757 When the area is limited, the design exploration space is more limited and the solver is able to
866 758 find an optimal solution faster.
867   -{\color{red} We also notice that the solution with $n$ greater than the optimal value
  759 +We also notice that the solution with $n$ greater than the optimal value
868 760 takes more time to be found than the optimal one. This can be explained since the search space is
869 761 larger and we need more time to ensure that the previous solution (from the
870   -smaller value of $n$) still remains the optimal solution.}
  762 +smaller value of $n$) still remains the optimal solution.
871 763  
872   -\subsection{Minimizing resource occupation at fixed rejection}\label{sec:fixed_rej}
  764 +\subsection{Minimizing resource occupation at fixed rejection}
  765 +\label{sec:fixed_rej}
873 766  
874 767 This section presents the results of the complementary quadratic program aimed at
875 768 minimizing the area occupation for a targeted rejection level.
... ... @@ -891,7 +784,7 @@
891 784 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/40}
892 785 \label{tbl:gurobi_min_40}
893 786 \centering
894   - {\scalefont{0.77}\color{red}
  787 + {\scalefont{0.77}
895 788 \begin{tabular}{|c|ccccc|c|c|}
896 789 \hline
897 790 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
... ... @@ -910,7 +803,7 @@
910 803 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/60}
911 804 \label{tbl:gurobi_min_60}
912 805 \centering
913   - {\scalefont{0.77}\color{red}
  806 + {\scalefont{0.77}
914 807 \begin{tabular}{|c|ccccc|c|c|}
915 808 \hline
916 809 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
... ... @@ -929,7 +822,7 @@
929 822 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/80}
930 823 \label{tbl:gurobi_min_80}
931 824 \centering
932   - {\scalefont{0.77}\color{red}
  825 + {\scalefont{0.77}
933 826 \begin{tabular}{|c|ccccc|c|c|}
934 827 \hline
935 828 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
... ... @@ -948,7 +841,7 @@
948 841 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/100}
949 842 \label{tbl:gurobi_min_100}
950 843 \centering
951   - {\scalefont{0.77}\color{red}
  844 + {\scalefont{0.77}
952 845 \begin{tabular}{|c|ccccc|c|c|}
953 846 \hline
954 847 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
... ... @@ -969,7 +862,7 @@
969 862 individual filter rejection. The only exception is for the monolithic case ($n = 1$) in
970 863 MIN/100: no solution is found for a single monolithic filter reach a 100~dB rejection.
971 864 Furthermore, the area of the monolithic filter is twice as big as the two cascaded filters
972   -{\color{red}(675 and 1131 arbitrary units v.s 990 and 1760 arbitrary units for 60 and 80~dB rejection}
  865 +(675 and 1131 arbitrary units v.s 990 and 1760 arbitrary units for 60 and 80~dB rejection
973 866 respectively). More generally, the more filters are cascaded, the lower the occupied area.
974 867  
975 868 Like in previous section, the solver chooses always a little filter as first
976 869  
... ... @@ -978,12 +871,9 @@
978 871 signal and in the second filter selecting a better filter to improve rejection without
979 872 having too many bits in the output data.
980 873  
981   -{\color{red} For each case, we found an optimal solution with $n < 5$: for MIN/40 $n=2$,
  874 +For each case, we found an optimal solution with $n < 5$: for MIN/40 $n=2$,
982 875 for MIN/60 and MIN/80 $n = 3$ and for MIN/100 $n = 4$. In all cases, the solutions
983   -when $n$ is greater than this optimal $n$ remain identical to the optimal one.}
984   -% For the specific case of MIN/40 for $n = 5$ the solver has determined that the optimal
985   -% number of filters is 4 so it did not chose any configuration for the last filter. Hence this
986   -% solution is equivalent to the result for $n = 4$.
  876 +when $n$ is greater than this optimal $n$ remain identical to the optimal one.
987 877  
988 878 The following graphs present the rejection for real data on the FPGA. In all the following
989 879 figures, the solid line represents the actual rejection of the filtered
990 880  
991 881  
992 882  
993 883  
994 884  
... ... @@ -995,65 +885,36 @@
995 885 Figure~\ref{fig:min_80} shows the rejection of the different configurations in the case of MIN/80.
996 886 Figure~\ref{fig:min_100} shows the rejection of the different configurations in the case of MIN/100.
997 887  
998   -% \begin{figure}
999   -% \centering
1000   -% \includegraphics[width=\linewidth]{images/min_40}
1001   -% \caption{Signal spectrum for MIN/40}
1002   -% \label{fig:min_40}
1003   -% \end{figure}
1004   -%
1005   -% \begin{figure}
1006   -% \centering
1007   -% \includegraphics[width=\linewidth]{images/min_60}
1008   -% \caption{Signal spectrum for MIN/60}
1009   -% \label{fig:min_60}
1010   -% \end{figure}
1011   -%
1012   -% \begin{figure}
1013   -% \centering
1014   -% \includegraphics[width=\linewidth]{images/min_80}
1015   -% \caption{Signal spectrum for MIN/80}
1016   -% \label{fig:min_80}
1017   -% \end{figure}
1018   -%
1019   -% \begin{figure}
1020   -% \centering
1021   -% \includegraphics[width=\linewidth]{images/min_100}
1022   -% \caption{Signal spectrum for MIN/100}
1023   -% \label{fig:min_100}
1024   -% \end{figure}
1025   -
1026   -% r2.14 et r2.15 et r2.16
1027 888 \begin{figure}
1028 889 \centering
1029 890 \begin{subfigure}{\linewidth}
1030 891 \includegraphics[width=.91\linewidth]{images/min_40}
1031   - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
  892 + \caption{Filter transfer functions for varying number of cascaded filters solving
1032 893 the MIN/40 problem of minimizing resource allocation for reaching a 40~dB rejection.}
1033 894 \label{fig:min_40}
1034 895 \end{subfigure}
1035 896  
1036 897 \begin{subfigure}{\linewidth}
1037 898 \includegraphics[width=.91\linewidth]{images/min_60}
1038   - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
  899 + \caption{Filter transfer functions for varying number of cascaded filters solving
1039 900 the MIN/60 problem of minimizing resource allocation for reaching a 60~dB rejection.}
1040 901 \label{fig:min_60}
1041 902 \end{subfigure}
1042 903  
1043 904 \begin{subfigure}{\linewidth}
1044 905 \includegraphics[width=.91\linewidth]{images/min_80}
1045   - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
  906 + \caption{Filter transfer functions for varying number of cascaded filters solving
1046 907 the MIN/80 problem of minimizing resource allocation for reaching a 80~dB rejection.}
1047 908 \label{fig:min_80}
1048 909 \end{subfigure}
1049 910  
1050 911 \begin{subfigure}{\linewidth}
1051 912 \includegraphics[width=.91\linewidth]{images/min_100}
1052   - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
  913 + \caption{Filter transfer functions for varying number of cascaded filters solving
1053 914 the MIN/100 problem of minimizing resource allocation for reaching a 100~dB rejection.}
1054 915 \label{fig:min_100}
1055 916 \end{subfigure}
1056   - \caption{\color{red}Solutions for the MIN/40, MIN/60, MIN/80 and MIN/100 problems of reaching a
  917 + \caption{Solutions for the MIN/40, MIN/60, MIN/80 and MIN/100 problems of reaching a
1057 918 given rejection while minimizing resource allocation. The filter shape constraint (bandpass and
1058 919 bandstop) is shown as thick
1059 920 horizontal lines on each chart.}
... ... @@ -1074,7 +935,7 @@
1074 935 \caption{Resource occupation. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.}
1075 936 \label{tbl:resources_usage_comp}
1076 937 \centering
1077   - {\scalefont{0.90}\color{red}
  938 + {\scalefont{0.90}
1078 939 \begin{tabular}{|c|c|cccc|c|}
1079 940 \hline
1080 941 $n$ & & MIN/40 & MIN/60 & MIN/80 & MIN/100 & \emph{Zynq 7010} \\ \hline\hline
... ... @@ -1113,7 +974,7 @@
1113 974 \caption{Time to solve the quadratic program with Gurobi}
1114 975 \label{tbl:area_time_comp}
1115 976 \centering
1116   -{\scalefont{0.90}\color{red}
  977 +{\scalefont{0.90}
1117 978 \begin{tabular}{|c|c|c|c|c|}\hline
1118 979 $n$ & Time (MIN/40) & Time (MIN/60) & Time (MIN/80) & Time (MIN/100) \\\hline\hline
1119 980 1 & 0.04~s & 0.01~s & 0.01~s & - \\
... ... @@ -1127,9 +988,9 @@
1127 988 \renewcommand{\arraystretch}{1}
1128 989  
1129 990 The time needed to solve this configuration is significantly shorter than the time
1130   -needed in the previous section. Indeed the worst time in this case is only {\color{red}5~minutes,
1131   -compared to 13~hours} in the previous section: this problem is more easily solved than the
1132   -previous one.
  991 +needed in the previous section. Indeed the worst time in this case is only 5~minutes,
  992 +compared to 13~hours in the previous section: this problem is more easily solved than the
  993 +previous one.
1133 994  
1134 995 To conclude, we compare our monolithic filters with the FIR Compiler provided by
1135 996 Xilinx in the Vivado software suite (v.2018.2). For each experiment we use the
1136 997  
... ... @@ -1181,10 +1042,10 @@
1181 1042 workflow is able to filter an input signal as expected, validating experimentally our model and our approach.
1182 1043 The quadratic program can be adapted it to an other problem based on assembling skeleton blocks.
1183 1044  
1184   -{\color{red}Considering that all area and rejection considerations could be explored within a reasonable
  1045 +Considering that all area and rejection considerations could be explored within a reasonable
1185 1046 computation duration, and that no improvement is observed when cascading more than four filters, we
1186 1047 consider that this particular problem has been exhaustively investigated and optimal solutions found
1187   -in all cases.} % JMF
  1048 +in all cases.
1188 1049  
1189 1050 A perspective is to model and add the decimators to the processing chain to have a classical
1190 1051 FIR filter and decimator. The impact of the decimator is not trivial, especially in terms of silicon