通信系统概述与码间干扰简介

先把话说在前头——码间干扰,也就是 ISI,是数字通信里最容易忽视但又最要命的问题。你想想看,信号在信道里跑一圈,前后符号互相串扰,误码率一下子就上去了。我刚开始做通信系统设计时,就吃过这个亏。

通信系统的基本架构

一个典型的数字通信系统,说白了就是三段式:发端、信道、收端。我给你拆开看:

  • 发端:信源编码 + 信道编码 + 调制。把比特变成适合在信道上跑的波形。
  • 信道:物理介质。电缆、光纤、无线空间,都可以。信道有个毛病——带宽有限。
  • 收端:解调 + 译码 + 信源解码。把波形还原成比特。

这三段里,最容易出问题的就是中间那段。信道带宽一受限,波形就展宽,前后符号就开始打架。这就叫码间干扰。

核心概念:ISI 是带宽受限信道对传输符号的时域扩展造成的。它让每个符号的能量泄漏到相邻符号的时隙里。

物理信道与 ISI 根源

你想想看,什么样的信道会产生 ISI?我个人习惯把它们分成三类:

信道类型 典型场景 ISI 严重程度
带限信道 电话线、基带同轴 高(带宽是硬约束)
多径信道 无线移动通信 极高(多条路径叠加)
色散信道 光纤长距离传输 中等(随距离累积)

我在项目中遇到过一种情况——明明信噪比很好,但误码率就是下不来。排查了大半天,最后发现是基带脉冲没做好成型滤波,造成了严重的 ISI。嗯,这个问题很隐蔽。

码间干扰的数学模型

从数学上说,接收端抽样点的信号可以写成:

r(kT) = a(k) · h(0) + Σ a(n) · h((k-n)T) + n(kT)
                    n ≠ k

看懂了吗?等号右边第一项是当前符号的贡献,后面那一堆求和项全是 ISI。每个过去和未来的符号都往当前符号的时隙里注了一脚。

判断准则:如果 h(t) 在抽样时刻 t = nT(n ≠ 0)处的值不为零,就存在 ISI。这就是奈奎斯特第一准则的反面。

仿真验证:ISI 的 Python 原型

理论说再多,不如跑一次仿真。下面这个脚本展示了带限信道如何让脉冲展宽:

import numpy as np
import matplotlib.pyplot as plt

fs = 1000
T = 0.1
t = np.arange(0, 1, 1/fs)
# 单个矩形脉冲
pulse = np.zeros_like(t)
pulse[0:int(fs*T)] = 1
# 低通滤波器模拟带限信道
b, a = signal.butter(6, 30, btype='low', fs=fs)
channel_out = signal.filtfilt(b, a, pulse)

# 绘制
plt.figure()
plt.plot(t, pulse, label='发送脉冲')
plt.plot(t, channel_out, label='接收脉冲(展宽)')
plt.legend()

你会看到,发送时一个干净利落的矩形脉冲,经过低通信道后拖起了长长的尾巴。尾巴就是 ISI 的物理来源。

曾经踩过的坑:我早期在做基带系统仿真时,忘了加成型滤波器,直接拿矩形脉冲去发。结果眼图闭合得跟纸糊一样,误码率根本压不下去。后来才明白,矩形脉冲的频域旁瓣太高,不满足奈奎斯特准则。

本章知识体系总览

下面这张图,把第一章的脉络理清楚了。你可以当作一个参考索引:

第1章:知识体系总览 通信系统三要素 发端:编码 + 调制 信道:ISI 的根源 带限效应 → 波形展宽 收端:解调 + 判决 误码率恶化 ISI 抑制手段主线 成型滤波 奈奎斯特准则 均衡器 ZF/MMSE OFDM 循环前缀 ISI 是带宽受限信道的必然产物,但可以抑制

嗯,这张图把本章讲的东西串起来了。左边是通信系统三段式架构,中间标识出 ISI 产生的真正位置——信道,右边则列出了后续课程会用到的几种抑制手段。你后面学到均衡器、OFDM 的时候,可以随时回来看这张图,脉络会更清晰。