I am trying to design the Symbol timing recovery(#STR) block of #DVBS Receiver. These are the specifications

  • Symbol rate ($f_s$) = $2\textrm{ MHz}$
  • Acquisition range = $10\%$ of Symbol rate
  • Acquisition time = better than $50\textrm{ ms}$
  • Interpolation rate = $4$
  • Roll off factor = $0.5$
  • Symbol time ($T_s$) = 1/$f_s$
  • Sample time ($T$) = $T_s$/Interpolation rate = $T_s$/4

The main thing I need for the design is to find out the loop filter coefficients $\mathbf{K1}$ and $\mathbf{K2}$ of PI filter which depends on $\zeta$, $B_n$, $T_s$(symbol time), $K_d$(TED gain) and $\mathbf{K0}$(VCO gain).

I am referring to the book Digital Communications: A Discrete-time Approach by Michael Rice, Appendix C, for the design of the loop filter.

From the acquisition range specs, I found:

  • The term $B_nT_s \geq 0.01125$.
  • Acquisition range $\approx$ $2\pi B_n\sqrt 2 \zeta$.

Besides I also figured out the following values

  • $K_d :(\text{I found out from S-curve})= 0.1751$ [Gardner TED]
  • $\mathbf{K0} =1$
  • $\zeta = 1$

I calculated $\mathbf{K1}$ and $\mathbf{K2}$ from these, but when I am simulating the timing recovery design for noise-free channel, it is not working. I found out through trial that $B_nT_s$ factor should be in the range $0.005$ for retrieved symbols bit amplitude close to the original symbol bit amplitude, not $0.01125$ which I got from my calculation. I am not understanding what possible mistake I could have done with calculation. Or I am missing any important factor in the calculation of $\mathbf{K1}$ and $\mathbf{K2}$.

This is the equation for loop filter coefficient $\mathbf{K1}$ $$ \mathbf{K0}\cdot K_{d}\cdot \mathbf{K1} = \frac{4\zeta\left (\frac{B_{n}T}{\zeta+ \frac{1}{4\zeta}}\right )}{1 + 2\zeta\left ( \frac{B_{n}T}{\zeta + \frac{1}{4\zeta}} \right ) + \left ( \frac{B_{n}T}{\zeta + \frac{1}{4\zeta}} \right )^{2}} $$

  • $\begingroup$ hi! I like your questions, but they are horribly hard to read. Could you add a lot more paragraphs into the text (empty line), and could you make your formulas stand out more? It's really hard to guess what is part of normal sentence structure and what is part of a formula. I typically go the very textbook-y way by using something like "$f_s = 2\,\text{MHz}$ (symbol rate)" in multi-line formulas so to give a comprehensive definition of all symbols I'll use and then just use the short symbols, so that my formulas stay readable. $\endgroup$ Commented Jun 1, 2016 at 10:33
  • $\begingroup$ Thank you for your feedback. In future I will post questions with necessary formatting required. I would like to say thanks to user Gilles to help me with the formatting with my present query. $\endgroup$
    – avi1987
    Commented Jun 1, 2016 at 11:26
  • $\begingroup$ @avi1987 you're welcome. A neatly formatted question is always well received. :) $\endgroup$
    – Gilles
    Commented Jun 1, 2016 at 11:35
  • $\begingroup$ @avi1987 That is really so much nicer to read! Great job, you two! $\endgroup$ Commented Jun 1, 2016 at 11:41
  • $\begingroup$ @avi1987: Can you give more detail on what's not working, and/or provide simulation code that demonstrates your implementation? You could have an issue there. $\endgroup$
    – Jason R
    Commented Jun 1, 2016 at 14:23

1 Answer 1


The reason the OP is not getting the result expected could be that a factor of $T$ was missing, where $T$ is the loop update period (reciprocal of the update rate). When computing factors in time using seconds, the integrator coefficient should be multiplied by T in the implementation. The z transform equivalent of $1/s$ in discrete time is $z/(z-1)$ when the x axis is unit samples, but is $Tz/(z-1)$ when the x axis is actual time. Therefore in the modeling we would see the accumulator path implemented as $Kz/(z-1)$, but in the implementation we need to multiply the gain coefficient by $T$ to be $KTz/(z-1)$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.