MIME-Version: 1.0 Content-Location: file:///C:/F93592C5/polyphase.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii"
Polyphase Representation of
Downsampled Sequences
The standard expression for the fourier transform of of a sequence is
X(w) =3D= Sx(n)e-jwn
Since n integrates out of the expression, this is a function of w (omega), the frequency. When we downs= ample a sequence, we first set to 0 all of the odd numbered elements:
Xfe(n) =3D …, 0, x(-2), 0, x(0), 0, x(2), 0, … (fe stands for "full even")
We can do this by adding 2 sequences together and dividing the sum by 2:=
x (the original sequence) and x (with the odd element negated)
(…, x(-1), x(0), x(1), x(2),… + …, -x(-1), x(0), -x(1), x(2), …)/2
or
[x(n) + x(n)*(-1)n]/2 =3D Xfe(n)
Clearly (hopefully), with the odd elements negated in one and not negate= d in the other, these elements become 0 in the sum. Note: the addition of 2 sequences is not usually defined in math and engineering books. It is assum= ed that everybody understands that x(n) + y(n) =3D z(n), e.g. x(1) + y(1) =3D = z(1), with z(n) being the resultant "summed" sequence. It is an element= by element sum or "inner sum".
Since (-1)n =3D e-j(p)n we can incorporate the negation in the f= ourier transform of the second sequence. Taking the fourier transform of the sum of both sequences we have:
Xfe(w) =3D=
(1/2)[S<=
/span>x(n)e-jwn +
Xfe(w) =3D=
(1/2)[S<=
/span>x(n)e-jwn +
Xfe(w) =3D (1/2)[X(w) + X(w-= p)]
In a similar way we can create the expression for Xfo(n), the "full odd" sequence by subtracting the second sequence:
Xfo(w) =3D=
(1/2)[S<=
/span>x(n)e-jwn -
Xfo(w) =3D=
(1/2)[S<=
/span>x(n)e-jwn -
Xfo(w) =3D (1/2)[X(w) - X(w-= p)]
Obviously (hopefully),
X(w) =3D Xfe(w) + <= span style=3D'font-size:13.5pt'>Xfo(w)
Converting to the z domain in easy (hopefully), using the following formulas:
ejw ó z
ej(w+p) ó -z
Note: ej(w+p) =3D ejwej<=
/span> p=3D z * (-1) =3D -z<=
/p>
Therefore Xfe(z) =3D (1/2)[X(z) + X(-z=
)] Xfo(z) =3D (1/2)[X(z) - X(-z=
)] Recall that these are the z transforms of the sequences Xfe(n) =3D …, 0, x(-2), 0, x(0), 0, x(2), 0, … =
p>
Xfo(n) =3D …, x(-3), 0, x(-1), 0, x(1), 0, x(3), 0, =
230; Note: If we wish to shift the odd sequence to the left, we multiply the z
transform by z. Compressing the sequences means removing the 0s and filling in the posit=
ions
held by the 0s with the remaining values (in order). The above sequences no=
w
become Xep(n) =3D …, x(-2), x(0), x(2), … Xop(n) =3D …, x(-3), x(-1), x(1), x(3), … Where ep and op mean "even phase" and "odd phase"
respectively. Xep(n) and Xop(n) are written as X=
0(n)
and X1(n) respectively. When we compress the sequences with repl=
ace
z with z-1/2. So the new transforms are now X0(z) =3D (1/2)[X(z X1(z) =3D (1/2)[X(z or X0(z2) =3D (1/2)[X(z) +
X(-z)] X1(z2) =3D (1/2)[X(z) -
X(-z)] Approching even and odd phase the
other way Xep(n) =3D …, x(-2), x(0), x(2), … Xop(n) =3D …, x(-3), x(-1), x(1), x(3), … Xep(w) =3D=
Sx(2k)e-jwk =3D Sx(n)e-j(w/2)n n=3D2k Xop(w) =3D=
Sx(2k+1)e-jwk =3D Sx(n)e-jw(n-1)/2ejw/2 =3D S=
x(n)e-j(w/2)nejw/2 =3D ejw/2Sx(n)e-j(w/2)n n=3D2k-1 And the corresponding z transform Xep(z) =3D Sx(2k)z-k =3D <=
/span>Sx(n)z-(1/2)n n=3D2k Xop(z) =3D Sx(2k+1)z-k =3D=
z1/2Sx(n)z-(1/=
2)n
n=3D2k-1 Expanding (upsampling) the compressed (downsampled) sequence inserts 0s =
at
every other location. This is the inverse of compressing mentioned above.
Expanding simply substitutes z2 for z in the z transform. But
there is a slight twist. The odd sequence has its elements lined up exa=
ctly
with the even sequence. If we want to reconstruct the original sequence we =
have
to shift the odd sequence with respect to the even sequence and then add. T=
his
also in evident in the z1/2 term in the odd phase z transform
above: X(z) =3D Xep(z2<=
/sup>) + z-1Xop(z2<=
/sup>) The shift is represented by the z-=
1 term.
Now we have an expression for X(z) in terms of its even and odd phases. Polyphase representation of
downsampled sequences All the results can be combined into a concise set of expressions. From =
this
point on Xep =3D X0 Xop =3D X1 We know from the previous expressions Xfe(z) =3D X0(z2) Xfo(z) =3D z<=
sup>-1X1(z2) The convolution of a sequence with a transfer function can be expressed =
in
terms of the even and odd parts of the two: X(z)C(z) =3D {(1/2)[X(z) + X(-z)] +
(1/2)[X(z) - X(-z)]} * {(1/2)[C(z) + C(-z)] + (1/2)[C(z) - C(-z)]} or more succinctly X(z)C(z) =3D [Xfe(z) + Xfo(z)] * [Cfe(z) + Cfo(=
z)] And we can substitute the even and odd phases in this expression: X(z)C(z) =3D [X0(z2) + z-1X1(z2)]
* [C0(z2) + z-1C1(z2=
)] Expanding this expression we get X(z)C(z) =3D X0(z2)C0(z2)
+ z-1X0(z2)C1(z2) + =
z-1X1(z2)C0(z2)
+ z-2X1(z2)C1(z2) And grouping the terms X(z)C(z) =3D X0(z2)C0(z2)
+ z-2X1(z2)C1(z2) + =
z-1X0(z2)C1(z2)
+ z-1X1(z2)C0(z2) X0(z2)C0(z2)
+ z-2X1(z2)C1(z2)
=3D even phase z-1X0(z2)C1(z2)
+ z-1X1(z2)C0(z2)
=3D odd phase To downsample the output of the filter, X(z)C(z),
the odd phase is removed and the elements are compressed (z ó z1/2): X(z(1/2))C(z(1/2)=
)downsampled
=3D X0(z)C0(z) + z-1X1(z)C=
1(z) The nice thing about this expression is that the even and odd phases of =
the
sequence are grouped with the even and the odd phases of the filter. This is
the polyphase expression. It can be further expressed as the product of the=
polyphase
matrix and the input: [C0(z) C1(z)] [X<=
sub>0(z)
z-1X1(z)]T [C0(z) C1(z)] =3D
the polyphase matrix Thus the sampled filter output can be
implemented as 2 parallel operations: -1/2) + X(-z-1/2)]-1/2) - X(-z-1/2)]