
7–20
Altera Corporation
Stratix Device Handbook, Volume 2
September 2004
Finite Impulse Response (FIR) Filters
where:
k
= 0,1, …, I-1
n
= 0,1, …, P-1
P
= L/I = length of polyphase filters
L
= length of the filter (selected to be a multiple of I)
I
= interpolation factor
h(n) = original filter impulse response
This equation implies that the first polyphase filter, h0(n), has coefficients
h(0), h(I), h(2I),..., h((P-1)I). The second polyphase filter, h1(n), has
coefficients h(1), h(1+I), h(1+2I), ..., h(1+(P-1)I). Continuing in this way,
the last polyphase filter, hI-1(n), has coefficients h(I-1), h((I - 1) + N), h((I
- 1) + 2I), ..., h((I - 1) + (P-1)I).
An example helps in understanding the polyphase implementation of
interpolation. Consider the polyphase representation of a 16-tap low pass
filter with an interpolation factor of 4. Thus, the output is given below:
the input are x(0), x(4), x(8,) and x(12). The first output, y(0), only depends
on h(0), h(4), h(8) and h(12) because x(i) is zero for i
shows the coefficients required to generate output samples.
Table 7–9 shows that this filter operation can be represented by four
parallel polyphase filters. This is shown in
Figure 7–12. The outputs from
the filters are multiplexed to generate the overall output. The multiplexer
is controlled by a counter, which counts up modulo-I starting at 0.
It is illuminating to compare the computational requirements of the direct
implementation versus polyphase implementation of the low pass filter.
In the direct implementation, the number of computations per cycle
yn
()
hn iI
–
()xi
()
i0
=
15
∑
=
Table 7–9. Decomposition of a 16-Tap Interpolating Filter into Four Polyphase Filters
Output Sample
Coefficients Required
Polyphase Filter Impulse Response
y(0), y(4)...
h(0), h(4), h(8), h(12)
h0(n)
y(1), y(5)...
h(1), h(5), h(9), h(13)
h1(n)
y(2), y(6)...
h(2), h(6), h(10), h(14)
h2(n)
y(3), y(7)...
h(3), h(7), h(11), h(15)
h3(n)