3

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

  • How should I chose the loop bandwidth and damping ratio for determining the loop filter coefficients $k_1$ and $k_2$?

In some literature they are given as $B_nT_s= 0.005$, $\zeta = \frac{1}{\sqrt 2}$, while in others it is given as $B_nT_s= 0.05$, $\zeta = 1$.

  • How should I proceed for choosing the $B_n$ and $\zeta$?

  • Should $B_nT_s$ factor change as we change $T_s$ (say from $0.1$ to $10^{-5}$ sec)?

Gilles
  • 3,386
  • 3
  • 21
  • 28
avi1987
  • 181
  • 1
  • 11
  • The optimal parameters of any control loop depend on what you're trying to control, and on the parameters of what you're using to effect the output. – Marcus Müller May 30 '16 at 07:07
  • So, without knowing a lot more on your receiver, especially what you do to estimate timing offset, and what mechanism you use to correct it, it's impossible to answer this. – Marcus Müller May 30 '16 at 07:07
  • I am using Cubic Interpolator and Gardner TED for error detection. I am considering a roll-off factor of 0.5. Basically I am trying to calculate loop filter coefficients k1 and k2. k1 depends on ζ,Bn, and kp,k0. kp and ko are the gains of TED and NCO respectively. I have calculated kp from s-curve of gardner TED. What factors should I consider for choosing Bn and zeta? Apparently, Choosing Bn = 0.05 is not working correctly for my current design (considering a very high SNR). Should I reduce the Bn more? – avi1987 May 30 '16 at 09:25

1 Answers1

3

There is an optimum loop BW that maximizes the SNR, and this applies to both Symbol Timing Recovery as you inquire about as well as Carrier Recovery. The specific answer depends on the characteristics of the noise source involved in your system, such as clock jitter and phase noise, and the modulation you are using; specifically how the signal energy is distributed in frequency. Without knowing those an exact answer cannot be determined, but I can at least share some insights from my own experience with it.

To state generally, I have found that the optimum loop BW to usually be somewhere between R/100 and R/20, where R is the symbol clock rate being recovered. I start with a value in this range and then through simulation with a valid noise and waveform model (or lab measurement) determine the actual optimum using SNR metrics vs Loop BW setting.

As for damping factor, I also start with a damping factor of 0.5 and then through evaluation using a step or impulse response test adjust for possible ringing due to parasitic delays that may be present in the loop.

In addition to the SNR considerations given above, there are also acquisition time constraints or possible dynamic noise conditions that would also motivate you to have as fast of a timing loop as possible: The faster the loop, the faster the acquisition time, and recovery time from an interference event, or the ability to track a highly dynamic change if it exists. There may also be waveform specific constraints such as the duration of a header in a packet based waveform used to establish timing. However as the BW for the tracking loops increase beyond a significant fraction of the timing symbol clock rate (such as >R/20), tracking errors will start to dominate the noise in SNR, since the loop will start to track out the modulation of interest.

To explain further from the perspective of a trade of Loop BW and SNR, the Loop BW sets the boundary at which your recovery loop will track timing noise (jitter/phase noise) in your signal. Timing noise has components at all frequencies (such as that viewed with a phase noise spectral density), and the lower frequency components of the timing noise (the change in zero crossing locations that is moving very slowly) will be tracked by the timing loop, and therefore suppressed. However the higher frequency components will not be tracked by the timing loop and therefore remain and contribute to noise as part of SNR. The timing loop can be viewed as a high pass filter on the jitter/phase noise components, passing the higher frequency components (including the modulation signals) and supressing the lower frequencies at a rate depending on the order of the loop. Thus you see the motivation to make the timing loop as fast as possible in the interest of tracking out as much timing jitter as possible. However, some of the signal energy of interest will be part of the "noise" being supressed by the timing loop; and this can be quantified by understanding the spectral characteristics of the modulation used. As the loop BW increases, too much signal energy is also removed, and thus it is clear how there can be an optimum setting for the Loop BW that maximizes SNR.

This hopefully provides insight into the approach and what to look for in the development of the system. In conclusion, I set the Loop BW as fast as possible (typically in the range of R/100 to R/20 where R is the symbol rate) while monitoring through simulation with accurate noise and waveform models the SNR metric; and either choose the point of best SNR, or if other factors such as acquisition time or more stringent dynamic conditions are involved, maximize BW without going below a target SNR metric.

Dan Boschen
  • 50,942
  • 2
  • 57
  • 135
  • Welcome to DSP.SE. Great, practical answer; thanks. – Jason R Jun 01 '16 at 02:01
  • @Dan Boschen ...Thanks for your elaborate answer. For my design I am right now considering a noise-free channel. With this consideration in mind, from simulations I found that Bn = R/200 best works for my design, but it violates one of the specifications that I have, which is acquisition range(10 % of symbol rate which is 2Mhz). How to resolve this conflict? – avi1987 Jun 03 '16 at 18:11
  • When you say your design works best with Bn=R/200 in a noise-free channel; what is it about your result that you quantify as "working best"? Acquisition Range (meaning how far off in time you can go and still pull-in to a lock) is dependent on your timing discriminator (TED). I suggest both analyzing and then evaluating (to confirm analysis) what the transfer function of your timing discriminator actually is (you can do this with open loop testing at various static timing offsets, and look at what error signal term results prior to your loop filter. – Dan Boschen Jun 06 '16 at 11:51
  • So from the other thread, what signal do you measure when considering SNR for loop bandwidth selection and how do you measure it? Each time the loop is updated the offset changes and the concept of instantaneous pulse shape doesn't make sense. – FourierFlux Mar 14 '20 at 01:46
  • 1
    Hi @FourierFlux Here when I mention SNR I am referring to the signal to noise in the waveform as measured just prior to detection. The timing loop and resampling process will modify the signal to noise ratio based on the loop bandwidth as described in this post. This SNR measurement would be done once the loop has converged as that is when we would actually be making decisions as to what data was transmitted (and the BER will be directly related to the SNR at that point in the system). Often we are trading acquisition time with this peformance metric or more optimally using dynamic loop BW. – Dan Boschen Mar 14 '20 at 01:51
  • 1
    @FourierFlux One direct measurement of SNR just prior to decision is the Error Vector Magnitude. The average vector length is the signal S and the rms error is the noise N and with such magnitude quantities the SNR is 20Log(S/N). I hope this helps answer your question. – Dan Boschen Mar 14 '20 at 01:53
  • Ok thanks, so wait until convergence the measure how well the signal matches the ideal pulse train?

    I'd like to see a more mathematical basis but anything involving PLL is exceedingly hard to analyze.

    – FourierFlux Mar 14 '20 at 02:37
  • @FourierFlux The analysis of the PLL is straightforward in terms of settling time and loop bandwidth and ultimately its system description as a filter to various noise sources. The SNR optimization I am referring to is when the loop is completely settled so the analysis at that point is the loop as a filter to the signal itself and as a filter to the self-noise of the loop and then it is a matter of balancing the trade space with other system requirements (time to lock etc). – Dan Boschen Mar 14 '20 at 02:51
  • The filter is dynamic though? I'm not sure how you would characterize it from a purely mathematical basis. IIRC there isn't even any proof it's going to converge. You can analyze TED S curve variance etc but once it passes through a filter which updates the timing position all hell breaks loose. I'm not sure settling time and loop bandwidth really mean what we think they mean as it's not directly related to the signal BW or noise the way basic analysis is. – FourierFlux Mar 14 '20 at 03:55
  • @FourierFlux i am not sure why you say that- it is a simple linear control loop if implemented properly. The TED is very linear over its operating point and as for updating timing I have used what is effectively a linear delay line so as a loop it behaves quite nicely, is quite predictable with settling time and loop bandwidth and has followed all basic loop theory (in my experience). – Dan Boschen Mar 14 '20 at 09:24
  • @FourierFlux During acquisition when time offset is beyond the linear control range of the discriminator it can be quite non-linear with cycle slips etc similar to any control loop, but once it comes into it’s acquisition window and is in tracking mode it is quite linear, well behaved and predictable as a very simple control loop if the control elements are chosen to be linear in behavior (measuring the delay error and correcting for that delay error) – Dan Boschen Mar 14 '20 at 17:46
  • The problem is the S curve of the TED only exists in a statistical sense, if you have a time offset of 4sps, the TED may only register that offset for half or less of the pulses depending upon the pulse sequence. – FourierFlux Mar 14 '20 at 17:51
  • @FourierFlux I don't see that as a problem. I have treated that as an average S-curve plus pattern noise which holds for equiprobable data distributions. From a statistical sense it is the mean curve that drives the loop parameters. I've modeled it in detail using this approach and validated actual versus predicted with excellent results. – Dan Boschen Mar 14 '20 at 20:30
  • @FourierFlux See this post which may offer further insight into what I am getting at. It shows both the (mean) discriminator slope as well as the pattern noise, most of which is entirely outside the loop bandwidth so of no consequence other than reducing SNR due to effects of finite filtering. None of this noise changes the convergence rate properties of the loop itself. https://dsp.stackexchange.com/questions/31517/location-of-matched-filter/31518#31518 – Dan Boschen Mar 14 '20 at 20:33
  • interesting idea to consider the spectrum of the TED jitter. I don't remember how to analyze control systems with a given PSD noise input. I'm still bothered by the fact that you're updating your timing location prior to the output of the filter settling but I understand the idea of the filter is to remove these noise components. – FourierFlux Mar 14 '20 at 21:11