NivaarExam PrepOfficial exam papers ↗

22-Elec-B1 Digital Signal Processing · May 2016

Question 4 of 6: Filling in a four-section cascade flow graph

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

Paper format. National Exams, May 2016 — 07-Elec-B1 Digital Signal Processing. Three hours, closed book; one approved calculator (Casio or Sharp) and one two-sided aid sheet of tables and formulas are permitted. Six questions are printed and any five constitute a complete exam; all questions carry 12 marks, for 60 marks total. Tables of z-transform pairs and properties, the DTFT synthesis/analysis pair, Parseval's relation and the DFT property list are bound into the paper (pages 8–10). All six questions are solved below, because the set is a study resource rather than a timed attempt.

Reference texts (22-Elec-B1).

Question 4: Filling in a four-section cascade flow graph (12 marks)

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

Given. A sixth-order system function whose numerator is $0.2(1+z^{-1})^{6}$ and whose denominator is supplied already factored into three quadratics, together with a printed flow graph made of four cascaded second-order sections and eight unit delays. Reading the arrowheads on the printed graph, the four sections are, from input to output: a three-column section whose two delays feed upward into an adder on the signal rail; a three-column section whose delays are fed downward from the rail with taps returning to adders on both sides; a two-column section whose delay chain is fed from the rail with taps summing ahead of it; and a two-column section whose delay chain is fed from the rail with taps returning to an adder behind it. The node labels place $u[n]$ at the output of the first section, $v[n]$ at the state node of the second, and $w[n]$ at the input of the third.

Find. (a) every branch coefficient, plus a statement of whether the assignment is unique; (b) the name of each of the four structures; (c) the difference equations in $x$, $u$, $v$, $w$, $y$.

Approach. Count orders first: three quadratic denominators must be shared among the three recursive sections and three quadratic numerator factors among the three sections that carry zeros, which matches the printed graph exactly. Then write each section's transfer function from its own arrow pattern, match coefficients, and finally translate the node-by-node signal flow into difference equations.

  1. Factor the numerator into second-order blocks. Every section of the graph holds only two delays, so each can realise at most a quadratic in $z^{-1}$. Since $$\left(1+z^{-1}\right)^{6} = \left[\left(1+z^{-1}\right)^{2}\right]^{3} = \left(1 + 2z^{-1} + z^{-2}\right)^{3},$$ the split is forced: each of the three sections that carries zeros must take exactly $\left(1 + 2z^{-1} + z^{-2}\right)$, up to a scalar. Expanded for reference, the numerator is $0.2 + 1.2z^{-1} + 3z^{-2} + 4z^{-3} + 3z^{-4} + 1.2z^{-5} + 0.2z^{-6}$. The overall gain $0.2$ can be attached to any one feed-forward branch; we place it on the first section.
  2. Match the section census to the printed graph. The three denominator quadratics need three sections with feedback, and the three numerator quadratics need three sections with feed-forward taps. The printed graph offers two full biquads (which have both), one all-zero section (only feed-forward) and one all-pole section (only feedback) — giving $2+1 = 3$ zero-bearing sections and $2+1 = 3$ pole-bearing sections. The counts close exactly, which confirms the reading of the arrowheads: $$\underbrace{\text{Sec. 1}}_{\text{biquad}}\; \underbrace{\text{Sec. 2}}_{\text{biquad}}\; \underbrace{\text{Sec. 3}}_{\text{all-zero}}\; \underbrace{\text{Sec. 4}}_{\text{all-pole}} .$$ Assigning the denominators in the order printed in $H(z)$: $$H_{1}=\frac{0.2\left(1+2z^{-1}+z^{-2}\right)} {1-2z^{-1}+\frac{7}{8}z^{-2}},\quad H_{2}=\frac{1+2z^{-1}+z^{-2}}{1+z^{-1}+\frac{1}{2}z^{-2}},$$ $$H_{3}=1+2z^{-1}+z^{-2},\quad H_{4}=\frac{1}{1-\frac{1}{2}z^{-1}+z^{-2}} .$$
x[n]Section 1transposed DF IIu[n]Section 2direct form IIv[n]Section 3all-zero (FIR)w[n]Section 4all-poley[n]
Overview of the cascade with the node names the question defines. Sections 1 and 2 are full biquads, section 3 supplies the remaining pair of zeros and section 4 the remaining pair of poles.
  1. (b) Name the four structures from the arrow directions. Writing a general biquad as $H(z) = (b_{0}+b_{1}z^{-1}+b_{2}z^{-2})/(1+a_{1}z^{-1}+a_{2}z^{-2})$:
    • Section 1 — transposed direct form II (direct form II transposed). Its input node fans out through the $b_{k}$ branches, its output node fans out through the $-a_{k}$ branches, both sets drive the same two delays, and those delays feed upward into the single output adder on the rail. This is the signal-flow-graph transpose of section 2.
    • Section 2 — direct form II (canonic direct form). The feedback adder comes first, the shared delay chain hangs downward off the state node, and the feed-forward taps sum into a second adder on the output side.
    • Section 3 — all-zero (FIR) direct form, a second-order transversal / tapped-delay-line section: input into a two-delay chain, taps summed at one adder, no feedback path.
    • Section 4 — all-pole direct form, purely recursive: the output drives the two delays and their taps return to the input adder, with no feed-forward branch other than the direct path.
    Sections 1 and 2 are transposes of each other, and sections 3 and 4 are the all-zero and all-pole halves of a biquad — the graph is deliberately built to test all four canonical layouts in one figure.
  2. (a) Write the coefficients on the branches. With the assignment of Step 2, and remembering that a branch gain feeding a plain adder must carry the negated denominator coefficient ($-a_{1}$, $-a_{2}$):
    • Section 1 (transposed DF II, $H_{1}$): feed-forward $b_{0}=0.2$ on the direct rail branch, $b_{1}=0.4$, $b_{2}=0.2$; feedback $-a_{1} = +2$ and $-a_{2} = -0.875$.
    • Section 2 (DF II, $H_{2}$): feed-forward $b_{0}=1$ (plain rail wire), $b_{1}=2$, $b_{2}=1$; feedback $-a_{1} = -1$ and $-a_{2} = -0.5$.
    • Section 3 (all-zero, $H_{3}$): taps $b_{0}=1$, $b_{1}=2$, $b_{2}=1$.
    • Section 4 (all-pole, $H_{4}$): feedback $-a_{1} = +0.5$ and $-a_{2} = -1$.
    The realisation uses 8 delays and 13 multipliers (three of which are trivial unit gains that a real implementation would drop).
x[n]0.20.40.2z⁻¹z⁻¹2-0.875z⁻¹z⁻¹-1-0.521u[n]
Sections 1 and 2 with every coefficient filled in. Left: transposed direct form II realising 0.2(1+z^-1)^2 / (1 - 2z^-1 + 0.875 z^-2). Right: direct form II realising (1+z^-1)^2 / (1 + z^-1 + 0.5 z^-2). Branch labels into an adder are already negated.
w[n]y[n]1z⁻¹z⁻¹21z⁻¹z⁻¹0.5-1
Sections 3 and 4 with every coefficient filled in. Left: the all-zero (FIR) section realising (1+z^-1)^2. Right: the all-pole section realising 1 / (1 - 0.5 z^-1 + z^-2).
  1. Is the assignment unique? No. Three independent freedoms remain, and every one of them leaves $H(z)$ unchanged in exact arithmetic:
    • Pairing. The three denominator quadratics may be sent to the three recursive sections in any of $3! = 6$ ways, and the three numerator factors to the three zero-bearing sections in any of $3!$ ways. Here the numerator permutations are indistinguishable because all three factors are the same $\left(1+z^{-1}\right)^{2}$, so 6 genuinely distinct assignments survive.
    • Ordering. The four sections could be cascaded in a different order (subject to keeping each section's own layout), since multiplication of transfer functions commutes.
    • Gain distribution. The factor $0.2$ may be placed on any one feed-forward branch, or split among the sections (for example as $\sqrt[3]{0.2}$ per section), without changing $H(z)$.
    What the choices do change is finite-word-length behaviour: internal signal levels (overflow headroom), round-off noise gain at the output, and coefficient-quantisation sensitivity. Scaling each section so that its internal peak is close to full scale is the usual reason to prefer one assignment over another. The numerator split itself is not free: each section holds only two delays, so each must take exactly one $\left(1+z^{-1}\right)^{2}$ factor.
  2. (c) Difference equations for the named nodes. Following the signal from left to right, one equation per named node: $$\boxed{\;u[n] = 2\,u[n-1] - 0.875\,u[n-2] + 0.2\,x[n] + 0.4\,x[n-1] + 0.2\,x[n-2]\;}$$ $$\boxed{\;v[n] = u[n] - v[n-1] - 0.5\,v[n-2]\;}$$ $$\boxed{\;w[n] = v[n] + 2\,v[n-1] + v[n-2]\;}$$ $$\boxed{\;y[n] = 0.5\,y[n-1] - y[n-2] + w[n] + 2\,w[n-1] + w[n-2]\;}$$ The first equation is section 1 with its two internal states eliminated (they are not among the named nodes); the second and third are the recursive and feed-forward halves of section 2, which is exactly why $v[n]$ — the direct-form-II state node — is labelled inside that section; and the fourth combines section 3 (whose output is not named) with section 4, which is legitimate because section 3 carries no state feedback of its own.
  3. Check. Running the four equations with $x[n]=\delta[n]$ reproduces, sample for sample, the impulse response obtained by long division of $0.2(1+z^{-1})^{6}$ by the expanded denominator $$1 - 1.5z^{-1} + 0.875z^{-2} - 0.8125z^{-3} - 0.125z^{-4} - 0.34375z^{-5} + 0.4375z^{-6},$$ confirming both the coefficient assignment and the equations. (Independently, the expanded denominator evaluated at $z=1$ gives $-0.46875$, which equals $(-0.125)(2.5)(1.5)$, the product of the three printed factors at $z=1$.)

Check: the question asks only for the realisation, but the pole radii are worth stating because they decide whether this cascade can be run at all. The factor $1-2z^{-1}+\tfrac78 z^{-2}$ has roots at $z = 1.3536$ and $z = 0.6464$, so one pole lies outside the unit circle, and $1-\tfrac12 z^{-1}+z^{-2}$ has roots at $z = 0.25 \pm j\,0.9682$, i.e. exactly on the unit circle ($|z| = 1$). Only $1+z^{-1}+\tfrac12 z^{-2}$ ($|z| = 0.7071$) is strictly stable. The cascade as specified is therefore not a stable causal system; it is a structures exercise, and no stability claim should be attached to the answer. If the intent were a stable implementation, the offending factors would have to be replaced by their reciprocal-radius mirrors.

Question 4 — coefficient assignment
SectionStructureRealises Feed-forward $b_{0},b_{1},b_{2}$ Feedback branch gains $-a_{1},-a_{2}$
1transposed direct form II $0.2(1+z^{-1})^{2}\big/\left(1-2z^{-1}+\tfrac78 z^{-2}\right)$ $0.2,\ 0.4,\ 0.2$$+2,\ -0.875$
2direct form II (canonic) $(1+z^{-1})^{2}\big/\left(1+z^{-1}+\tfrac12 z^{-2}\right)$ $1,\ 2,\ 1$$-1,\ -0.5$
3all-zero (FIR) direct form $(1+z^{-1})^{2}$$1,\ 2,\ 1$—
4all-pole direct form $1\big/\left(1-\tfrac12 z^{-1}+z^{-2}\right)$ —$+0.5,\ -1$
Cost 8 unit delays, 13 multipliers, 12 two-input adds
Unique? No — 6 distinct denominator pairings, free section ordering, free distribution of the gain 0.2; identical $H(z)$, different finite-precision behaviour