#include <farrow.h>
Collaboration diagram for SPUC::farrow< Numeric >:

Public Member Functions | |
| Numeric | out () |
| Get current output. | |
| Numeric | check (long i) |
| Clock in new sample & compute current output. | |
| farrow (char order) | |
| Need to cover different orders! | |
| void | reset (void) |
| reset | |
| ~farrow (void) | |
| void | input (Numeric in) |
| Only input new sample. | |
| Numeric | update (Numeric in, double offset) |
| Numeric | fir (double offset) |
| Calculate output for current coefficients. Offset is between 0 and 1. | |
| Numeric | rephase (double offset) |
| Rephase => recalculate coefficients and output for new offset (for upsampling). | |
| void | calculate_coeff2 (void) |
| Calculate coefficients for linear (not tested). | |
| void | calculate_coeff3 (void) |
| Calculate coefficients for square. | |
| void | calculate_coeff3a (void) |
| Calculate coefficients for parabolic. | |
| void | calculate_coeff4 (void) |
| Calculate coefficients for 4th order. | |
Public Attributes | |
| long | num_taps |
| Numeric * | coeff |
Protected Attributes | |
| Numeric * | z |
| Numeric | output |
: Farrow implementation of a polynomial interpolation This covers 3 (orders) cases of interpolation 1. Linear (not efficient using this method) 2. Piecewise-Parabolic 3. Cubic Although derived from the Lagrange coefficients the multiplication factor have been simplified to allow simple VLSI implementations. see Interpolation in Digital Modem - Part II, IEEE Trans. on Comms. June 1993.
|
||||||||||
|
Need to cover different orders!
|
|
||||||||||
|
|
|
||||||||||
|
Calculate coefficients for linear (not tested). Calculate coefficients |
|
||||||||||
|
Calculate coefficients for square. Calculate coefficients |
|
||||||||||
|
Calculate coefficients for parabolic. Calculate coefficients |
|
||||||||||
|
Calculate coefficients for 4th order.
|
|
||||||||||
|
Clock in new sample & compute current output.
|
|
||||||||||
|
Calculate output for current coefficients. Offset is between 0 and 1. Perform FIR |
|
||||||||||
|
Only input new sample. Update history of inputs Add new input |
|
|||||||||
|
Get current output.
|
|
||||||||||
|
Rephase => recalculate coefficients and output for new offset (for upsampling).
Here is the call graph for this function: ![]() |
|
||||||||||
|
reset
|
|
||||||||||||||||
|
: Update => Clock in new input sample, recalculate coefficients and determine output Update history of inputs Add new input Calculate coefficients Perform FIR Here is the call graph for this function: ![]() |
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
1.4.4