Commit c7f6afba76c29c0cb1a35331d7070f935be7fffc
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 |