Commit 7fcf1da2aa6e87f897a318bb72257584239903ed
1 parent
1334892553
Exists in
master
ajout de la version final de l'article.
Showing 5 changed files with 234 additions and 12 deletions Inline Diff
.gitignore
| ifcs2018.aux | 1 | 1 | ifcs2018_abstract.aux | |
| ifcs2018.bbl | 2 | 2 | ifcs2018_abstract.bbl | |
| ifcs2018.blg | 3 | 3 | ifcs2018_abstract.blg | |
| ifcs2018.log | 4 | 4 | ifcs2018_abstract.log | |
| ifcs2018.out | 5 | 5 | ifcs2018_abstract.out | |
| ifcs2018.pdf | 6 | 6 | ifcs2018_abstract.pdf | |
| 7 | ||||
| 8 | ifcs2018_processing.aux | |||
| 9 | ifcs2018_processing.bbl | |||
| 10 | ifcs2018_processing.blg | |||
| 11 | ifcs2018_processing.log | |||
| 12 | ifcs2018_processing.out | |||
| 13 | ifcs2018_processing.pdf | |||
| 7 | 14 | |||
| ifcs2018_poster.aux | 8 | 15 | ifcs2018_poster.aux | |
| ifcs2018_poster.log | 9 | 16 | ifcs2018_poster.log | |
| ifcs2018_poster.out | 10 | 17 | ifcs2018_poster.out | |
| ifcs2018_poster.pdf | 11 | 18 | ifcs2018_poster.pdf | |
| 12 | 19 | |||
| *.bak | 13 | 20 | *.bak | |
| 14 | 21 | |||
Makefile
| # source: https://tex.stackexchange.com/questions/40738/how-to-properly-make-a-latex-project | 1 | 1 | # source: https://tex.stackexchange.com/questions/40738/how-to-properly-make-a-latex-project | |
| 2 | 2 | |||
| TEX = pdflatex -shell-escape -interaction=nonstopmode -file-line-error | 3 | 3 | TEX = pdflatex -shell-escape -interaction=nonstopmode -file-line-error | |
| BIB = bibtex | 4 | 4 | BIB = bibtex | |
| TARGET = ifcs2018 | 5 | 5 | TARGET = ifcs2018 | |
| 6 | 6 | |||
| all: $(TARGET) $(TARGET)_poster | 7 | 7 | all: $(TARGET)_abstract $(TARGET)_poster $(TARGET)_processing | |
| 8 | 8 | |||
| view: $(TARGET) | 9 | 9 | view: $(TARGET) | |
| evince $(TARGET).pdf | 10 | 10 | evince $(TARGET).pdf | |
| 11 | 11 | |||
| view_poster: $(TARGET)_poster | 12 | 12 | view_poster: $(TARGET)_poster | |
| evince $(TARGET)_poster.pdf | 13 | 13 | evince $(TARGET)_poster.pdf | |
| 14 | 14 | |||
| $(TARGET): $(TARGET).tex references.bib | 15 | 15 | $(TARGET)_abstract: $(TARGET)_abstract.tex references.bib | |
| $(TEX) $(TARGET).tex | 16 | 16 | $(TEX) $@.tex | |
| $(BIB) $(TARGET) | 17 | 17 | $(BIB) $@ | |
| $(TEX) $(TARGET).tex | 18 | 18 | $(TEX) $@.tex | |
| $(TEX) $(TARGET).tex | 19 | 19 | $(TEX) $@.tex | |
| 20 | 20 | |||
| $(TARGET)_poster: | 21 | 21 | $(TARGET)_poster: | |
| 22 | $(TEX) $@.tex | |||
| 23 | $(TEX) $@.tex | |||
| 24 | ||||
| 25 | $(TARGET)_processing: $(TARGET)_processing.tex references.bib | |||
| 26 | $(TEX) $@.tex | |||
| 27 | $(BIB) $@ | |||
| $(TEX) $@.tex | 22 | 28 | $(TEX) $@.tex | |
| $(TEX) $@.tex | 23 | 29 | $(TEX) $@.tex | |
| 24 | 30 | |||
| clean: | 25 | 31 | clean: | |
| rm -f $(TARGET).aux $(TARGET).log $(TARGET).out $(TARGET).bbl $(TARGET).blg | 26 | 32 | rm -f $(TARGET).aux $(TARGET).log $(TARGET).out $(TARGET).bbl $(TARGET).blg | |
| rm -f $(TARGET)_poster.aux $(TARGET)_poster.log $(TARGET)_poster.out | 27 | 33 | rm -f $(TARGET)_poster.aux $(TARGET)_poster.log $(TARGET)_poster.out | |
| 28 | 34 |
ifcs2018.tex
| \documentclass[a4paper,conference]{IEEEtran/IEEEtran} | 1 | File was deleted | ||
| \usepackage{graphicx,color,hyperref} | 2 | |||
| \usepackage{amsfonts} | 3 | |||
| \usepackage{url} | 4 | |||
| \usepackage[normalem]{ulem} | 5 | |||
| \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} | 6 | |||
| % correct bad hyphenation here | 7 | |||
| \hyphenation{op-tical net-works semi-conduc-tor} | 8 | |||
| \textheight=26cm | 9 | |||
| \setlength{\footskip}{30pt} | 10 | |||
| \pagenumbering{gobble} | 11 | |||
| \begin{document} | 12 | |||
| \title{Filter optimization for real time digital processing of radiofrequency signals: application | 13 | |||
| to oscillator metrology} | 14 | |||
| 15 | ||||
| \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, | 16 | |||
| G. Goavec-M\'erou\IEEEauthorrefmark{1}, | 17 | |||
| P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M Friedt\IEEEauthorrefmark{1}} | 18 | |||
| \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } | 19 | |||
| \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ | 20 | |||
| Email: \{pyb2,jmfriedt\}@femto-st.fr} | 21 | |||
| } | 22 | |||
| \maketitle | 23 | |||
| \thispagestyle{plain} | 24 | |||
| \pagestyle{plain} | 25 | |||
| 26 | ||||
| \begin{abstract} | 27 | |||
| Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to | 28 | |||
| radiofrequency signal processing. Applied to oscillator characterization in the context | 29 | |||
| of ultrastable clocks, stringent filtering requirements are defined by spurious signal or | 30 | |||
| noise rejection needs. Since real time radiofrequency processing must be performed in a | 31 | |||
| Field Programmable Array to meet timing constraints, we investigate optimization strategies | 32 | |||
| to design filters meeting rejection characteristics while limiting the hardware resources | 33 | |||
| required and keeping timing constraints within the targeted measurement bandwidths. | 34 | |||
| \end{abstract} | 35 | |||
| 36 | ||||
| \begin{IEEEkeywords} | 37 | |||
| Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter | 38 | |||
| \end{IEEEkeywords} | 39 | |||
| 40 | ||||
| \section{Digital signal processing of ultrastable clock signals} | 41 | |||
| 42 | ||||
| Analog oscillator phase noise characteristics are classically performed by downconverting | 43 | |||
| the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, | 44 | |||
| followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In | 45 | |||
| a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by | 46 | |||
| multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. | 47 | |||
| 48 | ||||
| \begin{figure}[h!tb] | 49 | |||
| \begin{center} | 50 | |||
| \includegraphics[width=.8\linewidth]{images/schema} | 51 | |||
| \end{center} | 52 | |||
| \caption{Fully digital oscillator phase noise characterization: the Device Under Test | 53 | |||
| (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and | 54 | |||
| downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals | 55 | |||
| and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite | 56 | |||
| Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays | 57 | |||
| the spectral characteristics of the phase fluctuations.} | 58 | |||
| \label{schema} | 59 | |||
| \end{figure} | 60 | |||
| 61 | ||||
| As with the analog mixer, | 62 | |||
| the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as | 63 | |||
| well as the generation of the frequency sum signal in addition to the frequency difference. | 64 | |||
| These unwanted spectral characteristics must be rejected before decimating the data stream | 65 | |||
| for the phase noise spectral characterization. The characteristics introduced between the downconverter | 66 | |||
| and the decimation processing blocks are core characteristics of an oscillator characterization | 67 | |||
| system, and must reject out-of-band signals below the targeted phase noise -- typically in the | 68 | |||
| sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will | 69 | |||
| use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency | 70 | |||
| datastream: optimizing the performance of the filter while reducing the needed resources is | 71 | |||
| hence tackled in a systematic approach using optimization techniques. Most significantly, we | 72 | |||
| tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with | 73 | |||
| tunable number of coefficients and tunable number of bits representing the coefficients and the | 74 | |||
| data being processed. | 75 | |||
| 76 | ||||
| \section{Filter optimization} | 77 | |||
| 78 | ||||
| A basic approach for implementing the FIR filter is to compute the transfer function of | 79 | |||
| a monolithic filter: this single filter defines all coefficients with the same resolution | 80 | |||
| (number of bits) and processes data represented with their own resolution. Meeting the | 81 | |||
| filter shape requires a large number of coefficients, limited by resources of the FPGA since | 82 | |||
| this filter must process data stream at the radiofrequency sampling rate after the mixer. | 83 | |||
| 84 | ||||
| An optimization problem \cite{leung2004handbook} aims at improving one or many | 85 | |||
| performance criteria within a constrained resource environment. Amongst the tools | 86 | |||
| developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to | 87 | |||
| provide a formal definition of the stated problem and search for an optimal use of available | 88 | |||
| resources \cite{yu2007design, kodek1980design}. | 89 | |||
| 90 | ||||
| The degrees of freedom when addressing the problem of replacing the single monolithic | 91 | |||
| FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, | 92 | |||
| the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing | 93 | |||
| the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, | 94 | |||
| the optimization of the complete processing chain within a constrained resource environment is not | 95 | |||
| trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is | 96 | |||
| the number of bits needed in a worst case condition to represent the output of the FIR. | 97 | |||
| 98 | ||||
| 99 | ||||
| \begin{figure}[h!tb] | 100 | |||
| \includegraphics[width=\linewidth]{images/noise-rejection.pdf} | 101 | |||
| \caption{Rejection as a function of number of coefficients and number of bits} | 102 | |||
| \label{noise-rejection} | 103 | |||
| \end{figure} | 104 | |||
| 105 | ||||
| The objective function maximizes the noise rejection while keeping resource occupation below | 106 | |||
| a user-defined threshold. The MILP solver is allowed to choose the number of successive | 107 | |||
| filters, within an upper bound. The last problem is to model the noise rejection. Since filter | 108 | |||
| noise rejection capability is not modeled with linear equation, a look-up-table is generated | 109 | |||
| for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each | 110 | |||
| one of these conditions, the low-pass filter rejection defined as the mean power between | 111 | |||
| half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response | 112 | |||
| of the digital filter (Fig. \ref{noise-rejection}). | 113 | |||
| 114 | ||||
| Linear program formalism for solving the problem is well documented: an objective function is | 115 | |||
| defined which is linearly dependent on the parameters to be optimized. Constraints are expressed | 116 | |||
| as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. | 117 | |||
| 118 | ||||
| The MILP solver provides a solution to the problem by selecting a series of small FIR with | 119 | |||
| increasing number of bits representing data and coefficients as well as an increasing number | 120 | |||
| of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the | 121 | |||
| performance comparison between one solution and a monolithic FIR when selecting a cutoff | 122 | |||
| frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the | 123 | |||
| same space usage are provided as selected by the MILP solver. The FIR cascade provides improved | 124 | |||
| rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to | 125 | |||
| be tuned or compensated for. | 126 | |||
| 127 | ||||
| \begin{figure}[h!tb] | 128 | |||
| % \includegraphics[width=\linewidth]{images/compare-fir.pdf} | 129 | |||
| \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} | 130 | |||
| \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR | 131 | |||
| with a cutoff frequency set at half the Nyquist frequency.} | 132 | |||
| \label{compare-fir} | 133 | |||
| \end{figure} | 134 | |||
| 135 | ||||
| The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. | 136 | |||
| 137 | ||||
| \begin{table}[h!tb] | 138 | |||
| \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade | 139 | |||
| identified as optimal by the MILP solver within a finite resource criterion. The last line refers | 140 | |||
| to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean | 141 | |||
| value from 0.6 to 1 Nyquist frequency.} | 142 | |||
| \begin{center} | 143 | |||
| \begin{tabular}{|c|cccc|}\hline | 144 | |||
| FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline | 145 | |||
| 1 (monolithic) & 1 & 4064 & 40 & -72 \\ | 146 | |||
| 5 & 5 & 12332 & 0 & -217 \\ | 147 | |||
| 10 & 10 & 12717 & 0 & -251 \\\hline\hline | 148 | |||
| Zynq 7010 & 60 & 17600 & 80 & \\\hline | 149 | |||
| \end{tabular} | 150 | |||
| \end{center} | 151 | |||
| %\vspace{-0.7cm} | 152 | |||
| \label{t1} | 153 | |||
| \end{table} | 154 | |||
| 155 | ||||
| \section{Filter coefficient selection} | 156 | |||
| 157 | ||||
| The coefficients of a single monolithic filter are computed as the impulse response | 158 | |||
| of the filter transfer function, and practically approximated by a multitude of methods | 159 | |||
| including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing | 160 | |||
| (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by | 161 | |||
| selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} | 162 | |||
| illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better | 163 | |||
| rejection than {\tt firls}: since the linear solver increases the number of coefficients along | 164 | |||
| the processing chain, the type of selected filter also changes depending on the number of coefficients | 165 | |||
| and evolves along the processing chain. | 166 | |||
| 167 | ||||
| \begin{figure}[h!tb] | 168 | |||
| \includegraphics[width=\linewidth]{images/fir1-vs-firls} | 169 | |||
| \caption{Evolution of the rejection capability of least-square optimized filters and Hamming | 170 |
ifcs2018_abstract.tex
| File was created | 1 | \documentclass[a4paper,conference]{IEEEtran/IEEEtran} | ||
| 2 | \usepackage{graphicx,color,hyperref} | |||
| 3 | \usepackage{amsfonts} | |||
| 4 | \usepackage{url} | |||
| 5 | \usepackage[normalem]{ulem} | |||
| 6 | \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} | |||
| 7 | % correct bad hyphenation here | |||
| 8 | \hyphenation{op-tical net-works semi-conduc-tor} | |||
| 9 | \textheight=26cm | |||
| 10 | \setlength{\footskip}{30pt} | |||
| 11 | \pagenumbering{gobble} | |||
| 12 | \begin{document} | |||
| 13 | \title{Filter optimization for real time digital processing of radiofrequency signals: application | |||
| 14 | to oscillator metrology} | |||
| 15 | ||||
| 16 | \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, | |||
| 17 | G. Goavec-M\'erou\IEEEauthorrefmark{1}, | |||
| 18 | P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M Friedt\IEEEauthorrefmark{1}} | |||
| 19 | \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } | |||
| 20 | \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ | |||
| 21 | Email: \{pyb2,jmfriedt\}@femto-st.fr} | |||
| 22 | } | |||
| 23 | \maketitle | |||
| 24 | \thispagestyle{plain} | |||
| 25 | \pagestyle{plain} | |||
| 26 | ||||
| 27 | \begin{abstract} | |||
| 28 | Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to | |||
| 29 | radiofrequency signal processing. Applied to oscillator characterization in the context | |||
| 30 | of ultrastable clocks, stringent filtering requirements are defined by spurious signal or | |||
| 31 | noise rejection needs. Since real time radiofrequency processing must be performed in a | |||
| 32 | Field Programmable Array to meet timing constraints, we investigate optimization strategies | |||
| 33 | to design filters meeting rejection characteristics while limiting the hardware resources | |||
| 34 | required and keeping timing constraints within the targeted measurement bandwidths. | |||
| 35 | \end{abstract} | |||
| 36 | ||||
| 37 | \begin{IEEEkeywords} | |||
| 38 | Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter | |||
| 39 | \end{IEEEkeywords} | |||
| 40 | ||||
| 41 | \section{Digital signal processing of ultrastable clock signals} | |||
| 42 | ||||
| 43 | Analog oscillator phase noise characteristics are classically performed by downconverting | |||
| 44 | the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, | |||
| 45 | followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In | |||
| 46 | a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by | |||
| 47 | multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. | |||
| 48 | ||||
| 49 | \begin{figure}[h!tb] | |||
| 50 | \begin{center} | |||
| 51 | \includegraphics[width=.8\linewidth]{images/schema} | |||
| 52 | \end{center} | |||
| 53 | \caption{Fully digital oscillator phase noise characterization: the Device Under Test | |||
| 54 | (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and | |||
| 55 | downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals | |||
| 56 | and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite | |||
| 57 | Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays | |||
| 58 | the spectral characteristics of the phase fluctuations.} | |||
| 59 | \label{schema} | |||
| 60 | \end{figure} | |||
| 61 | ||||
| 62 | As with the analog mixer, | |||
| 63 | the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as | |||
| 64 | well as the generation of the frequency sum signal in addition to the frequency difference. | |||
| 65 | These unwanted spectral characteristics must be rejected before decimating the data stream | |||
| 66 | for the phase noise spectral characterization. The characteristics introduced between the downconverter | |||
| 67 | and the decimation processing blocks are core characteristics of an oscillator characterization | |||
| 68 | system, and must reject out-of-band signals below the targeted phase noise -- typically in the | |||
| 69 | sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will | |||
| 70 | use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency | |||
| 71 | datastream: optimizing the performance of the filter while reducing the needed resources is | |||
| 72 | hence tackled in a systematic approach using optimization techniques. Most significantly, we | |||
| 73 | tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with | |||
| 74 | tunable number of coefficients and tunable number of bits representing the coefficients and the | |||
| 75 | data being processed. | |||
| 76 | ||||
| 77 | \section{Filter optimization} | |||
| 78 | ||||
| 79 | A basic approach for implementing the FIR filter is to compute the transfer function of | |||
| 80 | a monolithic filter: this single filter defines all coefficients with the same resolution | |||
| 81 | (number of bits) and processes data represented with their own resolution. Meeting the | |||
| 82 | filter shape requires a large number of coefficients, limited by resources of the FPGA since | |||
| 83 | this filter must process data stream at the radiofrequency sampling rate after the mixer. | |||
| 84 | ||||
| 85 | An optimization problem \cite{leung2004handbook} aims at improving one or many | |||
| 86 | performance criteria within a constrained resource environment. Amongst the tools | |||
| 87 | developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to | |||
| 88 | provide a formal definition of the stated problem and search for an optimal use of available | |||
| 89 | resources \cite{yu2007design, kodek1980design}. | |||
| 90 | ||||
| 91 | The degrees of freedom when addressing the problem of replacing the single monolithic | |||
| 92 | FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, | |||
| 93 | the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing | |||
| 94 | the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, | |||
| 95 | the optimization of the complete processing chain within a constrained resource environment is not | |||
| 96 | trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is | |||
| 97 | the number of bits needed in a worst case condition to represent the output of the FIR. | |||
| 98 | ||||
| 99 | ||||
| 100 | \begin{figure}[h!tb] | |||
| 101 | \includegraphics[width=\linewidth]{images/noise-rejection.pdf} | |||
| 102 | \caption{Rejection as a function of number of coefficients and number of bits} | |||
| 103 | \label{noise-rejection} | |||
| 104 | \end{figure} | |||
| 105 | ||||
| 106 | The objective function maximizes the noise rejection while keeping resource occupation below | |||
| 107 | a user-defined threshold. The MILP solver is allowed to choose the number of successive | |||
| 108 | filters, within an upper bound. The last problem is to model the noise rejection. Since filter | |||
| 109 | noise rejection capability is not modeled with linear equation, a look-up-table is generated | |||
| 110 | for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each | |||
| 111 | one of these conditions, the low-pass filter rejection defined as the mean power between | |||
| 112 | half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response | |||
| 113 | of the digital filter (Fig. \ref{noise-rejection}). | |||
| 114 | ||||
| 115 | Linear program formalism for solving the problem is well documented: an objective function is | |||
| 116 | defined which is linearly dependent on the parameters to be optimized. Constraints are expressed | |||
| 117 | as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. | |||
| 118 | ||||
| 119 | The MILP solver provides a solution to the problem by selecting a series of small FIR with | |||
| 120 | increasing number of bits representing data and coefficients as well as an increasing number | |||
| 121 | of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the | |||
| 122 | performance comparison between one solution and a monolithic FIR when selecting a cutoff | |||
| 123 | frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the | |||
| 124 | same space usage are provided as selected by the MILP solver. The FIR cascade provides improved | |||
| 125 | rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to | |||
| 126 | be tuned or compensated for. | |||
| 127 | ||||
| 128 | \begin{figure}[h!tb] | |||
| 129 | % \includegraphics[width=\linewidth]{images/compare-fir.pdf} | |||
| 130 | \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} | |||
| 131 | \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR | |||
| 132 | with a cutoff frequency set at half the Nyquist frequency.} | |||
| 133 | \label{compare-fir} | |||
| 134 | \end{figure} | |||
| 135 | ||||
| 136 | The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. | |||
| 137 | ||||
| 138 | \begin{table}[h!tb] | |||
| 139 | \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade | |||
| 140 | identified as optimal by the MILP solver within a finite resource criterion. The last line refers | |||
| 141 | to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean | |||
| 142 | value from 0.6 to 1 Nyquist frequency.} | |||
| 143 | \begin{center} | |||
| 144 | \begin{tabular}{|c|cccc|}\hline | |||
| 145 | FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline | |||
| 146 | 1 (monolithic) & 1 & 4064 & 40 & -72 \\ | |||
| 147 | 5 & 5 & 12332 & 0 & -217 \\ | |||
| 148 | 10 & 10 & 12717 & 0 & -251 \\\hline\hline | |||
| 149 | Zynq 7010 & 60 & 17600 & 80 & \\\hline | |||
| 150 | \end{tabular} | |||
| 151 | \end{center} | |||
| 152 | %\vspace{-0.7cm} | |||
| 153 | \label{t1} | |||
| 154 | \end{table} | |||
| 155 | ||||
| 156 | \section{Filter coefficient selection} | |||
| 157 | ||||
| 158 | The coefficients of a single monolithic filter are computed as the impulse response | |||
| 159 | of the filter transfer function, and practically approximated by a multitude of methods | |||
| 160 | including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing | |||
| 161 | (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by | |||
| 162 | selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} | |||
| 163 | illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better | |||
| 164 | rejection than {\tt firls}: since the linear solver increases the number of coefficients along | |||
| 165 | the processing chain, the type of selected filter also changes depending on the number of coefficients | |||
| 166 | and evolves along the processing chain. | |||
| 167 | ||||
| 168 | \begin{figure}[h!tb] | |||
| 169 | \includegraphics[width=\linewidth]{images/fir1-vs-firls} | |||
| 170 | \caption{Evolution of the rejection capability of least-square optimized filters and Hamming |
ifcs2018_processing.tex
| File was created | 1 | \documentclass[a4paper,conference]{IEEEtran/IEEEtran} | ||
| 2 | \usepackage{graphicx,color,hyperref} | |||
| 3 | \usepackage{amsfonts} | |||
| 4 | \usepackage{url} | |||
| 5 | \usepackage[normalem]{ulem} | |||
| 6 | \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} | |||
| 7 | % correct bad hyphenation here | |||
| 8 | \hyphenation{op-tical net-works semi-conduc-tor} | |||
| 9 | \textheight=26cm | |||
| 10 | \setlength{\footskip}{30pt} | |||
| 11 | \pagenumbering{gobble} | |||
| 12 | \begin{document} | |||
| 13 | \title{Filter optimization for real time digital processing of radiofrequency signals: application | |||
| 14 | to oscillator metrology} | |||
| 15 | ||||
| 16 | \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, | |||
| 17 | G. Goavec-M\'erou\IEEEauthorrefmark{1}, | |||
| 18 | P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M Friedt\IEEEauthorrefmark{1}} | |||
| 19 | \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } | |||
| 20 | \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ | |||
| 21 | Email: \{pyb2,jmfriedt\}@femto-st.fr} | |||
| 22 | } | |||
| 23 | \maketitle | |||
| 24 | \thispagestyle{plain} | |||
| 25 | \pagestyle{plain} | |||
| 26 | ||||
| 27 | \begin{abstract} | |||
| 28 | Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to | |||
| 29 | radiofrequency signal processing. Applied to oscillator characterization in the context | |||
| 30 | of ultrastable clocks, stringent filtering requirements are defined by spurious signal or | |||
| 31 | noise rejection needs. Since real time radiofrequency processing must be performed in a | |||
| 32 | Field Programmable Array to meet timing constraints, we investigate optimization strategies | |||
| 33 | to design filters meeting rejection characteristics while limiting the hardware resources | |||
| 34 | required and keeping timing constraints within the targeted measurement bandwidths. | |||
| 35 | \end{abstract} | |||
| 36 | ||||
| 37 | \begin{IEEEkeywords} | |||
| 38 | Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter | |||
| 39 | \end{IEEEkeywords} | |||
| 40 | ||||
| 41 | \section{Digital signal processing of ultrastable clock signals} | |||
| 42 | ||||
| 43 | Analog oscillator phase noise characteristics are classically performed by downconverting | |||
| 44 | the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, | |||
| 45 | followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In | |||
| 46 | a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by | |||
| 47 | multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. | |||
| 48 | ||||
| 49 | \begin{figure}[h!tb] | |||
| 50 | \begin{center} | |||
| 51 | \includegraphics[width=.8\linewidth]{images/schema} | |||
| 52 | \end{center} | |||
| 53 | \caption{Fully digital oscillator phase noise characterization: the Device Under Test | |||
| 54 | (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and | |||
| 55 | downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals | |||
| 56 | and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite | |||
| 57 | Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays | |||
| 58 | the spectral characteristics of the phase fluctuations.} | |||
| 59 | \label{schema} | |||
| 60 | \end{figure} | |||
| 61 | ||||
| 62 | As with the analog mixer, | |||
| 63 | the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as | |||
| 64 | well as the generation of the frequency sum signal in addition to the frequency difference. | |||
| 65 | These unwanted spectral characteristics must be rejected before decimating the data stream | |||
| 66 | for the phase noise spectral characterization. The characteristics introduced between the downconverter | |||
| 67 | and the decimation processing blocks are core characteristics of an oscillator characterization | |||
| 68 | system, and must reject out-of-band signals below the targeted phase noise -- typically in the | |||
| 69 | sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will | |||
| 70 | use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency | |||
| 71 | datastream: optimizing the performance of the filter while reducing the needed resources is | |||
| 72 | hence tackled in a systematic approach using optimization techniques. Most significantly, we | |||
| 73 | tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with | |||
| 74 | tunable number of coefficients and tunable number of bits representing the coefficients and the | |||
| 75 | data being processed. | |||
| 76 | ||||
| 77 | \section{Finite impulse response filter} | |||
| 78 | ||||
| 79 | We select FIR filter for their unconditional stability and ease of design. A FIR filter is defined | |||
| 80 | by a set of weights $b_k$ applied to the inputs $x_k$ through a convolution to generate the outputs $y_k$ | |||
| 81 | $$y_n=\sum_{k=0}^N b_k x_{n-k}$$ | |||
| 82 | ||||
| 83 | As opposed to an implementation on a general purpose processor in which word size is defined by the | |||
| 84 | processor architecture, implementing such a filter on an FPGA offer more degrees of freedom since | |||
| 85 | not only the coefficient values and number of taps must be defined, but also the number of bits defining | |||
| 86 | the coefficients and the sample size. | |||
| 87 | ||||
| 88 | \section{Filter optimization} | |||
| 89 | ||||
| 90 | A basic approach for implementing the FIR filter is to compute the transfer function of | |||
| 91 | a monolithic filter: this single filter defines all coefficients with the same resolution | |||
| 92 | (number of bits) and processes data represented with their own resolution. Meeting the | |||
| 93 | filter shape requires a large number of coefficients, limited by resources of the FPGA since | |||
| 94 | this filter must process data stream at the radiofrequency sampling rate after the mixer. | |||
| 95 | ||||
| 96 | An optimization problem \cite{leung2004handbook} aims at improving one or many | |||
| 97 | performance criteria within a constrained resource environment. Amongst the tools | |||
| 98 | developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to | |||
| 99 | provide a formal definition of the stated problem and search for an optimal use of available | |||
| 100 | resources \cite{yu2007design, kodek1980design}. | |||
| 101 | ||||
| 102 | The degrees of freedom when addressing the problem of replacing the single monolithic | |||
| 103 | FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, | |||
| 104 | the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing | |||
| 105 | the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, | |||
| 106 | the optimization of the complete processing chain within a constrained resource environment is not | |||
| 107 | trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is | |||
| 108 | the number of bits needed in a worst case condition to represent the output of the FIR. | |||
| 109 | ||||
| 110 | ||||
| 111 | \begin{figure}[h!tb] | |||
| 112 | \includegraphics[width=\linewidth]{images/noise-rejection.pdf} | |||
| 113 | \caption{Rejection as a function of number of coefficients and number of bits} | |||
| 114 | \label{noise-rejection} | |||
| 115 | \end{figure} | |||
| 116 | ||||
| 117 | The objective function maximizes the noise rejection while keeping resource occupation below | |||
| 118 | a user-defined threshold. The MILP solver is allowed to choose the number of successive | |||
| 119 | filters, within an upper bound. The last problem is to model the noise rejection. Since filter | |||
| 120 | noise rejection capability is not modeled with linear equation, a look-up-table is generated | |||
| 121 | for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each | |||
| 122 | one of these conditions, the low-pass filter rejection defined as the mean power between | |||
| 123 | half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response | |||
| 124 | of the digital filter (Fig. \ref{noise-rejection}). | |||
| 125 | ||||
| 126 | Linear program formalism for solving the problem is well documented: an objective function is | |||
| 127 | defined which is linearly dependent on the parameters to be optimized. Constraints are expressed | |||
| 128 | as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. | |||
| 129 | ||||
| 130 | The MILP solver provides a solution to the problem by selecting a series of small FIR with | |||
| 131 | increasing number of bits representing data and coefficients as well as an increasing number | |||
| 132 | of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the | |||
| 133 | performance comparison between one solution and a monolithic FIR when selecting a cutoff | |||
| 134 | frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the | |||
| 135 | same space usage are provided as selected by the MILP solver. The FIR cascade provides improved | |||
| 136 | rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to | |||
| 137 | be tuned or compensated for. | |||
| 138 | ||||
| 139 | \begin{figure}[h!tb] | |||
| 140 | % \includegraphics[width=\linewidth]{images/compare-fir.pdf} | |||
| 141 | \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} | |||
| 142 | \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR | |||
| 143 | with a cutoff frequency set at half the Nyquist frequency.} | |||
| 144 | \label{compare-fir} | |||
| 145 | \end{figure} | |||
| 146 | ||||
| 147 | The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. | |||
| 148 | ||||
| 149 | \begin{table}[h!tb] | |||
| 150 | \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade | |||
| 151 | identified as optimal by the MILP solver within a finite resource criterion. The last line refers | |||
| 152 | to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean | |||
| 153 | value from 0.6 to 1 Nyquist frequency.} | |||
| 154 | \begin{center} | |||
| 155 | \begin{tabular}{|c|cccc|}\hline | |||
| 156 | FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline | |||
| 157 | 1 (monolithic) & 1 & 4064 & 40 & -72 \\ | |||
| 158 | 5 & 5 & 12332 & 0 & -217 \\ | |||
| 159 | 10 & 10 & 12717 & 0 & -251 \\\hline\hline | |||
| 160 | Zynq 7010 & 60 & 17600 & 80 & \\\hline | |||
| 161 | \end{tabular} | |||
| 162 | \end{center} | |||
| 163 | %\vspace{-0.7cm} | |||
| 164 | \label{t1} | |||
| 165 | \end{table} | |||
| 166 | ||||
| 167 | \section{Filter coefficient selection} | |||
| 168 | ||||
| 169 | The coefficients of a single monolithic filter are computed as the impulse response | |||
| 170 | of the filter transfer function, and practically approximated by a multitude of methods | |||
| 171 | including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing | |||
| 172 | (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by | |||
| 173 | selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} | |||
| 174 | illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better | |||
| 175 | rejection than {\tt firls}: since the linear solver increases the number of coefficients along | |||
| 176 | the processing chain, the type of selected filter also changes depending on the number of coefficients | |||
| 177 | and evolves along the processing chain. | |||
| 178 |