From: kobem on 21 Jun 2010 12:58 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 21 Jun 2010 13:29 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 21 Jun 2010 16:46 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 27 Jun 2010 09:37 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 28 Jun 2010 23:39 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
|
Next
|
Last
Pages: 1 2 Prev: Suggestion for a fast (and thread-safe) java FFT library Next: Inverse of bispectrum? |