From: kobem on
hi,

Can someone explain how I can compensate for sampling clock frequency
offset (SCO) using fractional-delay interpolation? In OFDM basebnad
receiver design book they said that you can use fractional-delay
interpolation filter to compensate SCO but of course they forgot to write
about.

Let's say I have a ramp signal (it will be easier for me to explain what my
doubts are as it has amplitude equal to the time progress).

The ideal sampling case (sampling period at receiver = Tideal where
Tideal=Ttransmitter):
T= [1 2 3 4 5 6 7 8]
Sample_value= [1 2 3 4 5 6 7 8]

Now I have an offset Toff (let's say 0.2*Tideal) so I sample with the
period T=Tideal+Toff=1.2Tideal
T= [1 2 3 4 5 6 7 8 ...]
sample_value =[1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...]

When I use farrow fractional-delay filter it will interpolate at fixed
offset but for correction purposes the offset changes from sample to sample
because sampling periods are not equal (the fist sample is correct but the
rest are not because for the 2nd sample the offset should 0.4 not 0.2 and
so on).
Let's say I use 0.2 fractional delay:
T= [1 2 3 4 5 6 7 8 ...]

samples_values=[1 2.2 3.4 4.6 5.8 7 8.2 9.4]


How can I resample the received sampled data (sampled with period
T=Tideal+0.2Tideal) [1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...] with the sample
period Tideal so I get the desired data [1 2 3 4 5 6 7 8] using
interpolation?


From: Tim Wescott on
On 06/21/2010 09:58 AM, kobem wrote:
> hi,
>
> Can someone explain how I can compensate for sampling clock frequency
> offset (SCO) using fractional-delay interpolation? In OFDM basebnad
> receiver design book they said that you can use fractional-delay
> interpolation filter to compensate SCO but of course they forgot to write
> about.
>
> Let's say I have a ramp signal (it will be easier for me to explain what my
> doubts are as it has amplitude equal to the time progress).
>
> The ideal sampling case (sampling period at receiver = Tideal where
> Tideal=Ttransmitter):
> T= [1 2 3 4 5 6 7 8]
> Sample_value= [1 2 3 4 5 6 7 8]
>
> Now I have an offset Toff (let's say 0.2*Tideal) so I sample with the
> period T=Tideal+Toff=1.2Tideal
> T= [1 2 3 4 5 6 7 8 ...]
> sample_value =[1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...]
>
> When I use farrow fractional-delay filter it will interpolate at fixed
> offset but for correction purposes the offset changes from sample to sample
> because sampling periods are not equal (the fist sample is correct but the
> rest are not because for the 2nd sample the offset should 0.4 not 0.2 and
> so on).
> Let's say I use 0.2 fractional delay:
> T= [1 2 3 4 5 6 7 8 ...]
>
> samples_values=[1 2.2 3.4 4.6 5.8 7 8.2 9.4]
>
>
> How can I resample the received sampled data (sampled with period
> T=Tideal+0.2Tideal) [1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...] with the sample
> period Tideal so I get the desired data [1 2 3 4 5 6 7 8] using
> interpolation?

Try searching on "poly-phase filtering". This should answer most of
your questions, and may answer all.

The basic answer is that you change the reference phase of your
resampling at each instant. This is obvious if you're just doing simple
interpolation; polyphase filtering is just an extension of that which is
more robust for the situation where the sampled data consumes much of
the useful bandwidth of the data stream.

What most basic works on poly phase filtering probably _won't_ answer is
how you phase-lock your two references, and how you deal with
dynamically changing the skew between the sampling rates -- for that you
probably have to get a good deep understanding of polyphase filtering,
then cook up the rest of the math yourself.

At a glance, this seems to be informative:
http://en.wikipedia.org/wiki/Sample_rate_conversion. I just skimmed it,
but I can practically guarantee you it won't tell you how to phase lock
or deal with varying sample rates.

See also: http://www.mega-nerd.com/SRC/. If nothing else it's sample
source. Eric posts here occasionally, and may say something on the
subject if he feels his ears burning.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: Eric Jacobsen on
On Mon, 21 Jun 2010 11:58:33 -0500, "kobem"
<litwinm(a)n_o_s_p_a_m.gmail.com> wrote:

>hi,
>
>Can someone explain how I can compensate for sampling clock frequency
>offset (SCO) using fractional-delay interpolation? In OFDM basebnad
>receiver design book they said that you can use fractional-delay
>interpolation filter to compensate SCO but of course they forgot to write
>about.
>
>Let's say I have a ramp signal (it will be easier for me to explain what my
>doubts are as it has amplitude equal to the time progress).
>
>The ideal sampling case (sampling period at receiver = Tideal where
>Tideal=Ttransmitter):
>T= [1 2 3 4 5 6 7 8]
>Sample_value= [1 2 3 4 5 6 7 8]
>
>Now I have an offset Toff (let's say 0.2*Tideal) so I sample with the
>period T=Tideal+Toff=1.2Tideal
>T= [1 2 3 4 5 6 7 8 ...]
>sample_value =[1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...]
>
>When I use farrow fractional-delay filter it will interpolate at fixed
>offset but for correction purposes the offset changes from sample to sample
>because sampling periods are not equal (the fist sample is correct but the
>rest are not because for the 2nd sample the offset should 0.4 not 0.2 and
>so on).
>Let's say I use 0.2 fractional delay:
>T= [1 2 3 4 5 6 7 8 ...]
>
>samples_values=[1 2.2 3.4 4.6 5.8 7 8.2 9.4]
>
>
>How can I resample the received sampled data (sampled with period
>T=Tideal+0.2Tideal) [1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...] with the sample
>period Tideal so I get the desired data [1 2 3 4 5 6 7 8] using
>interpolation?

As Tim suggested, look at "polyphase" filters and how they're used
inside of a timing loop. FWIW, this is arguably the same thing as
using a Farrow filter with selectable coefficients. In other words,
a feedback loop picks the coefficient set to be used at any instant.


From: xsong on
In real OFDM system, the SCO is typically very small (e.g., WiMAX 16d
the standard specifies that the SCO should be less than 16ppm).
Therefore, I believe in real system, they do not implement the complex
interpolation/decimation for simplicity. Actually, once you can have
the SCO estimated, you can always discard(insert) one sample every N
samples in time domain. However, the real harm is in frequency domain
as the SCO will introduce the frequency offset and this will cause the
ICI which is critical for OFDM systems. The way to estimate this is
typically by the use of the pilot signal in OFDM system in frequency
domain. You can correlate the same pilot signal in two or more
consecutive OFDM symbols to estimate the value.



On Jun 21, 12:58 pm, "kobem" <litwinm(a)n_o_s_p_a_m.gmail.com> wrote:
> hi,
>
> Can someone explain how I can compensate for sampling clock frequency
> offset (SCO) using fractional-delay interpolation? In OFDM basebnad
> receiver design book they said that you can use fractional-delay
> interpolation filter to compensate SCO but of course they forgot to write
> about.
>
> Let's say I have a ramp signal (it will be easier for me to explain what my
> doubts are as it has amplitude equal to the time progress).
>
> The ideal sampling case (sampling period at receiver = Tideal where
> Tideal=Ttransmitter):
> T= [1 2 3 4 5 6 7 8]
> Sample_value= [1 2 3 4 5 6 7 8]
>
> Now I have an offset Toff (let's say 0.2*Tideal) so I sample with the
> period T=Tideal+Toff=1.2Tideal
> T= [1 2 3 4 5 6 7 8 ...]
> sample_value =[1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...]
>
> When I use farrow fractional-delay filter it will interpolate at fixed
> offset but for correction purposes the offset changes from sample to sample
> because sampling periods are not equal (the fist sample is correct but the
> rest are not because for the 2nd sample the offset should 0.4 not 0.2 and
> so on).
> Let's say I use 0.2 fractional delay:
> T= [1 2 3 4 5 6 7 8 ...]
>
> samples_values=[1 2.2 3.4 4.6 5.8 7 8.2 9.4]
>
> How can I resample the received sampled data (sampled with period
> T=Tideal+0.2Tideal) [1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 ...] with the sample
> period Tideal so I get the desired data [1 2 3 4 5 6 7 8] using
> interpolation?

From: robert bristow-johnson on
On Jun 21, 4:46 pm, eric.jacob...(a)ieee.org (Eric Jacobsen) wrote:

> As Tim suggested, look at "polyphase" filters and how they're used
> inside of a timing loop.   FWIW, this is arguably the same thing as
> using a Farrow filter with selectable coefficients.   In other words,
> a feedback loop picks the coefficient set to be used at any instant.

a "feedback loop" picks coefficient?

is there something in the semantic that i am missing?

r b-j