I need to design a 3/2 resampling filter using polyphasic filters. On my original filter I have coefficients $$h[n] = [a_0, a_1, a_2, a_3, a_4, a_5, a_6, a_7, a_8, a_9, a_{10}, a_{11}]$$ making it an order $12$ filter.

I visualize this implementation:

enter image description here

So I am taking as downsampling subfilters of type 1 the coefficients:

\begin{align} h_0[n] &= [h_0, h_2, h_4, h_6, h_8, h_{10}]\\ h_1[n] &= [h_1, h_3, h_5, h_7, h_9, h_{11}] \end{align}

And further dividing each subfilter into three subfilters for an interpolator of type 2.

\begin{align} h_{00}[n] &= [h_0, h_2]\\ h_{01}[n] &= [h_4, h_6]\\ h_{02}[n] &= [h_8, h_{10}]\\\ h_{10}[n] &= [h_1, h_3]\\ h_{11}[n] &= [h_5, h_7]\\ h_{12}[n] &= [h_9, h_{11}] \end{align}

In the image $E_{00} = h_{00}$ and so on...

Is this implementation correct?


1 Answer 1


The implementation shown by the OP is down-sampling prior to filtering so will suffer from alias distortion in that down-sampling process (or noise floor degradation if the only signal in the alias regions is noise). For general resampling we interpolate by doing a zero insert followed by filtering (so filtering after upsampling) and decimate by first using an anti-alias filter and then down-sampling (so filtering prior to downsampling). Thus the general order for rational resampling is to upsample - filter - downsample. This way we can share the filter for both the interpolation and decimation process.

This is the same methodology for polyphase resampling. For interpolation we simply make use of those zero-inserts to efficiently create the polyphase structure. The polyphase interpolator for interpolate by 3 would look like the form in the graphic below:

interpolate by 3

Since this is equivalent to a zero insert upsample followed by a filter, we can simply downsample the output of this by two to get to the final rate and achieve our desired upsample-filter-downsample process. Note downsampling by two means selecting every other sample, which in this case is simply running the commutator backwards at the final output rate!

interp by 3 decimate by 2

The 12 coefficients map to each filter in "row to column" form. So each of the three filters is 4 taps, and the first filter has coefficients $a_0, a_3, a_6, a_9$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.