Digital Signal Processing
Module 1 — Exam Prep Notes
DSP Preliminaries & Z-Transforms
Numerical-focused quick reference · 20 Marks (4 × 5) format
Contents
• 1. Sampling Theorem — Oversampling / Critical / Undersampling, Nyquist Rate
• 2. Aliasing Numericals — Folding Frequency
• 3. Z-Transform Basics — Definition, ROC, Simple Sequences
• 4. Z-Transform of Standard Exponential Sequences
• 5. Properties of Z-Transform
• 6. Difference Equation → Transfer Function → Pole-Zero → Causality & Stability
• 7. Pole Location vs Time-Domain Behaviour
• 8. Inverse Z-Transform via Partial Fraction Expansion
• 9. Solving Difference Equations Using One-Sided Z-Transform
• 10. Relation Between Laplace and Z-Transform
1. Sampling Theorem & Nyquist Rate
Theory
Sampling Theorem (Nyquist): A bandlimited signal x(t) with maximum frequency fm can be reconstructed
exactly from its samples if sampled at a rate Fs > 2fm. The minimum rate 2fm is called the Nyquist rate.
Case Condition Result
Critical sampling Fs = 2fm Ideal boundary; theoretically recoverable, not practically
(needs ideal filter)
Over-sampling Fs > 2fm Full reconstruction possible with practical LPF
Under-sampling Fs < 2fm Spectral overlap → Aliasing → signal cannot be recovered
Why 8 kHz in telephony:
Speech intelligibility lies mainly below ~3.4 kHz (band 300 Hz–3.4 kHz). Taking fm ≈ 4 kHz with guard band,
Nyquist rate = 2×4kHz = 8 kHz — satisfies the theorem while keeping data rate low (standard PCM telecom rate,
64 kbps/channel).
Numerical: Nyquist Rate (Tutorial 1, Q3)
(a) x(t) = 1 + cos(2000πt) + sin(4000πt)
f1 = 1000 Hz, f2 = 2000 Hz → fmax = 2000 Hz
FN = 2 × 2000 = 4000 Hz = 4 kHz
(b) x(t) = sin(4000πt) / πt (sinc form)
Compare with sin(2π fm t)/πt → 2π fm = 4000π → fm = 2000 Hz
FN = 2 × 2000 = 4000 Hz = 4 kHz
(c) x(t) = [sin(4000πt) / πt]²
Squaring in time domain → convolution in frequency domain → bandwidth doubles: fmax = 2000+2000 = 4000
Hz
FN = 2 × 4000 = 8000 Hz = 8 kHz
Numerical: Recoverability Check (Tutorial 1, Q4)
x(t) = sinc(100πt) = sin(100πt)/πt → 2π fm = 100π → fm = 50 Hz → Nyquist rate = 100 Hz
Fs Compare with 2fm = 100 Hz Verdict
70 Hz 70 < 100 Under-sampling → aliasing → x(t) CANNOT be
recovered
100 Hz 100 = 100 Critical sampling → theoretically OK, practically NOT
recoverable
400 Hz 400 > 100 Over-sampling → x(t) CAN be recovered exactly
2. Aliasing Numericals — Folding Frequency
When Fs < 2fm, a high analog frequency F 'aliases' to a lower apparent frequency inside (0, Fs/2).
Method: Compute f = F/Fs. If f falls outside (−1/2, 1/2), add/subtract the nearest integer to fold it back into
range. Substitute back to get the aliased analog frequency using F = f × Fs.
Worked Example 1
xa(t) = 3cos(100πt), sampled at Fs = 75 Hz
x(n) = 3cos((100π/75)n) = 3cos((4π/3)n)
Fold: 4π/3 = 2π − 2π/3 → x(n) = 3cos((2π/3)n)
Aliased frequency: f = 1/3 → F = (1/3)×75 = 25 Hz
Result: F = 50 Hz is an alias of F = 25 Hz at Fs = 75 Hz
Worked Example 2 (Multi-tone)
xa(t) = 3cos(2000πt) + 5sin(6000πt) + 10cos(12000πt), Fs = 5000 Hz
F1=1kHz, F2=3kHz, F3=6kHz → f1=1/5, f2=3/5, f3=6/5
Fold: f2 = 3/5 = 1 − 2/5 → −2/5; f3 = 6/5 = 1 + 1/5 → 1/5
x(n) = 13cos(2π(1/5)n) − 5sin(2π(2/5)n)
Reconstructed analog signal (F = f × Fs):
ya(t) = 13cos(2000πt) − 5sin(4000πt) [distorted vs original — aliasing]
Exam Strategy
• List all analog frequencies present; compute Nyquist rate (2fmax)
• Compute fi = Fi/Fs for each term
• Fold any fi outside (−1/2, 1/2) by subtracting nearest integer
• Write x(n); combine like-frequency terms
• Convert back to ya(t) using F = f × Fs if asked
3. Z-Transform Basics
X(z) = Σ x(n) z⁻ⁿ (n = −∞ to ∞) [two-sided / bilateral Z-transform]
X+(z) = Σ x(n) z⁻ⁿ (n = 0 to ∞) [one-sided Z-transform, causal signals]
Putting z = e^(jω) (unit circle, r=1) gives the DTFT — so DTFT = Z-transform evaluated on the unit circle.
ROC (Region of Convergence)
ROC = set of z for which |X(z)| < ∞. Always a ring: Rx− < |z| < Rx+. Same X(z) formula can represent different
x(n) depending on ROC — ROC must always be stated.
Numerical: Finite Sequences
x(n) = {2,1,1,2̲,5,7,2} (underline = n=0, runs n=−3 to 3)
X(z) = 2z³ + z² + z + 2 + 5z⁻¹ + 7z⁻² + 2z⁻³
ROC: two-sided finite sequence → entire z-plane except z=0 and z=∞
x(n) = {2̲,−3,7,4,0,0,...} (causal, starts at n=0)
X(z) = 2 − 3z⁻¹ + 7z⁻² + 4z⁻³ = (2z³−3z²+7z+4)/z³
ROC: entire z-plane except z = 0
Impulse Sequences
Sequence X(z) ROC
δ(n) 1 Entire z-plane
δ(n−1) z⁻¹ = 1/z Entire z-plane except z=0
δ(n+1) z Entire z-plane except z=∞
ROC Property Rules (memorize)
Type of x(n) ROC
Causal (right-sided) |z| > r2 (outside outermost pole)
Anti-causal (left-sided) |z| < r1 (inside innermost pole)
Finite duration, two-sided Entire plane except possibly z=0, z=∞
Infinite duration, two-sided Ring: r2 < |z| < r1
Stable LTI system ROC must include unit circle |z|=1
General rule ROC can never contain a pole; ROC is always connected
4. Z-Transform of Standard Exponential Sequences
Geometric series: Σ rⁿ (n=0→∞) = 1/(1−r), |r|<1
Pattern 1 — Causal: x(n) = aⁿu(n)
X(z) = 1/(1−az⁻¹) = z/(z−a), ROC: |z| > |a|
Pattern 2 — Anti-causal: x(n) = −aⁿu(−n−1)
X(z) = z/(z−a), ROC: |z| < |a| (same formula, DIFFERENT ROC!)
Key exam point: z/(z−a) with ROC |z|>|a| is causal; same expression with ROC |z|<|a| is anti-causal — this
ambiguity is exactly why ROC must always be stated.
Pattern 3 — Two-sided combination (Tutorial 2, Q2b)
x(n) = (0.1)ⁿu(n) + (0.3)ⁿu(−n−1)
X(z) = z/(z−0.1) − z/(z−0.3), ROC: 0.1 < |z| < 0.3
Pattern 4 — Delayed causal (Tutorial 2, Q2c)
x(n) = −0.3ⁿu(n−1)
X(z) = −0.3/(z−0.3), ROC: |z| > 0.3
Pattern 5 — Symmetric: x(n) = (0.5)^|n| (Tutorial 2, Q2d)
Split at n=0: causal part (0.5)ⁿu(n) + anti-causal part 2ⁿu(−n−1)
X(z) = z/(z−0.5) − z/(z−2), ROC: 0.5 < |z| < 2
Quick-Reference Table
x(n) X(z) ROC
aⁿu(n) z/(z−a) |z|>|a|
−aⁿu(−n−1) z/(z−a) |z|<|a|
δ(n) 1 all z
u(n) z/(z−1) |z|>1
n·aⁿu(n) az/(z−a)² |z|>|a|
5. Properties of Z-Transform
# Property Rule ROC effect
1 Linearity Z{ax1(n)+bx2(n)} = aX1(z)+bX2(z) Intersection of R1,R2
2 Time shift Z{x(n−m)} = z⁻ᵐX(z) Same, except z=0 (m>0) or z=∞
(m<0)
3 Scaling by aⁿ Z{aⁿx(n)} = X(a⁻¹z) |a|R1 < |z| < |a|R2
4 Time reversal Z{x(−n)} = X(z⁻¹) 1/R2 < |z| < 1/R1
5 Differentiation Z{nx(n)} = −z·dX(z)/dz Same as X(z)
6 Convolution Z{x(n)*h(n)} = X(z)H(z) Intersection of R1,R2
7 Initial value x(0) = lim(z→∞) X+(z) —
8 Final value x(∞) = lim(z→1) (1−z⁻¹)X+(z) —
Applying Differentiation Property — Tutorial 2, Q3
(a) x(n) = n² · 2ⁿ · u(n)
X(z) = 2z²(z+2) / (z−2)³, ROC: |z| > 2
(b) x(n) = n(0.5)^(n+2) = 0.25·n(0.5)ⁿ
X(z) = 0.125z / (z−0.5)², ROC: |z| > 0.5
(c) x(n) = (0.5)ⁿ[u(n)−u(n−2)] → only nonzero at n=0,1 (finite sequence in disguise)
x(0)=1, x(1)=0.5
X(z) = 1 + 0.5z⁻¹, ROC: entire z-plane except z=0
Exam Tip
Whenever you see n·(...) or n²·(...), think DIFFERENTIATION PROPERTY — don't sum the series from scratch.
6. Difference Equation → H(z) → Pole-Zero → Causality/Stability
Procedure
• Take Z-transform of both sides using time-shift property Z{y(n−k)} = z⁻ᵏY(z), assume zero initial conditions &
causal system
• Solve for H(z) = Y(z)/X(z)
• Convert to positive powers of z (multiply by highest power of z)
• Factor denominator → poles; numerator → zeros
• Causality: ROC extends outward from outermost pole → |z| > (largest pole magnitude)
• Stability: ROC must include unit circle. For causal system → ALL poles must satisfy |pole| < 1
Worked Solutions — Tutorial 2, Q1 (a)–(d)
(a) y(n) + 0.4y(n−1) = x(n)
H(z) = z/(z+0.4)
Pole: z=−0.4 | Zero: z=0 | ROC: |z|>0.4 | |−0.4|<1 → STABLE
Verdict: Causal and Stable
(b) y(n) − 0.8y(n−1) + 0.15y(n−2) = x(n)
H(z) = z² / (z−0.5)(z−0.3)
Poles: z=0.5, 0.3 | Zeros: double zero at z=0 | ROC: |z|>0.5 | both |poles|<1 → STABLE
Verdict: Causal and Stable
(c) y(n) − 0.9y(n−1) + 0.2y(n−2) = x(n) + 0.4x(n−1)
H(z) = z(z+0.4) / (z−0.5)(z−0.4)
Poles: z=0.5, 0.4 | Zeros: z=0, −0.4 | ROC: |z|>0.5 | both |poles|<1 → STABLE
Verdict: Causal and Stable
(d) y(n) − 2.2y(n−1) + 1.21y(n−2) = x(n) + 0.5x(n−1)
H(z) = z(z+0.5) / (z−1.1)²
Poles: double pole at z=1.1 | Zeros: z=0, −0.5 | ROC: |z|>1.1 | |1.1|>1 → UNSTABLE
Verdict: Causal but Unstable
Quick Factoring Trick
For denominator z² − (p1+p2)z + p1p2: coefficient of z (sign-flipped) = sum of poles; constant term = product of
poles. Lets you factor by inspection quickly.
7. Pole Location vs Time-Domain Behaviour
Single Real Pole at z=a: x(n) = aⁿu(n)
Pole location Behaviour
0<a<1 Stable — decays monotonically to 0
−1 < a < 0 Stable — decays with alternating sign
a=1 Marginally stable — constant amplitude (x(n)=u(n))
a = −1 Marginally stable — oscillates ±1 forever
a>1 Unstable — grows without bound
a < −1 Unstable — grows with oscillating sign
Double Real Pole at z=a: x(n) = (n+1)aⁿu(n)
Pole location Behaviour
0<a<1 Stable (exponential decay beats polynomial growth)
−1 < a < 0 Stable, decaying with oscillation
a=1 UNSTABLE — grows linearly forever, x(n)=(n+1)u(n)
a = −1 UNSTABLE — grows in magnitude, oscillating
a > 1 or a < −1 Unstable — grows even faster than single-pole case
Key Exam Trap
A repeated pole exactly ON the unit circle (a=±1, multiplicity ≥2) is UNSTABLE, not marginally stable — the n^k
polynomial factor makes it grow. Only a SIMPLE (non-repeated) pole on the unit circle is marginally stable.
General Rule Summary
• Stable: all poles strictly inside unit circle (|a|<1), any multiplicity
• Marginally stable: simple pole(s) exactly on unit circle, none outside
• Unstable: any pole outside unit circle, OR any repeated pole on the unit circle
8. Inverse Z-Transform via Partial Fraction Expansion
Method
• Factor denominator (in terms of z) to find poles
• Do PFE: X(z) = A/(1−p1z⁻¹) + B/(1−p2z⁻¹) + ...
• ROC outside pole pi (|z|>|pi|) → causal term: A·pi^n·u(n)
• ROC inside pole pi (|z|<|pi|) → anti-causal term: −A·pi^n·u(−n−1)
(a) X(z) = 1 / (1 − 0.8z⁻¹ + 0.12z⁻²) — poles at z=0.6, 0.2
PFE: X(z) = 1.5/(1−0.6z⁻¹) − 0.5/(1−0.2z⁻¹)
ROC |z|>0.6 (both causal):
x(n) = 1.5(0.6)ⁿu(n) − 0.5(0.2)ⁿu(n)
ROC |z|<0.2 (both anti-causal):
x(n) = −1.5(0.6)ⁿu(−n−1) + 0.5(0.2)ⁿu(−n−1)
ROC 0.2<|z|<0.6 (mixed — outer pole anti-causal, inner pole causal):
x(n) = −1.5(0.6)ⁿu(−n−1) − 0.5(0.2)ⁿu(n)
(b) X(z) = 1 / (1 − 0.9z⁻¹ + 0.2z⁻²) — poles at z=0.5, 0.4
PFE: X(z) = 5/(1−0.5z⁻¹) − 4/(1−0.4z⁻¹)
ROC |z|>0.5 (both causal):
x(n) = 5(0.5)ⁿu(n) − 4(0.4)ⁿu(n)
ROC |z|<0.4 (both anti-causal):
x(n) = −5(0.5)ⁿu(−n−1) + 4(0.4)ⁿu(−n−1)
ROC 0.4<|z|<0.5 (mixed):
x(n) = −5(0.5)ⁿu(−n−1) − 4(0.4)ⁿu(n)
(c) X(z) = 1 / [z⁻¹(1−z⁻¹)²], ROC |z|>1
Use known result Z{(n+1)u(n)} = 1/(1−z⁻¹)², ROC |z|>1. Rewrite X(z) = z · 1/(1−z⁻¹)². Multiplying by z = advance by
1 (shift property):
x(n) = (n+2)u(n+1)
i.e., x(−1)=1, x(0)=2, x(1)=3, x(2)=4, ... and x(n)=0 for n<−1
Exam Strategy
• Always factor denominator first — this determines everything
• ROC decides causal vs anti-causal for EACH term separately, not the whole expression at once
• If numerator degree ≥ denominator degree, use long division or a shift-property shortcut
9. Solving Difference Equations Using One-Sided Z-Transform
One-Sided Shift Property (non-zero initial conditions)
Z{x(n−1)} = z⁻¹X(z) + x(−1)
Z{x(n−2)} = z⁻²X(z) + z⁻¹x(−1) + x(−2)
Worked Example — First Order
Solve: y(n) − 0.5y(n−1) = x(n), x(n)=u(n), y(−1)=1
Step 1: Y(z)(1−0.5z⁻¹) = X(z) + 0.5, where X(z) = 1/(1−z⁻¹)
Step 2: Y(z) = 1/[(1−z⁻¹)(1−0.5z⁻¹)] + 0.5/(1−0.5z⁻¹)
Step 3: PFE of first term = 2/(1−z⁻¹) − 1/(1−0.5z⁻¹)
Step 4: Combine → Y(z) = 2/(1−z⁻¹) − 0.5/(1−0.5z⁻¹)
y(n) = 2u(n) − (0.5)^(n+1) u(n)
Verify: y(0)=0.5(1)+1=1.5 → formula: 2−0.5=1.5 ✓ | y(1)=0.5(1.5)+1=1.75 → formula: 2−0.25=1.75 ✓
Worked Example — Second Order
Solve: y(n) − 3y(n−1) + 2y(n−2) = x(n), x(n)=δ(n), y(−1)=1, y(−2)=0
Y(z)[1−3z⁻¹+2z⁻²] = 1 + 3(1) − 2z⁻¹(1) = 4 − 2z⁻¹
Y(z) = (4−2z⁻¹) / [(1−z⁻¹)(1−2z⁻¹)] → PFE: A=−2 (pole 1), B=−6 (pole 2)
y(n) = −2u(n) − 6(2)ⁿu(n)
Exam Strategy
• Write delayed-term expansions carefully — most marks lost here (forgetting y(−1), y(−2) terms)
• Substitute known X(z) for given input (step/impulse/exponential)
• Collect Y(z), solve algebraically, PFE, inverse transform (assume causal)
• Verify with 1–2 direct recursive calculations if time permits
10. Relation Between Laplace and Z-Transform
z = e^(sT), T = 1/fs = sampling period
Derivation: replace ∫→Σ, t→nT in Laplace integral; matching e^(−snT)=z⁻ⁿ gives z=e^(sT).
s-plane → z-plane Mapping
With s = σ + jΩ: z = e^(σT)·e^(jΩT) → comparing with z=re^(jω): |z| = e^(σT), ω = ΩT
σ (s-plane) |z| (z-plane) Region
σ = 0 (jΩ-axis) |z| = 1 Maps to the unit circle
σ < 0 (Left-half s-plane) |z| < 1 Maps inside unit circle
σ > 0 (Right-half s-plane) |z| > 1 Maps outside unit circle
Continuous stable system: all poles in LHP. This maps exactly to: discrete stable system → all poles inside unit
circle. This is the same rule used in Topics 6/7.
Strip Mapping & Aliasing Link
Since ω=ΩT is unique only in (−π,π): −π/T < Ω < π/T. A single horizontal strip of width 2π/T maps completely
onto the z-plane. ALL other strips [(2n−1)π/T, (2n+1)π/T] also map onto the SAME unit disk — the mapping is
many-to-one. This many-to-one mapping is exactly the mathematical root of aliasing: sampling cannot
distinguish analog frequencies differing by an integer multiple of Fs=1/T.
One-Liner Summary (good opening/closing statement)
"The Z-transform is the discrete-time counterpart of the Laplace transform, related by z=e^(sT). This mapping
takes the jΩ-axis of the s-plane to the unit circle in the z-plane, the left-half s-plane to the interior, and the right-
half s-plane to the exterior — which is why 'poles in LHP' for continuous systems becomes 'poles inside the unit
circle' for discrete systems. Because ω is periodic with period 2π, this mapping is many-to-one, which is the
mathematical root of aliasing."
Exam-Day Strategy
With 4 questions × 5 marks, expect one numerical from each broad area:
• Area 1: Sampling / Aliasing (Topics 1–2)
• Area 2: Z-transform of sequences / properties (Topics 3–5)
• Area 3: Difference eqn → pole-zero → causality/stability (Topics 6–7)
• Area 4: Inverse Z-transform via PFE / solving difference equations (Topics 8–9)
Highest priority to nail perfectly: Topic 6 (pole-zero/causality/stability) and Topic 8 (inverse Z-transform, multi-
ROC) — most calculation-heavy and directly lifted from your tutorial sheets.