0
$\begingroup$

I try to understand how works polyphase method in term of frequency response of partial filters.

Of course, the common is that the filters operate at low frequency, but what differency between them. How it works?

enter image description here

$\endgroup$
  • 1
    $\begingroup$ that's a really good question and one that i had thought of before but was not yet motivated to write a program to do. it's like you want a magnitude and phase delay plot for each fractional delay of the polyphase interpolation filter. both magnitude and phase delay would be 3-dimensional plots with frequency on one axis, polyphase delay on another axis, and the resulting magnitude or phase delay on the vertical axis. $\endgroup$ – robert bristow-johnson Apr 19 at 5:03
2
$\begingroup$

The short answer is the polyphase filter converts a low pass filter into a series of all pass filters each with a different time delay. So it is a series of delays at even fractions of the time between samples of the lower sampling rate of the polyphase filter. By getting an output of the same signal at different fractional delays, we can combine these to have a higher sampled version of the same signal. Polyphase means many phases, and the ideal implementation would be all-pass filters modifying the delay only- in good polyphase filter design we approach this ideal.

The longer answer is the polyphase filter is simply an array of filters formed by decimating the coefficients of a FIR filter, resulting in each filter output being identical to each other in their decimated (reduced) frequency response and each with a fractional delay of the other given the decimation relationship:

$$z^{-m}D\downarrow = z^{-m/D}$$

Meaning a delay of $m$ samples at the higher rate will be a delay of $m/D$ samples at the lower rate after decimating by D.

This turns a low pass filter that would have a passband covering the frequency range after decimation into all pass filters, each with a different delay, hence the name poly-phase meaning many phases (it is actually many delays).

Consider the following 96 tap FIR filter with coefficients generated from MATLAB/Octave:

coeff = firls(96, [0 .2 .3 1], [1 1 0 0])

Which has this frequency response:

Freq Response

The time delay in samples is given by the slope of the phase vs frequency consistent with using $z = e^{j\omega}$ for $z^{-1}$: one cycle delay will have a phase that extends negatively to $\pi$ as the normalized angular frequency extends to $\pi$. Linear phase FIR filters (such as this one) have a delay that is half the number of taps, so in this case the filter delay is 48 samples, so the linear phase slope would be given by $z^{-48} = e^{-j48\omega}$ which is consistent with the phase slope we see in this filter's passband.

If we decimate this 96 tap filter into four separate 24 tap filters, the sampling rate for each filter will be at 1/4 of the rate above. Decimation is resampling and causes all the higher frequency spectrum to fold into the new sampling rate, while maintaining the original spectrum that was at the lower rate (if that is not clear, see this post The condition in order to not loose information after upsampling and downsampling). So if we decimated the impulse response of the filter (the coefficients), the frequency response below $0.25\pi$ rad/sample will remain the same other than an amplitude scaling by 4 or -12 dB, while the response above that will fold in, distorting the primary response if we didn't reject the higher bands sufficiently. For example, here is the frequency response if we take the first sample and every 4th sample after that in our original 24 tap filter, to create a 6 tap filter:

freqz(coeff(1:4:end));

So now the filter is nearly an "all-pass" filter modifying only the phase with a delay. It is passing all signals within it's new sampling frequency that is 1/4 of the original rate, and it's delay is 12 samples instead of 96: The phase at $\omega = \pi$ would be given by the phaes of $e^{-12j\omega}$; $12\pi 180/\pi = 2160°$, consistent with the maximum phase in the plot below.

Poly1

If we select the next sample, and every 4 samples after that, we will end up with the same frequency response, since we are decimating the same filter, except the phase will be advanced by one sample at the higher sampling rate, or as we first explained $1/4$ sample at the lower output rate. Thus we would expect the phase slope to decrease to $11.75$ samples (with the associated smaller phase slope).

Superimposing all four filters given by coeff(1:4:end), coeff(2:4:end), coeff(3:4:end), and coeff(4:4:end) reveals that at least out to $0.8\pi$ radians/sample, these are now all pass structures with incrementally varying delay. The magnitude is completely flat out to $\omega = 0.8\pi$ which would be the usable range of our filter, we assume there is no signal of interest above $\omega = 0.8\pi$:

polyphase result

And the group delay (which is the negative derivative of phase with respect to frequency, and the time delay for linear phase filers) result is 12, 11.75, 11.5 and 11.25 samples:

Group Delay

The four delays are very conveniently at 1/4 samples of the higher 4x sampling rate! So each filter passes our signal within the passband with no distortion but provides 4 different outputs each at a time offset of the underlying waveform of 1/4 of a sample.

Given a signal exemplified by the sinusoid in the plot below, each color group would represent the output of one of the four polyphase filters.

Interpolation

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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