Skip to content Skip to navigation

Connexions

You are here: Home » Content » Polyphase Resampling with a Rational Factor

Navigation

Content Actions

Polyphase Resampling with a Rational Factor

Module by: Phil Schniter

Summary: Introduction to the concept of Polyphase Resampling.

Polyphase Resampling with a Rational Factor

Recall that resampling by rational rate LM LM can be accomplished through the following three-stage process(see Figure 1).

Figure 1
Figure 1 (m10443fig1.png)

If we implemented the upsampler/LPF pair with a polyphase filterbank, we would still waste computations due to eventual downsampling by M M. Alternatively, if we implemented the LPF/downsampler pair with a polyphase filterbank, we would waste computations by feeding it the (mostly-zeros) upsampler output. Thus, we need to examine this problem in more detail.

Assume for the moment that we implemented the upsampler/LPF pair with a polyphase filterbank, giving the architecture in Figure 2.

Figure 2
Figure 2 (m10443fig2.png)

Keeping the "parallel-to-serial" interpretation of the upsampler/delay ladder in mind, the input sequence to the decimator ql ql has the form as in Figure 3

Figure 3
Figure 3 (m10443fig2andahalf.png)

leading to the observation that ql= v l L lL q l v l L l L

ym=qmM= v m M L mML=k h m M L kxmML-k y m q m M v m M L m M L k k h m M L k x m M L k (1)

Thus, to calculate the resampled output at output index mm, we should calculate only the output of branch number mMmodL m M L at input index mMLm ML. No other branch outputs are calculated, so that no computations are wasted. The resulting structure is depicted in Figure 4.

Figure 4:
Figure 4 (m10443fig3.png)

An equally-efficient structure could be obtained if we implemented the LPF/downsampler using the MM-branch polyphase decimator which was fed with the proper sequence of input samples. However, this structure is not as elegant: rather than computing the output of one particular polyphase branch per output sample, we would need to add all branch outputs, but where each branch output was calculated using a particular subset of polyphase taps.

Comments, questions, feedback, criticisms?

Send feedback