---
title: "Parallel programming of a digital filter"
subject: "Digital Control System"
chapter: 4
key: "semester_6/digital_control_system:parallel-programming-controller"
source: https://www.bctengineer.com/q/semester_6/digital_control_system/parallel-programming-controller
site: BCT Engineering
---

# Parallel programming of a digital filter

Digital Control System · Chapter 4: Design and Compensation of Discrete Time Control System

- Asked in: 2081 Chaitra, 5 marks; 2078 Chaitra, 4 marks (asked 2 times)
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_6/digital_control_system/parallel-programming-controller
- Whole chapter: https://www.bctengineer.com/md/semester_6/digital_control_system/chapter-4

## Question

Consider the digital filter defined by parallel programming: Y(z)/X(z)=4(z-1)(z²+1.2z+1)/((z+0.1)(z²-0.3z+0.8)).

## Short answer

Expand G(z) in partial fractions in z^{-1}: G(z)=-50 + 46.619/(1+0.1z^{-1}) + (7.381+4.0476z^{-1})/(1-0.3z^{-1}+0.8z^{-2}). Realize constant gain, first-order, and second-order branches separately, then sum outputs. Uses three delay elements and offers low coefficient sensitivity.

## Answer

In **parallel programming**, $G(z)$ is expanded into partial fractions in $z^{-1}$. Each term is realized separately (first- or second-order), and the outputs are added.

#### Step 1: Write in powers of $z^{-1}$
$$
\frac{Y(z)}{X(z)} = \frac{4(1-z^{-1})(1+1.2z^{-1}+z^{-2})}{(1+0.1z^{-1})(1-0.3z^{-1}+0.8z^{-2})}
$$

The numerator and denominator have equal degree. So there is a constant term, plus a first-order term for the real pole and a second-order term for the complex pair, $z = 0.15 \pm j0.882$.

#### Step 2: Partial fractions (let $w = z^{-1}$)
$$
G = C_0 + \frac{C_1}{1+0.1w} + \frac{D_0 + D_1w}{1 - 0.3w + 0.8w^2}
$$

- $C_0 = \lim_{w\to\infty} G = \dfrac{4(-1)(1)}{(0.1)(0.8)} = -50$
- $C_1 = \dfrac{4(1-w)(1+1.2w+w^2)}{1-0.3w+0.8w^2}\Big|_{w=-10} = \dfrac{4(11)(89)}{84} = 46.619$
- $D_0$ and $D_1$: at $w = 0$, $4 = -50 + 46.619 + D_0$, so $D_0 = 7.381$. At $w = 1$ (that is, $z = 1$, where $G = 0$): $0 = -50 + \dfrac{46.619}{1.1} + \dfrac{7.381 + D_1}{1.5}$, so $D_1 = 4.0476$.

$$
\frac{Y(z)}{X(z)} = -50 + \frac{46.619}{1 + 0.1z^{-1}} + \frac{7.381 + 4.0476z^{-1}}{1 - 0.3z^{-1} + 0.8z^{-2}}
$$

**Check:** At $z = 2$, both forms give the same value. At $z \to \infty$: $-50 + 46.619 + 7.381 = 4$. ✔

#### Step 3: Difference equations of the branches
- $y_1(k) = -50x(k)$
- $w_2(k) = x(k) - 0.1w_2(k-1)$, and $y_2(k) = 46.619\,w_2(k)$
- $w_3(k) = x(k) + 0.3w_3(k-1) - 0.8w_3(k-2)$, and $y_3(k) = 7.381w_3(k) + 4.0476w_3(k-1)$
- $y(k) = y_1(k) + y_2(k) + y_3(k)$

#### Step 4: Block diagram
Overall structure:
```text
        +-------------[-50]-------------+ y1
        |                               v
x(k)-o--+-->[ 46.619/(1+0.1z^-1) ]--->(S)--> y(k)
        |                       y2      ^
        +-->[ second-order branch ]-----+ y3
```
Branch 2:
```text
x(k)-->(S)------------o--[1]-------->(S)->[46.619]-> y2(k)
        ^             |
        |          [z^-1]
        |             | w2(k-1)
        +<[-0.1]------o
```
Branch 3:
```text
x(k)-->(S)------------o--[7.381]---->(S)--> y3(k)
        ^             |               ^
        |          [z^-1]             |
        |             | w3(k-1)       |
       (S)<[0.3]------o--[4.0476]-----+
        ^             |
        |          [z^-1]
        |             | w3(k-2)
        +<[-0.8]------o
```

Total delays: $1 + 2 = 3$, the minimum for a third-order controller. A coefficient error in one branch affects only that branch's pole(s).

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. Parallel programming expands G(z) into
   A. A cascade of sections
   B. Partial fractions in z^-1 whose branch outputs are added
   C. A continued fraction
   D. A power series
   Answer: B. Each partial-fraction term is a separate branch, and the outputs are summed. (Key point: Parallel programming idea)

2. Because numerator and denominator have equal degree, the expansion contains
   A. No constant term
   B. A constant term C0 = -50
   C. A constant term C0 = 4
   D. A z^-1 term only
   Answer: B. C0 is the limit as w = z^-1 goes to infinity: 4(-1)(1)/((0.1)(0.8)) = -50. (Key point: Constant term)

3. The coefficient C1 of the 1/(1+0.1z^-1) term is
   A. 46.619
   B. 7.381
   C. -50
   D. 4.0476
   Answer: A. Evaluating at w = -10 gives 4(11)(89)/84 = 46.619. (Key point: First-order branch)

4. The second-order branch is
   A. (7.381 + 4.0476z^-1)/(1 - 0.3z^-1 + 0.8z^-2)
   B. (4.0476 + 7.381z^-1)/(1 - 0.3z^-1 + 0.8z^-2)
   C. (7.381 + 4.0476z^-1)/(1 + 0.1z^-1)
   D. 46.619/(1 - 0.3z^-1 + 0.8z^-2)
   Answer: A. D0 = 7.381 from w=0, D1 = 4.0476 from w=1, for the complex pole pair. (Key point: Second-order branch)

5. As z goes to infinity the three terms must sum to the value
   A. 0
   B. 4
   C. -50
   D. 1
   Answer: B. -50 + 46.619 + 7.381 = 4, the high-frequency gain of G(z). (Key point: Sum check)

## Related in Digital Control System

- [Parallel and ladder realization of a filter](https://www.bctengineer.com/question.md?key=semester_6%2Fdigital_control_system%3Aparallel-and-ladder-realization) — Digital Control System, chapter 4, asked 8×
- [Parallel realization of a second-order filter](https://www.bctengineer.com/question.md?key=semester_6%2Fdigital_control_system%3Aparallel-realization-filter) — Digital Control System, chapter 4, asked 2×
- [Controllable canonical form of (z⁻¹+2z⁻²)/(1+4z⁻¹+3z⁻²)](https://www.bctengineer.com/question.md?key=semester_6%2Fdigital_control_system%3Accf-z1-2z2-4z1-3z2) — Digital Control System, chapter 5, asked 15×
- [Controllable canonical form of (4z³+3z²+5z+4)/(2z³+5z²+2z+3)](https://www.bctengineer.com/question.md?key=semester_6%2Fdigital_control_system%3Accf-4z3-3z2) — Digital Control System, chapter 5, asked 14×
- [Observable canonical form of (0.3z⁻¹+0.6z⁻²)/(1−0.2z⁻¹+0.5z⁻²)](https://www.bctengineer.com/question.md?key=semester_6%2Fdigital_control_system%3Aocf-0-3-0-6) — Digital Control System, chapter 5, asked 13×
- [Jury test: z⁴−1.2z³+0.07z²+0.3z−0.08](https://www.bctengineer.com/question.md?key=semester_6%2Fdigital_control_system%3Ajury-z4-1-2z3-0-3z) — Digital Control System, chapter 3, asked 3×

## Related in other subjects

- [Lattice structure of 1+2z⁻¹−3z⁻²+4z⁻³](https://www.bctengineer.com/question.md?key=semester_7%2Fdigital_signal_analysis_and_processing%3Alattice-coeff-1-2-minus3-4) — Digital Signal Analysis and Processing, chapter 4, asked 4×
- [Inverse z of (3z³+2z)/((z-3)²(z-2)), inversion integral](https://www.bctengineer.com/question.md?key=semester_4%2Fapplied_mathematics%3Ainverse-z-3z3-2z-inversion) — Applied Mathematics, chapter 2, asked 3×
- [Find x(2), x(3) from X(z)=(2z²+3z+12)/(z-1)⁴](https://www.bctengineer.com/question.md?key=semester_4%2Fapplied_mathematics%3Ainverse-z-find-x2-x3) — Applied Mathematics, chapter 2
- [Direct form and lattice of FIR, 1+0.7z⁻¹+1.2z⁻²−z⁻³](https://www.bctengineer.com/question.md?key=semester_7%2Fdigital_signal_analysis_and_processing%3Alattice-fir-1-0-7-1-2) — Digital Signal Analysis and Processing, chapter 4, asked 2×
