Hello,
There's now a short entry in my blog on dsprelated.com about basic
polyphase / Farrows.
Not sure, whether it tells anything new, though. But there are a couple of
pictures that I couldn't easily post here.
Cheers
Markus
link: http://www.dsprelated.com/showarticle/22.php

Reply by ●September 18, 20072007-09-18

and when I'm in QPSK, the Gardner loop recover the symbol clock (2
MHz), but how to have the bit clock (4 MHz) (which is twice the symbol
frequency)
Do I need to have my NCO at 4 MHz and then "downconvert" to 2 MHz ?
thanks

Reply by ●September 18, 20072007-09-18

Hi
when I said "but if the two samples are 0.75 and 0.75 the
interpolation give 0.75
(bad the good interpolation is 1.0)"
yes the linear interpolation gives 0.75 but the "real" interpolation
should give 1.0
that's all...
I'm going to buy the two Farrow's papers..
Thanks

Reply by mnentwig●September 17, 20072007-09-17

Let me try to summarize Farrow's idea in three bullet points:
The numbers are from the reference.
* I can use a FIR filter to interpolate one particular point between
samples, for example at an offset of 1/32 sample time
* I keep 32 different banks of FIR coefficients at hand, so that I can
choose between interpolating at for example 0/32, 1/32, 2/32... 31/32
delay. That's a "polyphase" filter.
* I may still need a higher timing resolution. Instead of decreasing the
step size (and using more polyphase filter "banks") I calculate each FIR
coefficient through a polynomial (for example 4th order) with the delay
0..1 as variable.
Hope this is useful...
Now some wild speculation:
Your numbers (interpolation between 1/2 and 1/2 gives 1) might be correct
with regard to the first bullet point. But usually one uses a much longer
FIR filter to interpolate, not linear interpolation (which boils down to
two-tap FIR).
-mn

Reply by panabiker●September 17, 20072007-09-17

On Sep 17, 12:10 pm, fpga.vhdl.desig...@gmail.com wrote:

> Hi,

....

> but iof the two samples are 0.75 and 0.75 the interpolation give 0.75
> (bad the good interpolation is 1.0)
>

If you do linear interpolation, 0.75 is the right answer. Linear
interpolation is simply
y = (1-a) * x1 + a * x2, where a = 0.5 in your case. What makes you
think it should be 1.0
Depending on accuracy and bandwidth requirement, 3rd and 4th orders
are commonly used in Farrow interpolator. If the bandwidth is small
relative to fs, then 2nd order may be sufficient.

On Sep 17, 12:10 pm, fpga.vhdl.desig...@gmail.com wrote:

> Hi,
>
> I've designed a QPSK bit synchro with Gardner algorithm working with
> two sample by symbol
>
> I've got a Farrow interpolation filter with simple linear
> interpolation
>
> If the two input sample of the Farrow filter are 0.5 then 1.0, the
> interpolation give 0.75 (good)
> but iof the two samples are 0.75 and 0.75 the interpolation give 0.75
> (bad the good interpolation is 1.0)
>
> so I think I need an order better like two or three order
>
> Is there good paper about this and how to do this interpolation (with
> several FIR filters ?)
>
> Thanks

I would refer you again to the original work that F. Gardner did on
this topic. He discusses the pros and cons of the various
interpolation schemes in the second volume of his paper. This paper is
not free but is worth the cost, IMO.
John

Reply by ●September 17, 20072007-09-17

Hi,
I've designed a QPSK bit synchro with Gardner algorithm working with
two sample by symbol
I've got a Farrow interpolation filter with simple linear
interpolation
If the two input sample of the Farrow filter are 0.5 then 1.0, the
interpolation give 0.75 (good)
but iof the two samples are 0.75 and 0.75 the interpolation give 0.75
(bad the good interpolation is 1.0)
so I think I need an order better like two or three order
Is there good paper about this and how to do this interpolation (with
several FIR filters ?)
Thanks