I am trying to design the Symbol timing recovery(#STR) block of #DVBS Receiver. I have some difficulty in understanding some of the concepts of Gardner TED, the most popular method in STR. Basically the interpolator block is working at (T/4) clock period where T is the symbol rate and 4 is the Interpolation Factor.
1) The output of interpolator is given to Gardner TED which works at a clock period of T(the symbol rate). SO every 4 samples, I am calculating the TED error. That means that 4th sample is my symbol decision output. Am I right?....In some literature I found there is an extra decision block. But I dont see the use of an extra decision block to get the correct symbol.
2) My second confusion is regarding the generation of fractional interval. Since the TED producing error at every T clock period, and we need the fractional interval to be generated every T/4 clock period, there is an obvious mismatch. Where should I take care of this mismatch? Will it be in the loop filter itself...where I can use two methods, In both methods the loop filter will work at T/4 clock period. In the first the TED error generated will be constant for 4 clock cycles(1 CLOCK CYCLE= T/4). In the second , the TED error will be there for one clock period, for other 3 clock period it will remain zero and so on. So is my understanding correct? If correct, which of the two methods should I use?
On your first point, I believe the answer is yes. In the second case, I've also found the literature to be somewhat ambiguous. It seems to me that you can adjust the gain in your loop tuning to make either method. I do think that one method is right for analyzing using classical control theory, and the other isn't. You are using a 2nd order loop filter with both a proportional and integral term, right?
Have you read:
a) Interpolation in Digital Modems-Part I:Fundamentals (Gardener)
b) Interpolation in Digital Modems-Part II:Implementation and Performance (Erup, Gardener, and Harris)
When I was working on this last summer, I recall that your second issue was addressed in b), but some sample code in c) seemed to use the contrary. I'll try and come up with a better response later this week- sorry this is kinda flaky. Anyway, I hope those references help you!
Thanks for your quick response.
I am using a PI controller for the loop filter. I just skimmed though the documents mentioned in your post, specifically (b) and (c) which certainly addresses the two different methods I mentioned.
I will try to figure out what changes in the loop gains(proportional and integral) I have to make if I use either one of these.
Although I am also awaiting your response on this issue as I would want to confirm my understanding on this topic.
Thanks and regards