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 |