The setting of Farrow depends on the polynomial it supports. Let us take an example of using cubic Lagrange for fractional interpolation. The output y[n] can be written as combination of input x[n] as:
y[n]=C−2x[n−2]+C−1x[n−1]+C0x[n]+C1x[n+1]
Assuming fractional delay is τ, using Lagrange formula, C−2 equals to the division of (−τ−(−1))(−τ)(−τ−1) by (−2−(−1))(−2)(−2−1). Thus,
C−2=τ36−τ6
Extend the same formula to other coefficients, we have
C−1=−τ32+τ22+τ
C0=τ32−τ2−τ2+1
C1=−τ36+τ22−τ3
Rewriting the y[n] equation, we have
y[n]=16[(x[n−2]−3x[n−1]+3x[n]−x[n+1])τ3+(3x[n−1]−6x[n]+3x[n+1])τ2+(−x[n−2]+6x[n−1]−3x[n]−2x[n+1])τ+6x[n]]
Corresponding Farrow structure is shown below. It only needs three multipliers and τ is input to all multipliers. This simplifies the hardware design. When polynomial is different, the coefficients of FIR filter change accordingly. We should also note that due to the difference between input and output rates, one input sample not necessarily generates one output sample. A control logic is needed to dictate when to generate outputs.