Connexions

You are here: Home » Content » Computational Savings of Polyphase Interpolation/Decimation
Content Actions

Computational Savings of Polyphase Interpolation/Decimation

Module by: Phil Schniter

Computational Savings of Polyphase Interpolation/Decimation

Assume that we design FIR LPF Hz H z with NN taps, requiring NN multiplies per output. For standard decimation by factor MM, we have NN multiplies per intermediate sample and MM intermediate samples per output, giving NM N M multiplies per output.
For polyphase decimation, we have NM N M multiplies per branch and MM branches, giving a total of NN multiplies per output. The assumption of NM N M multiplies per branch follows from the fact that hn h n is downsampled by MM to create each polyphase filter. Thus, we conclude that the standard implementation requires MM times as many operations as its polyphase counterpart. (For decimation, we count multiples per output, rather than per input, to avoid confusion, since only every MthMth input produces an output.)
From this result, it appears that the number of multiplications required by polyphase decimation is independent of the decimation rate MM. However, it should be remembered that the length NN of the πM M -lowpass FIR filter Hz H z will typically be proportional to MM. This is suggested, e.g., by the Kaiser FIR-length approximation formula N-10log10 δ p δ s -132.324Δω N -10 10 δ p δ s 13 2.324 Δ ω where Δω Δ ω in the transition bandwidth in radians, and δ p δ p and δ s δ s are the passband and stopband ripple levels. Recall that, to preserve a fixed signal bandwidth, the transition bandwidth Δω Δ ω will be linearly proportional to the cutoff πMM, so that NN will be linearly proportional to MM. In summary, polyphase decimation by factor MM requires NN multiplies per output, where NN is the filter length, and where NN is linearly proportional to MM.
Using similar arguments for polyphase interpolation, we could find essentially the same result. Polyphase interpolation by factor LL requires NN multiplies per input, where NN is the filter length, and where NN is linearly proportional to the interpolation factor LL. (For interpolation we count multiplies per input, rather than per output, to avoid confusion, since MM outputs are generated in parallel.)

Comments, questions, feedback, criticisms?

Send feedback