Asma Neji

Lesson 2: Signals & Systems (Core Telecom Brain)

Mastering system behaviors for signal processing.

Key Concepts:

Why It Matters: This forms the “brain” of telecom engineering, enabling design of efficient systems.

Labs/Practice: Implemented filters and sampling in labs; avoided aliasing in digital signal experiments.

Tools Used: MATLAB, Python (SciPy), Simulink.

This is the bridge from pure math (Lesson 1) to actual telecom engineering.
Signals & Systems is where you start thinking like a telecom engineer: how do we process, sample, filter, and digitize signals without losing (or corrupting) the information?

This topic is foundational for digital communications, RF/wireless, cellular networks, and almost every tool & project later (MATLAB, GNU Radio, srsRAN, etc.).

Why Signals & Systems Is the “Core Brain” of Telecom

1. Continuous-Time vs Discrete-Time Systems

Telecom reality
RF front-end is analog/continuous → baseband processing is discrete/digital.
5G NR, Wi-Fi 6, LTE → massive digital signal processing at baseband.

2. LTI Systems (Linear Time-Invariant) — The Golden Assumption

Almost every telecom system we analyze is modeled as LTI:

Why LTI is huge in telecom

3. Impulse Response — The DNA of an LTI System

The impulse response h(t) or h[n] completely characterizes an LTI system.

Intuition
h(t) tells you “how the system rings” after a sharp impulse.

Telecom examples

Example: Impulse response of a simple RC low-pass filter (exponential decay — classic “memory” of the filter)

RC Low-Pass Filter Impulse Response
(Exponential decay curve showing how the filter responds to an impulse)

Another view — step response of RC low-pass (shows smoothing effect):

RC Low-Pass Filter Step Response

4. Sampling Theorem (Nyquist-Shannon) — The Most Important Rule in Digital Telecom

Theorem
If a signal is bandlimited to maximum frequency fₘₐₓ (no energy above fₘₐₓ),
then sampling at
fₛ ≥ 2·fₘₐₓ
perfectly reconstructs the original signal (using ideal sinc interpolation).

Telecom examples

Visual: Proper sampling vs aliasing (sine wave example)

Nyquist-Shannon Sampling Theorem Illustration
Left: Proper sampling (fₛ > 2×f_max) reconstructs perfectly. Right: Undersampling causes aliasing.

Another clear aliasing demo:

Aliasing Effect on Sine Wave

5. Aliasing — The Enemy You Must Understand

When fₛ < 2·fₘₐₓ, frequencies above fₛ/2 fold back into the baseband:

f_alias = f - k·fₛ (for integer k that brings it into [-fₛ/2, fₛ/2])

Consequence
High-frequency components masquerade as low-frequency ones → irreversible distortion.

Prevention in real systems

6. Filtering: LPF, HPF, BPF

Filters remove unwanted frequencies.

Filter Type Passes Attenuates Telecom Use Case
Low-Pass (LPF) Below cutoff Above cutoff Anti-aliasing, baseband signal extraction
High-Pass (HPF) Above cutoff Below cutoff Remove DC offset, low-frequency noise
Band-Pass (BPF) Between f₁ and f₂ Outside the band Channel selection in receiver

Example frequency responses (magnitude and phase for Butterworth-style filters)

Low-Pass Filter Frequency Response
(Typical LPF roll-off at -3 dB cutoff)

High-Pass Filter Frequency Response
(HPF example — passes high frequencies)

7. Analog-to-Digital & Digital-to-Analog Conversion (ADC / DAC)

ADC chain

  1. Anti-aliasing LPF
  2. Sample-and-hold
  3. Quantization (→ quantization noise)
  4. Encoding (binary)

DAC: reverse process + reconstruction filter (smooth stair-steps)

Key impairments in telecom

Block diagram of ADC process (with anti-aliasing filter highlighted)

ADC Block Diagram
Anti-aliasing filter → Sample & Hold → Quantizer

Another overview:

ADC and DAC Process

Tools to Start Using Right Now

```python

Quick aliasing demo

import numpy as np import matplotlib.pyplot as plt

t = np.linspace(0, 1, 10000) fs = 100 # sampling rate (too low for some components) f1, f2 = 5, 55 # 55 Hz will alias when fs=100

x = np.sin(2np.pif1t) + 0.7np.sin(2np.pif2*t)

Sampled version

n = np.arange(0, len(t), int(len(t)/(fs*1))) ts = t[n] xs = x[n]

plt.figure(figsize=(12,5)) plt.subplot(121); plt.plot(t, x, label=’continuous’); plt.title(‘Original’); plt.grid(True) plt.subplot(122); plt.stem(ts, xs, label=’sampled @ 100 Hz’); plt.title(‘Aliasing visible’); plt.grid(True) plt.tight_layout(); plt.show()