next up previous
Next: Bibliography

Low Threshold Telemetry with Noncausal Smoothing
Detailed Technical Review



Responsible Engineer: Chau Buu
Presenter: Jon Hamkins


Contents




Description



Functional Requirements


From the TMOD Telemetry Service System Requirements Document (DTT1298), the receiver shall have no more than a 0.5 dB loss of symbol SNR due to carrier tracking, for the following parameters:



Symbol rate   4 to 490 symbols/second
Phase noise type   Frequency flicker dominated (i.e., PSD $\sim 1/f^3$)
Phase noise level   $-32 < L(1) < 0$ dBrad$^2$/Hz
$P_c/N_0$   $22 + 0.5 L(1)$ or greater


Functional Requirements Clarification



Old New


$\textstyle \parbox{2in}{The system shall be able to track
a residual carrier with a mean squared error of 0.1 square radians or
less.}$ $\rightarrow$ $\textstyle \parbox{2in}{The system shall provide symbol outputs whose
SNR loss due to carrier tracking shall be no more than 0.5 dB.}$


For low data rates, the symbol SNR loss is governed by the average value of $\cos^2\phi_c$.

\begin{displaymath}E[\cos^2\phi_c] = E[(1-\phi_c^2/2+O(\phi_c^4))^2]
\approx 1 - E[\phi_c^2] \ge 0.9 = -0.46 \mbox{dB}\end{displaymath}

Thus, the requirement is virtually the same.


Design: Theoretical basis for noncausal smoothing


For random processes related by


\includegraphics[width=2in]{sigplusnoise.eps} according Wiener theory, the LMMSE of $X$ given $Y$ is given by $\hat X$


\includegraphics[width=2in]{filter.eps} where

\begin{displaymath}H(f) = \frac{S_X(f)}{S_X(f)+S_N(f)}\end{displaymath}

and where $S_X(f)$ and $S_N(f)$ are the 2-sided spectral densities.


Design: Theoretical basis for noncausal smoothing (cont.)



\begin{displaymath}H(f) = \frac{S_X(f)}{S_X(f)+S_N(f)}\end{displaymath}


Since $H(f)$ is real and even, so is $h(t)$.
Therefore,



The LMMSE filter is noncausal.

When $S_X(f) = S_3/(2\vert f\vert^3)$ and $S_N(f) = N_0/2$ are the 2-sided PSD's, then

\begin{displaymath}H(f) = \frac{1}{1+\vert f\vert^3N_0/S_3}.\end{displaymath}


Design: Practical considerations- using triangular filter shape


The carrier phase MSE for a filter is given by:

\begin{displaymath}\sigma^2 = \underbrace{{BN_0 \over P_c}}_{\mbox{due to AWGN}}
+ \underbrace{{kS_3\over B^2}}_{\mbox{due to phase noise}}\end{displaymath}

$B$ is the filter bandwidth and $k$ depends only on the filter shape. The bandwidth minimizing $\sigma^2$ is

\begin{displaymath}B = (2S_3kP_c/N_0)^{1/3},\end{displaymath}

resulting in an MSE of

\begin{displaymath}\sigma^2 = {3\over 2}\left(2kS_3N_0^2\over P_c^2\right)^{1/3}.\end{displaymath}

We replace LMMSE filter with a triangle. We no longer have the LMMSE, but it's very close ($k=0.272$ vs. $k=0.262$, compared to $k=8.7$ for 2nd order PLL [#!Ki96!#]), and easy to implement. Its length is

\begin{displaymath}N = \frac{2}{3BT_c} = \frac{0.816}{(S_3P_c/N_0)^{1/3}T_c}.\end{displaymath}

Notes:



Block diagram of the smoother filter


\includegraphics[width=7in]{smoother.eps}


Block diagram of the Block V Receiver without smoother.


\includegraphics[width=6.5in]{bvr-basic.eps}



\includegraphics[width=6.5in]{bvr-smoother.eps}


Block diagram of the Block V Receiver with smoother.


\includegraphics[width=6.5in]{bvr.eps}


$\textstyle \parbox{3in}{
Main signal points on BVR:
\begin{eqnarray*}
r[n] & = ...
... T_{HBF} + \hat\theta_{sc}[n])
\delta(\hat\theta_{sc}[n])\\
\end{eqnarray*}}$$\textstyle \parbox{4in}{
\vspace*{-0.2in}
\begin{eqnarray*}
\mbox{where} \\
P_...
...heta_{sc}(t) - \hat\theta_{sc}(t) = \mbox{\small Subc.
error}
\end{eqnarray*}}$


Software Design: Signal Model Parameters



Signal type: Residual carrier BPSK with data subcarrier
$P_t/N_0$: 23.01 dB
$P_c/N_0$: 20.00 dB
$P_d/N_0$: 20.00 dB
Symbol rate: 500 sym/sec
Modulation index: 45 deg (0.79 rad)
Carrier
Phase noise type: Frequency-flicker noise
PSD (2-sided): $0.01/f^3$ rad$^2$/Hz
Power at 1 Hz offset: -20.00 dBrad$^2$/Hz
Phase stored modulo 2 pi: No
Length of phase filter: 4096
Phase at t=0: 0 deg (0.00 rad)
Subcarrier
Shape: Square wave
Phase stored modulo 2 pi: No
Frequency: 22.5 kHz
Phase at t=0: 0 deg (0.00 rad)
Channel type: AWGN, with carrier phase noise
Sample rate at ADC output: 160000000 Hz
Sample rate after HBF: 80000000 Hz


Software Design: Carrier Recovery Parameters



Carrier update rate: 2000 Hz
Causal
Loop type: Standard underdamped PLL
Order: 2
PLL loop bandwidth: 3.26 Hz
Predicted tracking performance
MSE: 0.0326 (AWGN) + 0.0163 (phase noise) = 0.0490 rad$^2$
Effective loop SNR: 13.10 dB
Symbol SNR loss due to carrier tracking: 0.0104 dB
Noncausal
Loop Type: Linear smoothing filter
Filter shape: Triangular
Filter bandwidth: 1.03 Hz
Filter length: 1297
Frequency tracking method: PLL-derived frequencies
Predicted performance
MSE: 0.0103 (AWGN) + 0.0051 (phase noise) = 0.0245 rad$^2$
Effective loop SNR: 18.12 dB
Gain over causal tracking: 5.02 dB
Symbol SNR loss due to carrier tracking: 0.0010 dB


Software Design: Subcarrier and Timing Recovery Parameters



Subarrier Recovery
Subcarrier update rate: 500 Hz
Loop type: Standard underdamped PLL
Order: 2
PLL loop bandwidth: 0.100 Hz
Window fraction: 0.25
Predicted tracking performance
MSE: 0.0022 rad$^2$
Squaring loss: 5.44 dB
Loss due to carrier tracking: 0.11 dB
Effective loop SNR: 26.55 dB
Timing Recovery
Timing update rate: 500 Hz
Loop type: Perfect Recovery assumed
Available Debugging Cheats:
Send all zeroes
AWGN turned off
Carrier phase noise turned off
Perfect carrier recovery
Smoother turned off


Design: Program flow


main(int argc, char *argv[])
{
   process_command_line_arguments(argc,argv); /* see args.c                 */
   initialize_global_variables(); /*  e.g., bandwidths, memory allocation   */
   print_header();                /* info about simulation parameters       */
   for(k=0; ck<number_of_updates; k++) {
      get_ADC_output_sample();    /* output of analog to digital convertor  */
      get_NCO_mixer_output();     /* output after NCO mixer                 */
      get_HBF_output();           /* output of half-band filter             */
      get_subcarrier_correction();/* output after subcarrier mixer          */
      update_accumulators();      /* for car., subc., timing, & smoother    */
      if (carrier_sample_is_ready())    process_carrier_sample();
      if (subcarrier_sample_is_ready()) process_subcarrier_sample();
      if (timing_sample_is_ready())     process_timing_sample();
      if (smoother_sample_is_ready())   process_smoother_sample();
      print_results();            /* print results every so often           */
   }
}


Design: Phase noise generation



\includegraphics{inout.eps}




Design: Phase noise generation



Measured PSD's of simulated phase noise
\includegraphics[width=4.5in]{phases23dbc.eps}


Results: $L(1) = 0 \mbox{ dBrad$^2$/Hz}$
\includegraphics{L-0.eps}



Results: $L(1) = -10 \mbox{ dBrad$^2$/Hz}$
\includegraphics{L-10.eps}



Results: $L(1) = -20 \mbox{ dBrad$^2$/Hz}$
\includegraphics{L-20.eps}



Results: $L(1) = -30 \mbox{ dBrad$^2$/Hz}$
\includegraphics{L-30.eps}



Results: $L(1) = -40 \mbox{ dBrad$^2$/Hz}$
\includegraphics{L-40.eps}






next up previous
Next: Bibliography
Jon Hamkins 1999-11-15