DSPRelated.com
Forums

Encounter a difficult timing recovery problem

Started by clari January 14, 2008
Hi, everyone. This is my first post, although I am a long-time lurker to
this forum. Hope to get help or suggestions for a recent problem I am
facing. 

I need to design the timing recovery method in the receiver. This
universal receiver is expected to handle a number of different data rate.
One of the data rate is 85kHz according to the spec. The ADC sampling
clock is decided as 1.3MHz beforehand as it is suitable for other data
rates. However, 1.3MHz seems not a good choice for data rate 85kHz as it
is not an integer multiples of 85kHz. To make things more complicated, the
receiver must tolerate 5% fluctuation in the data rate in the real
application environment. It means the real data rate may not be exact
85kHz, instead, a little above or below 85kHz. So how to proceed now?
There is no way to change the 1.3MHz main clock at current stage.

In my previous work experience, I only handled the timing recovery in
which the AD sampling rate is integer multiples of the symbol rate.
Normally I use a timing tracking loop. However, this time the situation
seems much different. 

Anyone has faced similar problems before? pls help! Thanks in advance!



clari wrote:
> > I need to design the timing recovery method in the receiver. This > universal receiver is expected to handle a number of different data rate. > One of the data rate is 85kHz according to the spec. The ADC sampling > clock is decided as 1.3MHz beforehand as it is suitable for other data > rates. However, 1.3MHz seems not a good choice for data rate 85kHz as it > is not an integer multiples of 85kHz. To make things more complicated, the > receiver must tolerate 5% fluctuation in the data rate in the real > application environment. It means the real data rate may not be exact > 85kHz, instead, a little above or below 85kHz. So how to proceed now? > There is no way to change the 1.3MHz main clock at current stage. > > In my previous work experience, I only handled the timing recovery in > which the AD sampling rate is integer multiples of the symbol rate. > Normally I use a timing tracking loop. However, this time the situation > seems much different. > > Anyone has faced similar problems before? pls help! Thanks in advance!
If your signal constellation is simple (like, say, MSK or QPSK), you can generate the symbol clock by NCO and just take the ADC sample which is the nearest to the exact position. In more complex cases, you have to resample the incoming sample rate to whatever output rate by interpolation. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Try googling "polyphase resampler" or "farrow filter". This is what I use to
handle non-integer sample rate conversions.

-Clark

"clari" <iamzhizhi@yahoo.com> wrote in message
news:SJWdnaAMpJEwXBbanZ2dnUVZ_tajnZ2d@giganews.com...
> Hi, everyone. This is my first post, although I am a long-time lurker to > this forum. Hope to get help or suggestions for a recent problem I am > facing. > > I need to design the timing recovery method in the receiver. This > universal receiver is expected to handle a number of different data rate. > One of the data rate is 85kHz according to the spec. The ADC sampling > clock is decided as 1.3MHz beforehand as it is suitable for other data > rates. However, 1.3MHz seems not a good choice for data rate 85kHz as it > is not an integer multiples of 85kHz. To make things more complicated, the > receiver must tolerate 5% fluctuation in the data rate in the real > application environment. It means the real data rate may not be exact > 85kHz, instead, a little above or below 85kHz. So how to proceed now? > There is no way to change the 1.3MHz main clock at current stage. > > In my previous work experience, I only handled the timing recovery in > which the AD sampling rate is integer multiples of the symbol rate. > Normally I use a timing tracking loop. However, this time the situation > seems much different. > > Anyone has faced similar problems before? pls help! Thanks in advance! > >

cpope wrote:

> Try googling "polyphase resampler" or "farrow filter". This is what I use to > handle non-integer sample rate conversions.
I can hear the buzzword "Farrow structure" quite often, but in most references they mean just a old simple interpolation using a polynomial. What is the exact definition of the "Farrow structure" and what is special about it compared to a generic polynomial interpolation? Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
clari wrote:
> Hi, everyone. This is my first post, although I am a long-time lurker to > this forum. Hope to get help or suggestions for a recent problem I am > facing. > > I need to design the timing recovery method in the receiver. This > universal receiver is expected to handle a number of different data rate. > One of the data rate is 85kHz according to the spec. The ADC sampling > clock is decided as 1.3MHz beforehand as it is suitable for other data > rates. However, 1.3MHz seems not a good choice for data rate 85kHz as it > is not an integer multiples of 85kHz. To make things more complicated, the > receiver must tolerate 5% fluctuation in the data rate in the real > application environment. It means the real data rate may not be exact > 85kHz, instead, a little above or below 85kHz. So how to proceed now? > There is no way to change the 1.3MHz main clock at current stage. > > In my previous work experience, I only handled the timing recovery in > which the AD sampling rate is integer multiples of the symbol rate. > Normally I use a timing tracking loop. However, this time the situation > seems much different. > > Anyone has faced similar problems before? pls help! Thanks in advance!
Just about everyone. In real life, clock rates aren't exact, and the receiver needs to adapt to the transmitter one way or another. Any proposed method that depends on exact synchronizarion without adapting must inevitably fail. When you were a kid, did your mother teach you to say pls, or please? Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
I am very thankful to all the replies. 

Jerry, I would like to apologize for not using "Please" in my post. I
won't forget to use it next time.  

Clark, thanks for your tips. I am studying "polyphase resampler" now, and
it seems a promising solution. 

Vladimir, I've also heard of "Farrow structure" many times, but I never
really studied it. Maybe it is time to take it seriously.

-clari
I've gone through the polyphase resampler and basically understood the
theory. But soon I find a problem that the rate change factor in my case
is 427/130000, where 427=7*61 and 61 is a prime number. The interpolation
filter for rate increase of 61 is difficult to design, isn't it? Any
advice are welcome, please!
clari wrote:
> I've gone through the polyphase resampler and basically understood the > theory. But soon I find a problem that the rate change factor in my case > is 427/130000, where 427=7*61 and 61 is a prime number. The interpolation > filter for rate increase of 61 is difficult to design, isn't it? Any > advice are welcome, please!
Does it need to be 130000? Think how much easier the problem would become if it could be 129991. That's different by about 70 ppm. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On Jan 14, 4:13 pm, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
> cpope wrote: > > Try googling "polyphase resampler" or "farrow filter". This is what I use to > > handle non-integer sample rate conversions. > > I can hear the buzzword "Farrow structure" quite often, but in most > references they mean just a old simple interpolation using a polynomial. > > What is the exact definition of the "Farrow structure" and what is > special about it compared to a generic polynomial interpolation? > > Vladimir Vassilevsky > DSP and Mixed Signal Design Consultanthttp://www.abvolt.com
The Farrow structure is a Taylor series implementation of a polynomial interpolator. Harris has a paper discussing the derivation and implementation: http://www.signumconcepts.com/IP_center/paper018.pdf Try Figure 12. Dale B. Dalrymple http://dbdimages.com http://stores.lulu.com/dbd
On Jan 16, 1:24 am, dbd <d...@ieee.org> wrote:
> > The Farrow structure is a Taylor series implementation of a polynomial > interpolator. Harris has a paper discussing the derivation and > implementation: > > http://www.signumconcepts.com/IP_center/paper018.pdf > > Try Figure 12. > > Dale B. Dalrymplehttp://dbdimages.comhttp://stores.lulu.com/dbd
I think fred harris had mistyped Farrow's name in reference [1]. Now there's a real risk of the Farrow filter being known as the Barrow filter instead! Yikes! Julius