IMPLEMENTATION STRUCTURES FOR DISCRETE-TIME SYSTEMS

"REAL-TIME IMPLEMENTATIONS"

"FLOW GRAPH PROPERTIES"

PARALLEL NETWORKS & CASCADE NETWORKS


IS COMPARABLE TO:






FEEDBACK NETWORKS



W(z) = X(z) E(z) + Y(z) G(z)

Y(z) =W(z) F(z) = (X(z) E(z) + Y(z) G(z)) F(z)

Y(z) - Y(z) G(z) F(z) = X(z) E(z) F(z)

Y(z) (1 - G(z) F(z)) = X(z) E(z) F(z)






COMBINED IDEAS



POSITIVE FEEDBACK LOOP:

E(z) = 1; F(z) = 1; G(z) = H2(z)H3(z)




PARALLEL/CASCADE COMBINATION

Y(z) = W(z)(H1(z) + H2(z)H4(z))


TRANSPOSED FORMS

1. Rename inputs and outputs.

2. Redraw arrows

3. Rearrange in standard left-right format




H(z) =Y(z)/X(z) = d +z-1 ct (I - z-1A )-1 b

Transpose Rules:

(A + B)t = At + Bt

(AB) t= Bt At

(A-1)t =(At )-1

Ht (z) = Y(z)/X(z)= d + btz-1(I - z-1At )-1 c



We want to reach the stage where the following kind of thinking becomes "automatic"


THEN:...y(n) = 2 y(n-1) - 6 y(n-2) + 3 x(n)


THEN:...y(n) = 3 x(n) - 4 x(n-1) + 5x(n-2)


THEN:...y(n) = 2 y(n-1) - 6 y(n-2) + 3 x(n) - 4 x(n-1) + 5x(n-2)

One implementation for:...y(n) = 2 y(n-1) - 6 y(n-2) + 3 x(n)




THEN:...y(n) = 2 y(n-1) - 6 y(n-2) + 3 x(n) - 4 x(n-1) + 5x(n-2)

IF: H(z) = H1(z)H2(z)


THEN:...v(n) = 3 x(n) - 4 x(n-1) + 5x(n-2)


THEN:...y(n) = 2 y(n-1) - 6 y(n-2) + v(n)


IF:...H(z) = H2(z)H1(z)


THEN:...w(n) = 2 w(n-1) - 6 w(n-2) + x(n)


THEN:...y(n) = 3 w(n) - 4 w(n-1) + 5w(n-2)


OR

OR


THEN:

y(n) = -a1 y(n-1) + -a2 y(n-2) + b0 x(n) + b1 x(n-1) + b2x(n-2)

OR: DIRECT FORM II:





COMPARED TO DIRECT FORM I = TRANSPOSE OF DIRECT FORM II


CASCADE FORMS FOR REAL POLYNOMIALS


M = M1 + 2M2 and N = N1 + 2N2

And if N >= M:

= b0


THEN:
y1(n) = -a11 y1(n-1) - a21 y1(n-2) + b0 x(n) + b11 x(n-1) + b21 x(n-2)
y2(n) = -a12 y2(n-1) - a22 y2(n-2) + y1(n) + b12 y1(n-1) + b22 y1(n-2)
y3(n) = -a13 y3(n-1) - a23 y3(n-2) + y2(n) + b13 y2(n-1) + b23 y2(n-2)

An array of the number of storage nodes might look like the following;
k=1k=2 k=3 .
in x (n-2) x (n-1)x (n)
outin y1(n-2) y1(n-1) y1(n)
out iny2(n-2) y2(n-1) y2(n)
out y3(n-2) y3(n-1) y3(n)

MATLAB IMPLEMENTATION OF CASCADE FORM

%% clfild97.m file

% SINUSOIDAL INPUT

F = [ 0 0 0; 0 0 0; 0 0 0; 0 0 0];

for n=0:30

x=sample(n);

[y,F] =clfilt97(x,F); % PLUS PLOT STUFF

end;

% IMPULSE INPUT

F = [ 0 0 0; 0 0 0; 0 0 0; 0 0 0];

for n=0:30

x=0;

if n==2, x=2; end;

[y,F] =clfilt97(x,F) %PLUS PLOT STUFF

end;

function y=sample(n);

y=cos(pi/8*n) + cos(6*pi/8*n);

function [y,F] = clfilt97(x,F);

b0=[.0904 .0904 .0904]; b1= 2*b0; b2=b0;

a1=[ -1.268 -1.010 -.9044]; a2= [.7051 .3585 .2155];

F(1,3) = x;

for k=1:3

in=k; out=k+1;

F(out,3)=b0(k)*F(in,3)+b1(k)*F(in,2)+b2(k)*F(in,1)...

- a1(k)*F(out,2) - a2(k)*F(out,1);

end;

y=F(4,3)

pause(1);

for k=1:4

F(k,1)=F(k,2);

F(k,2)=F(k,3);

end;

PARALLEL FORMS/MORE WORK---PARTIAL FRACTIONS





And there is nothing to keep us from using the following form, grouping real zeros and poles together, and considering zero value coefficients and assuming that M=N:


THEN:y1(n) = a11 y1(n-1) + a21 y1(n-2) + e01 x(n) + e11 x(n-1)
y2(n) = a12 y2(n-1) + a22 y2(n-2) + e02 y1(n) + e12 y1(n-1)
y3(n) = y1(n) + y2(n) + e0 x(n)

PROPERTIES OF NETWORK COEFFICIENTS

All factors can have form:

Fi(z) = 1 + c1i z-1 + c2i z-2 = (1- q1i z-1 )( 1 - q2i z-1)

c1i = -(q1i + q2i ) and c2i = q1i q2i


if c1i 2 > 4 c2i roots are real and

if c1i 2 < 4 c2i roots are complex conjugatves: q1i = q2i* = qi

c1i = - 2 Re ( qi) = -2 ri cos (fi) and c2i = |qi| 2 = ri2

FOR DENOMINATOR FACTORS FOR STABILITY POLES MUST BE INSIDE THE UNIT CIRCLE:

Di(z) = 1 + a1i z-1 + a2i z-2 = (1- p1i z-1 )( 1 - p2i z-1)

|p1i z-1 | and | p2i z-1| < 1 or |a2i | = |p1i p2i | <1

ALSO CAN BE SHOWN USING:


THAT |a1i | < 1 + a2i



ZEROS TEND TO BE ON THE UNIT CIRCLE
Ni(z) = 1 + b1i z-1 + b2i z-2 = (1- z1i z-1 )( 1 - z2i z-1)
= 1 - 2 cos fi z-1 + z-2
= 1 ± 2 z-1 + z-2 if roots are real and equal.
= 1 - z-2 if roots are real and unequal (-1, +1).
= 1 ± z-1 if roots are real and first order.

WHERE ARE ROOTS LOCATED IN THE FOLLOWING?

Fi(z) = 1 + 1.414 z-1 + z-2

Fi(z) = 1 + 2 z-1 + z-2

Fi(z) = 1 -.8 z-1 + .64 z-2

Fi(z) = 1 -1.08333 z-1 + 0.25 z-2

BASIC NETWORKS FOR FIR SYSTEMS - LINEAR PHASE




h(n) = {bn for n= 0, 1, ....,M
= {0 otherwise


\

FIRS and LINEAR PHASE DELAY --- THE REAL ADVANTAGE

Examples: bm = ± b*M-m for n=0,1,M

IF M IS EVEN and SYMMETRY IS EVEN = TYPE I

h(n) = d(n) + 2d(n-1) + 4d(n-2) + 2d(n-3) + d(n-4)

IF M IS ODD and SYMMETRY IS EVEN = TYPE II

h(n) = d(n) + 2d(n-1) + 4d(n-2) + 4d(n-3) + 2d(n-4)+ d(n-5)

IF M IS EVEN and SYMMETRY IS ODD = TYPE III

h(n) = d(n) + 2d(n-1) + 0 d(n-2) - 2d(n-3) - d(n-4)

IF M IS ODD and SYMMETRY IS ODD = TYPE IV

h(n) = d(n) + 2d(n-1) + 4d(n-2) - 4d(n-3) - 2d(n-4)- d(n-5)

ASSOCIATED FREQUENCY RESPONSES


NOTE LINEAR PHASES AND 180o JUMPS


NOTE CONSTRAINTS AT z = 1 and z = -1 (w = 0 and w = p)

ALWAYS:


so for odd symmetry cases (III and IV)


Always:



so for types II and III: H(-1) = 0

bm = ± b*M-m is the same as: h(n) = ± h*(M-m)

or H(z) = ± z -M H*(1/z*) or z MH(z) = ± H*(1/z*)

WHICH SAYS THAT IF z is a zero, then 1/z* is also a zero of the function.



TYPE I EXAMPLE WITH REAL NUMBERS
H(z)= 1 + 2z-1 + 4z-2 + 2z-3 + z-4
= z-2 (z2 + 2z1 + 4 + 2z-1 + z-2)
= z-2 (z2 + z-2 + 4 + 2z1 + 2z-1)
= z-2 [(z2 + z-2)+ 4 + (2z1 + 2z-1)]
or H(ejw) = e-2jw [(e2jw + e-2jw)+ 4 + (2ejw + 2e-jw) )
or= e-2jw [2cos2w + 4 + 4cosw ) = e-2jw R(w)
< H(ejw) = -2w + C = -Mw/2 + C

where C = 0 or ¹ depending on sign of R

which is linear with 180 degree jumps.

We are really trying to constrain what is defined as a filter's group delay:


NOTE CHANGES IF bs are not real:

TYPE II EXAMPLE
h(n) = d(n) + 2d(n-1) + 4d[n-2) + 4d(n-3)+ 2d(n-4) + d(n-5)
H(z) = 1 + 2z-1 + 4z-2 + 4z-3 + 2z-4 + z-5
= z-5/2 (z5/2 + 2z3/2 + 4z1/2 + 4z-1/2 + 2z-3/2 + z-5/2)
=z-5/2 (z5/2 + z-5/2+ 2z3/2 + 2z-3/2 + 4z1/2 + 4z-1/2 )
H'(w) =e-5jw/2[(e 5jw/2+e -5jw/2)+2(e 3jw/2+e-3jw/2)+4(ejw/2+e-jw/2))
= e-5jw/2 [2cos5w/2 + 4cos3w/2 + 8cos w/2 ]

TYPE III EXAMPLE WITH REAL NUMBERS
H(z) = 1 + 2z-1 - 2z-3 - z-4
= z-2 (z2 + 2z1 - 2z-1 - z-2)
= z-2 (z2 - z-2 + 2z1 - 2z-1)
= z-2 [(z2 - z-2)+ (2z1 - 2z-1) )
or H(ejw) = e-2jw [(e2jw - e-2jw)+ (2ejw - 2e-jw) ]
or= e-2jw [j2sin2w + j4sin w ] = j e-2jw R(w)

TYPE IIIs are used for differentiators:

NOTE: IDEAL DIFFERENTIATIOR: H'D(w) = jw

CHECK FIRST DIFFERENCE:
y(n) = x(n) - x(n-1)
h(n) = d(n) - d(n-1)
H(z) = 1 - z-1
H(ejw) = 1 - e-jw
H(ejw) = e-jw/2 (e jw/2 - e-jw/2)
= 2 e-jw/2 (jsin w/2) = j(group delay) R(w)
R(w) = 2 sin w/2 which is approximately w for small w.

GENERAL EQUATIONS:


where h(k) = h(M-k)

and notation for corresponding x(n-k) is x(n-M+k)

For even M:



For odd M:


SPECIAL FILTERS

ALLPASS FILTERS: |H(ejw)| = |H'(w)| = 1 for all w




If zs is a zero of H(z) then 1/zs is a pole of H(z)

Example:




COMB FILTER -- EVENLY SPACED NOTCHES

Select H(z) and then substitute to get H(zk)

which has a frequency response H(ejwk) = H'(kw)

Since H'(w) has a period of 2¹, H'(kw) has a period of 2p/k.

Example of a simple highpass filter:



has zeros at k roots of 1 and poles at the k roots of a.

Example for k=6 and a=.3




(POWER) COMPLEMENTARY FILTERS

|H'1(w)|2 + |H'2(w)|2 = 1 for all w, equivalently

H1(z) H1(z-1) + H2(z) H2(z-1) = 1

Example where: H1(z) is lowpass and H2(z) is highpass.




CRITERIA: H1(z) and H2(z) must be bounded real, ie

|H'i(w)| <= 1


H1(z) H1(z-1) + H2(z) H2(z-1) = 1


or: P(z)P(z-1)+ Q(z)Q(z-1) = D(z)D(z-1)

or: Q(z)Q(z-1) = D(z)D(z-1) - P(z)P(z-1)

As many classical filters have all their zeros on the unit circle,
Q(z)Q(z
-1) will have double zeros on the unit circle.

CAN BE SHOWN: Hi(1) = 1 and Hi(-1) = 0 , then there exists allpass filters such that:

H1(z) = [ A1(z) + A2(z) ]/2

H2(z) = [ A1(z) - A2(z) ]/2

A1(z) = H1(z) + H2(z)

A2(z) = H1(z) - H2(z)


First Order Example:

:

H1(1) = 1 and H1(-1) = 0

:

H2(1) = 0 and H2(-1) = 1






P(z)+Q(z) = 1 - az-1 = D(z)

P(z) - Q(z) = z-1 -a

Therefore: