DSPRelated.com
Forums

Farrow resampling filter

Started by Unknown September 12, 2007
Hi all,

Do you have a general structure or a documentation how to design and
compute the filter coefficients for a Farrow interpolation resampling
filter.

It's for a Gardner synchronisation scheme...

Thanks

On Sep 12, 11:51 am, fpga.vhdl.desig...@gmail.com wrote:
> Hi all, > > Do you have a general structure or a documentation how to design and > compute the filter coefficients for a Farrow interpolation resampling > filter. > > It's for a Gardner synchronisation scheme... > > Thanks
Gardner published a two volume paper called "Interpolation in Digital Modems" in IEEE Transactions on Communications many years ago. I'd start there. John
How about this?

http://www.signumconcepts.com/IP_center/paper018.pdf

-mn
On Sep 12, 12:29 pm, "mnentwig" <mnent...@elisanet.fi> wrote:
> How about this? > > http://www.signumconcepts.com/IP_center/paper018.pdf > > -mn
It's ironic how the author misspelled the name of the inventor who inspired the entire paper [1]. [1] C. W. Barrow, "A continuously variable digital delay element," ICAS-88.
julius wrote:
..
> It's ironic how the author misspelled the name of the > inventor who inspired the entire paper [1]. > > [1] C. W. Barrow, "A continuously variable digital delay > element," ICAS-88. >
Far from being the only typo in that paper! Richard Dobson
julius <juli...@gmail.com> wrote:
> On Sep 12, 12:29 pm, "mnentwig" <mnent...@elisanet.fi> wrote: > > > How about this? > > >http://www.signumconcepts.com/IP_center/paper018.pdf > > > -mn > > It's ironic how the author misspelled the name of the > inventor who inspired the entire paper [1]. > > [1] C. W. Barrow, "A continuously variable digital delay > element," ICAS-88.
That's odd. Here on comp.dsp, everybody talks about the Farrow filter. In the title, the author also calls it the Farrow filter, and in the reference it is attributed to Barrow. That seems to be strange misspelling ...
Andor wrote:
> julius <juli...@gmail.com> wrote: >> On Sep 12, 12:29 pm, "mnentwig" <mnent...@elisanet.fi> wrote: >> >>> How about this? >>> http://www.signumconcepts.com/IP_center/paper018.pdf >>> -mn >> It's ironic how the author misspelled the name of the >> inventor who inspired the entire paper [1]. >> >> [1] C. W. Barrow, "A continuously variable digital delay >> element," ICAS-88. > > That's odd. Here on comp.dsp, everybody talks about the Farrow filter. > In the title, the author also calls it the Farrow filter, and in the > reference it is attributed to Barrow. That seems to be strange > misspelling ... >
Yes, Barrow is a wheely odd spelling spelling for Farrow. He made a bit of a pig's litter of his spelling. Steve
I don't understand how the Interpolator Farrow filter works with
Gardner synchronizer loop.

First, I have a fixed sampling rate, then the Farrow filter, then the
second sampler, then the TED, Loop filter, NCO and the ouput of the
NCO is sent to the second sampler.

The TED, loop filter and NCO tends to acquire the symbol frequency.
And the Farrow filter allows to sampling to the correct timing with
interpolation.

What is the signal u that control the delay in the Farrow filter ?
This u signal shoud be beetwen 0 and 1 with my first order linear
Farrow interpolator : y^(n-u)=y(n)+u[y(n-1)-y(n)]

Where can I found a genreral scheme of this Gardner loop with the
Farrow filter ?

Thanks.


fpga.vhdl.designer@gmail.com wrote:
> I don't understand how the Interpolator Farrow filter works with > Gardner synchronizer loop.
The Gardner algorithm is only a timing error *detector*. You need to combine it with something like the analogue tuning of an ADC's timing, or a digital variable delay filter to form a synchroniser loop. The Farrow structure is a popular way to realise that variable delay. Others exist.
> First, I have a fixed sampling rate, then the Farrow filter, then the > second sampler, then the TED, Loop filter, NCO and the ouput of the > NCO is sent to the second sampler.
You have a loop filter filter in this signal chain, but you haven't identified a loop that it is filtering.
> The TED, loop filter and NCO tends to acquire the symbol frequency. > And the Farrow filter allows to sampling to the correct timing with > interpolation.
The symbol frequency usually varies over a very narrow band. Your focus has to be on the *phase* rather than the frequency of the symbols. You need to home in your sampling, so you are hitting the middle of the symbols (and possibly the edges or other well defined points, if your next stage works at say T/2 or T/3). The continuous tracking of this phase will deal with any minor difference between your notion of symbol frequency, and the sender's.
> What is the signal u that control the delay in the Farrow filter ? > This u signal shoud be beetwen 0 and 1 with my first order linear > Farrow interpolator : y^(n-u)=y(n)+u[y(n-1)-y(n)]
The direction of error comes from that expression. You use this to nudge the delay produced by the Farrow filter, such that the error from the Gardner expression tends to zero. That is the control loop.
> Where can I found a genreral scheme of this Gardner loop with the > Farrow filter ?
Gardner himself wrote good material on this topic. You can find it on the IEEE web site. Steve
fpga.vhdl.designer@gmail.com wrote:
> I don't understand how the Interpolator Farrow filter works with > Gardner synchronizer loop. > > First, I have a fixed sampling rate, then the Farrow filter, then the > second sampler, then the TED, Loop filter, NCO and the ouput of the > NCO is sent to the second sampler. > > The TED, loop filter and NCO tends to acquire the symbol frequency. > And the Farrow filter allows to sampling to the correct timing with > interpolation. > > What is the signal u that control the delay in the Farrow filter ? > This u signal shoud be beetwen 0 and 1 with my first order linear > Farrow interpolator : y^(n-u)=y(n)+u[y(n-1)-y(n)] > > Where can I found a genreral scheme of this Gardner loop with the > Farrow filter ? > > Thanks. > >
Think of the NCO as a non-saturating down counter. Before you decrement the NCO, test if it will wrap around zero if decremented (current NCO < decrement). If a wrap will occur, then it's time to generate an output. The fraction u is the current NCO value (before decrement) divided by the decrement value. John