Commit bad78fb7c777e4f94c7f209404857097c824a97f
1 parent
08e32d5a93
Exists in
master
corrections
Showing 2 changed files with 62 additions and 22 deletions Inline Diff
ifcs2018.tex
\documentclass[a4paper,conference]{IEEEtran/IEEEtran} | 1 | 1 | \documentclass[a4paper,conference]{IEEEtran/IEEEtran} | |
\usepackage{graphicx,color,hyperref} | 2 | 2 | \usepackage{graphicx,color,hyperref} | |
\usepackage{amsfonts} | 3 | 3 | \usepackage{amsfonts} | |
\usepackage{url} | 4 | 4 | \usepackage{url} | |
\usepackage[normalem]{ulem} | 5 | 5 | \usepackage[normalem]{ulem} | |
\graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} | 6 | 6 | \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} | |
% correct bad hyphenation here | 7 | 7 | % correct bad hyphenation here | |
\hyphenation{op-tical net-works semi-conduc-tor} | 8 | 8 | \hyphenation{op-tical net-works semi-conduc-tor} | |
\textheight=26cm | 9 | 9 | \textheight=26cm | |
\setlength{\footskip}{30pt} | 10 | 10 | \setlength{\footskip}{30pt} | |
\pagenumbering{gobble} | 11 | 11 | \pagenumbering{gobble} | |
\begin{document} | 12 | 12 | \begin{document} | |
\title{Filter optimization for real time digital processing of radiofrequency signals: application | 13 | 13 | \title{Filter optimization for real time digital processing of radiofrequency signals: application | |
to oscillator metrology} | 14 | 14 | to oscillator metrology} | |
15 | 15 | |||
\author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, | 16 | 16 | \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, | |
G. Goavec-M\'erou\IEEEauthorrefmark{1}, | 17 | 17 | G. Goavec-M\'erou\IEEEauthorrefmark{1}, | |
P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M Friedt\IEEEauthorrefmark{1}} | 18 | 18 | P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M Friedt\IEEEauthorrefmark{1}} | |
\IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } | 19 | 19 | \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } | |
\IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ | 20 | 20 | \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ | |
Email: \{pyb2,jmfriedt\}@femto-st.fr} | 21 | 21 | Email: \{pyb2,jmfriedt\}@femto-st.fr} | |
} | 22 | 22 | } | |
\maketitle | 23 | 23 | \maketitle | |
\thispagestyle{plain} | 24 | 24 | \thispagestyle{plain} | |
\pagestyle{plain} | 25 | 25 | \pagestyle{plain} | |
26 | 26 | |||
\begin{abstract} | 27 | 27 | \begin{abstract} | |
Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to | 28 | 28 | Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to | |
radiofrequency signal processing. Applied to oscillator characterization in the context | 29 | 29 | radiofrequency signal processing. Applied to oscillator characterization in the context | |
of ultrastable clocks, stringent filtering requirements are defined by spurious signal or | 30 | 30 | of ultrastable clocks, stringent filtering requirements are defined by spurious signal or | |
noise rejection needs. Since real time radiofrequency processing must be performed in a | 31 | 31 | noise rejection needs. Since real time radiofrequency processing must be performed in a | |
Field Programmable Array to meet timing constraints, we investigate optimization strategies | 32 | 32 | Field Programmable Array to meet timing constraints, we investigate optimization strategies | |
to design filters meeting rejection characteristics while limiting the hardware resources | 33 | 33 | to design filters meeting rejection characteristics while limiting the hardware resources | |
required and keeping timing constraints within the targeted measurement bandwidths. | 34 | 34 | required and keeping timing constraints within the targeted measurement bandwidths. | |
\end{abstract} | 35 | 35 | \end{abstract} | |
36 | 36 | |||
\begin{IEEEkeywords} | 37 | 37 | \begin{IEEEkeywords} | |
Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter | 38 | 38 | Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter | |
\end{IEEEkeywords} | 39 | 39 | \end{IEEEkeywords} | |
40 | 40 | |||
\section{Digital signal processing of ultrastable clock signals} | 41 | 41 | \section{Digital signal processing of ultrastable clock signals} | |
42 | 42 | |||
Analog oscillator phase noise characteristics are classically performed by downconverting | 43 | 43 | Analog oscillator phase noise characteristics are classically performed by downconverting | |
the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, | 44 | 44 | the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, | |
followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In | 45 | 45 | followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In | |
a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by | 46 | 46 | a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by | |
multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. | 47 | 47 | multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. | |
48 | 48 | |||
\begin{figure}[h!tb] | 49 | 49 | \begin{figure}[h!tb] | |
\begin{center} | 50 | 50 | \begin{center} | |
\includegraphics[width=.8\linewidth]{images/schema} | 51 | 51 | \includegraphics[width=.8\linewidth]{images/schema} | |
\end{center} | 52 | 52 | \end{center} | |
\caption{Fully digital oscillator phase noise characterization: the Device Under Test | 53 | 53 | \caption{Fully digital oscillator phase noise characterization: the Device Under Test | |
(DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and | 54 | 54 | (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and | |
downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals | 55 | 55 | downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals | |
and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite | 56 | 56 | and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite | |
Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays | 57 | 57 | Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays | |
the spectral characteristics of the phase fluctuations.} | 58 | 58 | the spectral characteristics of the phase fluctuations.} | |
\label{schema} | 59 | 59 | \label{schema} | |
\end{figure} | 60 | 60 | \end{figure} | |
61 | 61 | |||
As with the analog mixer, | 62 | 62 | As with the analog mixer, | |
the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as | 63 | 63 | the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as | |
well as the generation of the frequency sum signal in addition to the frequency difference. | 64 | 64 | well as the generation of the frequency sum signal in addition to the frequency difference. | |
These unwanted spectral characteristics must be rejected before decimating the data stream | 65 | 65 | These unwanted spectral characteristics must be rejected before decimating the data stream | |
for the phase noise spectral characterization. The characteristics introduced between the downconverter | 66 | 66 | for the phase noise spectral characterization. The characteristics introduced between the downconverter | |
and the decimation processing blocks are core characteristics of an oscillator characterization | 67 | 67 | and the decimation processing blocks are core characteristics of an oscillator characterization | |
system, and must reject out-of-band signals below the targeted phase noise -- typically in the | 68 | 68 | system, and must reject out-of-band signals below the targeted phase noise -- typically in the | |
sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will | 69 | 69 | sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will | |
use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency | 70 | 70 | use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency | |
datastream: optimizing the performance of the filter while reducing the needed resources is | 71 | 71 | datastream: optimizing the performance of the filter while reducing the needed resources is | |
hence tackled in a systematic approach using optimization techniques. Most significantly, we | 72 | 72 | hence tackled in a systematic approach using optimization techniques. Most significantly, we | |
tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with | 73 | 73 | tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with | |
tunable number of coefficients and tunable number of bits representing the coefficients and the | 74 | 74 | tunable number of coefficients and tunable number of bits representing the coefficients and the | |
data being processed. | 75 | 75 | data being processed. | |
76 | 76 | |||
\section{Filter optimization} | 77 | 77 | \section{Filter optimization} | |
78 | 78 | |||
A basic approach for implementing the FIR filter is to compute the transfer function of | 79 | 79 | A basic approach for implementing the FIR filter is to compute the transfer function of | |
a monolithic filter: this single filter defines all coefficients with the same resolution | 80 | 80 | a monolithic filter: this single filter defines all coefficients with the same resolution | |
(number of bits) and processes data represented with their own resolution. Meeting the | 81 | 81 | (number of bits) and processes data represented with their own resolution. Meeting the | |
filter shape requires a large number of coefficients, limited by resources of the FPGA since | 82 | 82 | filter shape requires a large number of coefficients, limited by resources of the FPGA since | |
this filter must process data stream at the radiofrequency sampling rate after the mixer. | 83 | 83 | this filter must process data stream at the radiofrequency sampling rate after the mixer. | |
84 | 84 | |||
An optimization problem \cite{leung2004handbook} aims at improving one or many | 85 | 85 | An optimization problem \cite{leung2004handbook} aims at improving one or many | |
performance criteria within a constrained resource environment. Amongst the tools | 86 | 86 | performance criteria within a constrained resource environment. Amongst the tools | |
developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to | 87 | 87 | developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to | |
provide a formal definition of the stated problem and search for an optimal use of available | 88 | 88 | provide a formal definition of the stated problem and search for an optimal use of available | |
resources \cite{yu2007design, kodek1980design}. | 89 | 89 | resources \cite{yu2007design, kodek1980design}. | |
90 | 90 | |||
The degrees of freedom when addressing the problem of replacing the single monolithic | 91 | 91 | The degrees of freedom when addressing the problem of replacing the single monolithic | |
FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, | 92 | 92 | FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, | |
the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing | 93 | 93 | the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing | |
the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, | 94 | 94 | the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, | |
the optimization of the complete processing chain within a constrained resource environment is not | 95 | 95 | the optimization of the complete processing chain within a constrained resource environment is not | |
trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is | 96 | 96 | trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is | |
the number of bits needed in a worst case condition to represent the output of the FIR. | 97 | 97 | the number of bits needed in a worst case condition to represent the output of the FIR. | |
98 | 98 | |||
99 | 99 | |||
\begin{figure}[h!tb] | 100 | 100 | \begin{figure}[h!tb] | |
\includegraphics[width=\linewidth]{images/noise-rejection.pdf} | 101 | 101 | \includegraphics[width=\linewidth]{images/noise-rejection.pdf} | |
\caption{Rejection as a function of number of coefficients and number of bits} | 102 | 102 | \caption{Rejection as a function of number of coefficients and number of bits} | |
\label{noise-rejection} | 103 | 103 | \label{noise-rejection} | |
\end{figure} | 104 | 104 | \end{figure} | |
105 | 105 | |||
The objective function maximizes the noise rejection while keeping resource occupation below | 106 | 106 | The objective function maximizes the noise rejection while keeping resource occupation below | |
a user-defined threshold. The MILP solver is allowed to choose the number of successive | 107 | 107 | a user-defined threshold. The MILP solver is allowed to choose the number of successive | |
filters, within an upper bound. The last problem is to model the noise rejection. Since filter | 108 | 108 | filters, within an upper bound. The last problem is to model the noise rejection. Since filter | |
noise rejection capability is not modeled with linear equation, a look-up-table is generated | 109 | 109 | noise rejection capability is not modeled with linear equation, a look-up-table is generated | |
for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each | 110 | 110 | for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each | |
one of these conditions, the low-pass filter rejection defined as the mean power between | 111 | 111 | one of these conditions, the low-pass filter rejection defined as the mean power between | |
half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response | 112 | 112 | half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response | |
of the digital filter (Fig. \ref{noise-rejection}). | 113 | 113 | of the digital filter (Fig. \ref{noise-rejection}). | |
114 | 114 | |||
Linear program formalism for solving the problem is well documented: an objective function is | 115 | 115 | Linear program formalism for solving the problem is well documented: an objective function is | |
defined which is linearly dependent on the parameters to be optimized. Constraints are expressed | 116 | 116 | defined which is linearly dependent on the parameters to be optimized. Constraints are expressed | |
as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. | 117 | 117 | as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. | |
118 | 118 | |||
The MILP solver provides a solution to the problem by selecting a series of small FIR with | 119 | 119 | The MILP solver provides a solution to the problem by selecting a series of small FIR with | |
increasing number of bits representing data and coefficients as well as an increasing number | 120 | 120 | increasing number of bits representing data and coefficients as well as an increasing number | |
of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the | 121 | 121 | of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the | |
performance comparison between one solution and a monolithic FIR when selecting a cutoff | 122 | 122 | performance comparison between one solution and a monolithic FIR when selecting a cutoff | |
frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the | 123 | 123 | frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the | |
same space usage are provided as selected by the MILP solver. The FIR cascade provides improved | 124 | 124 | same space usage are provided as selected by the MILP solver. The FIR cascade provides improved | |
rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to | 125 | 125 | rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to | |
be tuned or compensated for. | 126 | 126 | be tuned or compensated for. | |
127 | 127 | |||
\begin{figure}[h!tb] | 128 | 128 | \begin{figure}[h!tb] | |
% \includegraphics[width=\linewidth]{images/compare-fir.pdf} | 129 | 129 | % \includegraphics[width=\linewidth]{images/compare-fir.pdf} | |
\includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} | 130 | 130 | \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} | |
\caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR | 131 | 131 | \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR | |
with a cutoff frequency set at half the Nyquist frequency.} | 132 | 132 | with a cutoff frequency set at half the Nyquist frequency.} | |
\label{compare-fir} | 133 | 133 | \label{compare-fir} | |
\end{figure} | 134 | 134 | \end{figure} | |
135 | 135 | |||
The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. | 136 | 136 | The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. | |
137 | 137 | |||
\begin{table}[h!tb] | 138 | 138 | \begin{table}[h!tb] | |
\caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade | 139 | 139 | \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade | |
identified as optimal by the MILP solver within a finite resource criterion. The last line refers | 140 | 140 | identified as optimal by the MILP solver within a finite resource criterion. The last line refers | |
to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean | 141 | 141 | to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean | |
value from 0.6 to 1 Nyquist frequency.} | 142 | 142 | value from 0.6 to 1 Nyquist frequency.} | |
\begin{center} | 143 | 143 | \begin{center} | |
\begin{tabular}{|c|cccc|}\hline | 144 | 144 | \begin{tabular}{|c|cccc|}\hline | |
FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline | 145 | 145 | FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline | |
1 (monolithic) & 1 & 4064 & 40 & -71.78 \\ | 146 | 146 | 1 (monolithic) & 1 & 4064 & 40 & -72 \\ | |
5 & 5 & 12332 & 0 & -216.58 \\ | 147 | 147 | 5 & 5 & 12332 & 0 & -217 \\ | |
10 & 10 & 12717 & 0 & -251.01 \\\hline\hline | 148 | 148 | 10 & 10 & 12717 & 0 & -251 \\\hline\hline | |
Zynq 7010 & 60 & 17600 & 80 & \\\hline | 149 | 149 | Zynq 7010 & 60 & 17600 & 80 & \\\hline | |
\end{tabular} | 150 | 150 | \end{tabular} | |
\end{center} | 151 | 151 | \end{center} | |
%\vspace{-0.7cm} | 152 | 152 | %\vspace{-0.7cm} | |
\label{t1} | 153 | 153 | \label{t1} | |
\end{table} | 154 | 154 | \end{table} | |
155 | 155 | |||
\section{Filter coefficient selection} | 156 | 156 | \section{Filter coefficient selection} | |
157 | 157 | |||
The coefficients of a single monolithic filter are computed as the impulse response | 158 | 158 | The coefficients of a single monolithic filter are computed as the impulse response | |
of the filter transfer function, and practically approximated by a multitude of methods | 159 | 159 | of the filter transfer function, and practically approximated by a multitude of methods | |
including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing | 160 | 160 | including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing | |
(Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by | 161 | 161 | (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by | |
selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} | 162 | 162 | selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} | |
illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better | 163 | 163 | illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better | |
rejection than {\tt firls}: since the linear solver increases the number of coefficients along | 164 | 164 | rejection than {\tt firls}: since the linear solver increases the number of coefficients along | |
the processing chain, the type of selected filter also changes depending on the number of coefficients | 165 | 165 | the processing chain, the type of selected filter also changes depending on the number of coefficients | |
and evolves along the processing chain. | 166 | 166 | and evolves along the processing chain. | |
167 | 167 | |||
\begin{figure}[h!tb] | 168 | 168 | \begin{figure}[h!tb] | |
\includegraphics[width=\linewidth]{images/fir1-vs-firls} | 169 | 169 | \includegraphics[width=\linewidth]{images/fir1-vs-firls} | |
\caption{Evolution of the rejection capability of least-square optimized filters and Hamming | 170 | 170 | \caption{Evolution of the rejection capability of least-square optimized filters and Hamming | |
FIR filters as a function of the number of coefficients, for floating point numbers and 8-bit | 171 | 171 | FIR filters as a function of the number of coefficients, for floating point numbers and 8-bit | |
encoded integers.} | 172 | 172 | encoded integers.} | |
\label{2} | 173 | 173 | \label{2} |
ifcs2018_poster.tex
\documentclass[a4paper]{article} | 1 | 1 | \documentclass[a4paper]{article} | |
\usepackage[usenames,dvipsnames]{color} | 2 | 2 | \usepackage[usenames,dvipsnames]{color} | |
\usepackage[english]{babel} | 3 | 3 | \usepackage[english]{babel} | |
\usepackage{url,graphicx,enumitem,enumitem,caption} | 4 | 4 | \usepackage{url,graphicx,enumitem,enumitem,caption} | |
5 | 5 | |||
\definecolor{title_color}{rgb}{0.050980, 0.325490, 0.580392} | 6 | 6 | \definecolor{title_color}{rgb}{0.050980, 0.325490, 0.580392} | |
7 | 7 | |||
\newcommand{\newsection}[1] { | 8 | 8 | \newcommand{\newsection}[1] { | |
{\color{title_color}\section*{#1}} | 9 | 9 | {\color{title_color}\section*{#1}} | |
} | 10 | 10 | } | |
11 | 11 | |||
\newcommand{\addblock}[2] { | 12 | 12 | \newcommand{\addblock}[2] { | |
\begin{minipage}[t]{#1} | 13 | 13 | \begin{minipage}[t]{#1} | |
#2 | 14 | 14 | #2 | |
\end{minipage} | 15 | 15 | \end{minipage} | |
} | 16 | 16 | } | |
17 | 17 | |||
\newcommand{\addalignedblock}[3] { | 18 | 18 | \newcommand{\addalignedblock}[3] { | |
\begin{minipage}[c]{#1} | 19 | 19 | \begin{minipage}[c]{#1} | |
\begin{#2} | 20 | 20 | \begin{#2} | |
#3 | 21 | 21 | #3 | |
\end{#2} | 22 | 22 | \end{#2} | |
\end{minipage} | 23 | 23 | \end{minipage} | |
} | 24 | 24 | } | |
25 | 25 | |||
\textheight=29.7cm | 26 | 26 | \textheight=29.7cm | |
\topmargin=-3.6cm | 27 | 27 | \topmargin=-3.6cm | |
\oddsidemargin=-2cm | 28 | 28 | \oddsidemargin=-2cm | |
\textwidth=19.5cm | 29 | 29 | \textwidth=19.5cm | |
\pagestyle{empty} | 30 | 30 | \pagestyle{empty} | |
31 | 31 | |||
\begin{document} | 32 | 32 | \begin{document} | |
33 | 33 | |||
% Title | 34 | 34 | % Title | |
\begin{center} | 35 | 35 | \begin{center} | |
\textbf{{\scshape | 36 | 36 | \textbf{{\scshape | |
\Large\color{OliveGreen} | 37 | 37 | \LARGE\color{OliveGreen} | |
Filter optimization for real time digital processing of radiofrequency signals: application | 38 | 38 | Filter optimization for real time digital processing of radiofrequency signals: application | |
to oscillator metrology | 39 | 39 | to oscillator metrology | |
\\}} | 40 | 40 | \\}} | |
\end{center} | 41 | 41 | \end{center} | |
42 | 42 | |||
43 | \vspace{-0.7cm} | |||
% Authors | 43 | 44 | % Authors | |
\begin{center} | 44 | 45 | \begin{center} | |
\addalignedblock{0.18\textwidth}{flushleft}{% | 45 | 46 | \addalignedblock{0.18\textwidth}{flushleft}{% | |
\includegraphics[height=1.6cm]{images/logo_ubfc} | 46 | 47 | \includegraphics[height=1.6cm]{images/logo_ubfc} | |
} | 47 | 48 | } | |
\addalignedblock{0.28\textwidth}{center}{% | 48 | 49 | \addalignedblock{0.28\textwidth}{center}{% | |
G. \textsc{Goavec-M\'erou},\\ | 49 | 50 | G. \textsc{Goavec-M\'erou},\\ | |
P.-Y. \textsc{Bourgeois}, J.-M \textsc{Friedt}\\ | 50 | 51 | P.-Y. \textsc{Bourgeois}, J.-M \textsc{Friedt}\\ | |
$^{*}$FEMTO-ST, Time \& Frequency dept., Besan\c con, France | 51 | 52 | $^{*}$FEMTO-ST, Time \& Frequency dept., Besan\c con, France | |
} | 52 | 53 | } | |
\addalignedblock{0.28\textwidth}{center}{% | 53 | 54 | \addalignedblock{0.28\textwidth}{center}{% | |
A. \textsc{Hugeat}$^{*}$, J. \textsc{Bernard}\\ | 54 | 55 | A. \textsc{Hugeat}$^{*}$, J. \textsc{Bernard}\\ | |
~\\ | 55 | 56 | ~\\ | |
FEMTO-ST, DISC dept., Besan\c con, France | 56 | 57 | FEMTO-ST, DISC dept., Besan\c con, France | |
} | 57 | 58 | } | |
\addalignedblock{0.18\textwidth}{flushright}{% | 58 | 59 | \addalignedblock{0.18\textwidth}{flushright}{% | |
\includegraphics[height=1.4cm]{images/logo_femto} | 59 | 60 | \includegraphics[height=1.4cm]{images/logo_femto} | |
} | 60 | 61 | } | |
\end{center} | 61 | 62 | \end{center} | |
62 | 63 | |||
% First part | 63 | 64 | % First part | |
65 | \vspace{-.71cm} | |||
\newsection{Digital signal processing of ultrastable clock signals} | 64 | 66 | \newsection{Digital signal processing of ultrastable clock signals} | |
65 | 67 | |||
Je ne sais pas trop quoi dire ici | 66 | 68 | \vspace{-.21cm} | |
69 | \begin{itemize}[leftmargin=*] | |||
70 | \setlength{\itemsep}{0pt}% | |||
71 | \setlength{\parskip}{0pt}% | |||
72 | \item | |||
73 | {\bf Digital phase noise characterization}: flexibility (software defined local | |||
74 | oscillator), stability (no long term drift), reconfigurabilty | |||
75 | $\Rightarrow$ {\bf software defined radio} oscillator phase noise | |||
76 | characterization | |||
77 | \item analog to digital conversion of radiofrequency signal, software | |||
78 | defined local oscillator, mixer and {\bf low pass filter} | |||
79 | \item low pass filter uses most resources and introduces latency (phase delay | |||
80 | in feedback loop): needs to be optimized | |||
81 | \end{itemize} | |||
67 | 82 | |||
83 | \vspace{-.21cm} | |||
84 | \hrule{\hfill} | |||
% Second part | 68 | 85 | % Second part | |
\newsection{Filter design} | 69 | 86 | \vspace{-.71cm} | |
\begin{itemize} | 70 | 87 | \newsection{Filter design and implementation strategy:} | |
\item How to implementing filter:\\ | 71 | 88 | %\begin{itemize}[leftmargin=*] | |
89 | %\setlength{\itemsep}{0pt}% | |||
90 | %\setlength{\parskip}{0pt}% | |||
91 | \vspace{-.41cm} | |||
\addblock{0.48\textwidth}{ | 72 | 92 | \addblock{0.48\textwidth}{ | |
\begin{enumerate}[noitemsep,nolistsep] | 73 | 93 | \begin{enumerate}[noitemsep,nolistsep] | |
\item \textbf{Classical way:}\\ | 74 | 94 | \item \textbf{Classical way:}\\ | |
Compute the transfer function of a monolithic filter | 75 | 95 | Compute the transfer function of a monolithic filter | |
\begin{itemize}[label=$\Rightarrow$, noitemsep, nolistsep] | 76 | 96 | \begin{itemize}[label=$\Rightarrow$, noitemsep, nolistsep] | |
{\color{Green}\item Simplest way to design filter} | 77 | 97 | {\color{Green}\item Simplest way to design filter} | |
{\color{Green}\item Great rejection} | 78 | 98 | {\color{Green}\item Great rejection} | |
{\color{Red}\item Consume lot of resources on FPGA} | 79 | 99 | {\color{Red}\item Consume lot of resources on FPGA} | |
\end{itemize} | 80 | 100 | \end{itemize} | |
\end{enumerate} | 81 | 101 | \end{enumerate} | |
} | 82 | 102 | } | |
\addblock{0.48\textwidth}{ | 83 | 103 | \addblock{0.48\textwidth}{ | |
\begin{enumerate} | 84 | 104 | \begin{enumerate} | |
\setcounter{enumi}{1} | 85 | 105 | \setcounter{enumi}{1} | |
\item \textbf{Alternative way (our focus):}\\ | 86 | 106 | \item \textbf{Alternative way (our focus):}\\ | |
Chain of little filters | 87 | 107 | Chain of little filters | |
\begin{itemize}[label=$\Rightarrow$, noitemsep, nolistsep] | 88 | 108 | \begin{itemize}[label=$\Rightarrow$, noitemsep, nolistsep] | |
{\color{Green}\item Great rejection} | 89 | 109 | {\color{Green}\item Great rejection} | |
{\color{Green}\item Consume less resources on FPGA} | 90 | 110 | {\color{Green}\item Consume less resources on FPGA} | |
{\color{Red}\item Harder way to design filter} | 91 | 111 | {\color{Red}\item Harder way to design filter} | |
\end{itemize} | 92 | 112 | \end{itemize} | |
\end{enumerate} | 93 | 113 | \end{enumerate} | |
} | 94 | 114 | } | |
\item The 2\textsuperscript{nd} way could be considered as an optimization problem: | 95 | 115 | The 2\textsuperscript{nd} way could be considered as an optimization problem: | |
\begin{itemize}[noitemsep,nolistsep] | 96 | 116 | \begin{itemize}[noitemsep,nolistsep] | |
\item One or many performance criteria (rejection, noise, throughput...) | 97 | 117 | \item One or many {\bf performance criteria} (rejection, noise, | |
\item Limited resources (on FPGA) | 98 | 118 | throughput...) | |
119 | \item Limited {\bf resources} (on FPGA) | |||
\end{itemize} | 99 | 120 | \end{itemize} | |
\item Translation into a Mixed-Integer Linear Programming (MILP) with GLPK solver | 100 | 121 | Translation into a Mixed-Integer Linear Programming (MILP) with GLPK solver | |
\item 3 degrees of freedom: | 101 | 122 | 3 degrees of freedom: | |
123 | ||||
124 | \vspace{.1cm} | |||
125 | \hfill | |||
126 | \parbox{.60\linewidth}{ | |||
\begin{enumerate}[noitemsep,nolistsep] | 102 | 127 | \begin{enumerate}[noitemsep,nolistsep] | |
\item The size of chain filters | 103 | 128 | \item The size of chain filters | |
\item The number of coefficients for each filter $i$: $N_i$ | 104 | 129 | \item The number of coefficients for each filter $i$: $N_i$ | |
\item The number of bits for each coefficients and for each filter $i$: $c_i$ | 105 | 130 | \item The number of bits for each coefficients and for each filter $i$: $c_i$ | |
\end{enumerate} | 106 | 131 | \end{enumerate} | |
\end{itemize} | 107 | 132 | } | |
\vspace{-0.5cm} | 108 | 133 | %\end{itemize} | |
134 | \vspace{-1.0cm} | |||
\newsection{Filter selection} | 109 | 135 | \newsection{Filter selection} | |
136 | \vspace{-0.3cm} | |||
\begin{itemize}[noitemsep,nolistsep] | 110 | 137 | \begin{itemize}[noitemsep,nolistsep] | |
\item For select the filter design we need to evaluate the rejection like: | 111 | 138 | \item For select the filter design we need to evaluate the rejection like: | |
\begin{enumerate}[noitemsep,nolistsep] | 112 | 139 | \begin{enumerate}[noitemsep,nolistsep] | |
\item The mean value of rejection | 113 | 140 | \item The mean value of rejection | |
\item The median value of rejection | 114 | 141 | \item The median value of rejection | |
\item A custom criterion (we penalize the rejection in base band and we keep only the maximum rejection on the filter tail) | 115 | 142 | \item A custom criterion (we penalize the rejection in base band and we keep only the maximum rejection on the filter tail) | |
\end{enumerate} | 116 | 143 | \end{enumerate} | |
\begin{minipage}[t]{0.30\textwidth} | 117 | 144 | \begin{minipage}[t]{0.30\textwidth} | |
\includegraphics[width=0.95\textwidth]{images/noise-rejection-mean} | 118 | 145 | \includegraphics[width=0.95\textwidth]{images/noise-rejection-mean} | |
\captionof{figure}{Mean criterion} | 119 | 146 | \captionof{figure}{Mean criterion} | |
\end{minipage} | 120 | 147 | \end{minipage} | |
\begin{minipage}[t]{0.30\textwidth} | 121 | 148 | \begin{minipage}[t]{0.30\textwidth} | |
\includegraphics[width=0.95\textwidth]{images/noise-rejection-median} | 122 | 149 | \includegraphics[width=0.95\textwidth]{images/noise-rejection-median} | |
\captionof{figure}{Median criterion} | 123 | 150 | \captionof{figure}{Median criterion} | |
\end{minipage} | 124 | 151 | \end{minipage} | |
\begin{minipage}[t]{0.30\textwidth} | 125 | 152 | \begin{minipage}[t]{0.30\textwidth} | |
\includegraphics[width=0.95\textwidth]{images/noise-rejection-custom} | 126 | 153 | \includegraphics[width=0.95\textwidth]{images/noise-rejection-custom} | |
\captionof{figure}{Custom criterion} | 127 | 154 | \captionof{figure}{Custom criterion} | |
\end{minipage} | 128 | 155 | \end{minipage} | |
\item All rejection criteria produce the same kind of result: the best filters seem to be in the edge of pyramid | 129 | 156 | \item All rejection criteria produce the same kind of result: the best filters seem to be in the edge of pyramid | |
\item For each criteria, we associate the rejection to the related filter and we let GLPK choose the best configuration\\ | 130 | 157 | \item For each criteria, we associate the rejection to the related filter and we let GLPK choose the best configuration\\ | |
\begin{minipage}[t]{0.30\textwidth} | 131 | 158 | \begin{minipage}[t]{0.30\textwidth} | |
\includegraphics[width=0.95\textwidth]{images/fir-mono-vs-fir-series-noise-fixe-mean.pdf} | 132 | 159 | \includegraphics[width=0.95\textwidth]{images/fir-mono-vs-fir-series-noise-fixe-mean.pdf} | |
\captionof{figure}{Mean criterion} | 133 | 160 | \captionof{figure}{Mean criterion} | |
\end{minipage} | 134 | 161 | \end{minipage} | |
\begin{minipage}[t]{0.30\textwidth} | 135 | 162 | \begin{minipage}[t]{0.30\textwidth} | |
\includegraphics[width=0.95\textwidth]{images/fir-mono-vs-fir-series-noise-fixe-median.pdf} | 136 | 163 | \includegraphics[width=0.95\textwidth]{images/fir-mono-vs-fir-series-noise-fixe-median.pdf} | |
\captionof{figure}{Median criterion} | 137 | 164 | \captionof{figure}{Median criterion} | |
\end{minipage} | 138 | 165 | \end{minipage} | |
\begin{minipage}[t]{0.30\textwidth} | 139 | 166 | \begin{minipage}[t]{0.30\textwidth} | |
\includegraphics[width=0.95\textwidth]{images/fir-mono-vs-fir-series-noise-fixe-jmf.pdf} | 140 | 167 | \includegraphics[width=0.95\textwidth]{images/fir-mono-vs-fir-series-noise-fixe-jmf.pdf} | |
\captionof{figure}{Custom criterion} | 141 | 168 | \captionof{figure}{Custom criterion} | |
\end{minipage} | 142 | 169 | \end{minipage} | |
\item For the rejection: the last configuration is better than the first but it's worst than monolithic filter | 143 | 170 | \item {\bf Rejection}: the last configuration is better than the first but worse | |
\item For the resources consumption: the last better than the single filter | 144 | 171 | than the monolithic filter | |
172 | \item Resources {\bf consumption}: last filter is better than the single monolithic filter | |||
173 | (monolithic does not fit in available resources) | |||
174 | \vspace{-.33cm} | |||
\begin{center} | 145 | 175 | \begin{center} | |
\begin{tabular}{|c|ccccc|}\hline | 146 | 176 | \begin{tabular}{|c|ccccc|}\hline | |
FIR & BlockRAM36 & BlockRAM18 & LookUpTables & DSP & rejection (dB)\\\hline\hline | 147 | 177 | FIR & BlockRAM36 & BlockRAM18 & LookUpTables & DSP & rejection (dB)\\\hline\hline | |
1 (monolithic) & 1 & 0 & {\color{Red}76183} & 220 & -162.19 \\ | 148 | 178 | 1 (monolithic) & 1 & 0 & {\color{Red}76183} & 220 & -162 \\ | |
5 & 0 & 5 & {\color{Green}18597} & 220 & -160.06 \\ | 149 | 179 | 5 & 0 & 5 & {\color{Green}18597} & 220 & -160 \\ | |
10 & 0 & 8 & {\color{Green}24729} & 220 & -161.30 \\\hline\hline | 150 | 180 | 10 & 0 & 8 & {\color{Green}24729} & 220 & -161 \\\hline\hline | |
\textbf{Zynq 7020} & \textbf{140} & \textbf{280} & \textbf{53200} & \textbf{220} & \\\hline | 151 | 181 | \textbf{Zynq 7020} & \textbf{140} & \textbf{280} & \textbf{53200} & \textbf{220} & \\\hline | |
\end{tabular} | 152 | 182 | \end{tabular} | |
\captionof{table}{Resources consumption when we use the configuration with the custom criterion} | 153 | 183 | % \captionof{table}{Resources consumption when we use the configuration with the custom criterion} | |
\end{center} | 154 | 184 | \end{center} | |
\item With a serie of filters we able to reach the rejection level because we consume less resources than the traditional filter | 155 | 185 | \item Series of filters: targetd rejection level (-160~dB) reached since less | |
186 | resources are needed than with a monolithic filter | |||
\end{itemize} | 156 | 187 | \end{itemize} | |
188 | \hrule{\hfill} | |||
157 | 189 | |||
190 | \vspace{-.71cm} | |||
191 | \newsection{Conclusion} | |||
192 | ||||
193 | \vspace{-.21cm} | |||
194 | \noindent | |||
195 | FIR filter implementation in an FPGA as an optimization problem: best | |||
196 | results with cascaded filters with increasing number of coefficients | |||
197 | and resolution | |||
\end{document} | 158 | 198 | \end{document} | |
159 | 199 | |||