IEEE 802.11b 物理层 MATLAB 仿真项目
项目介绍
本项目是一个基于 MATLAB 脚本实现的 IEEE 802.11b 物理层(PHY)端到端仿真系统。该仿真脚本 (main.m) 完整复现了 802.11b 标准规定的发端信号处理、信道传输以及收端信号处理流程。
该项目不仅仅是一个简单的波形生成器,它构建了一个包含调制、扩频、脉冲成型、信道损伤模拟(噪声与频偏)以及接收机解调判决的完整通信链路,旨在评估不同数据速率(1, 2, 5.5, 11 Mbps)和不同信噪比(SNR)条件下的误码率(BER)性能。
功能特性
- 全速率支持:完整支持 IEEE 802.11b 定义的四种传输速率:
*
1 Mbps: DBPSK 调制 + 11位 Barker 码扩频
*
2 Mbps: DQPSK 调制 + 11位 Barker 码扩频
*
5.5 Mbps: CCK(补码键控)调制
*
11 Mbps: CCK(补码键控)调制
*
发送端:随机比特生成、扰码、差分编码、扩频/CCK映射、SRRC脉冲成型。
*
信道:支持配置载波频率偏移(Frequency Offset)和加性高斯白噪声(AWGN)。
*
接收端:SRRC匹配滤波、理想定时抽取、频偏校正、解扩/解调、解扰码。
- 可视化分析工具:自动生成发送信号功率谱密度(PSD)图、接收信号星座图以及时域波形对比图。
- 性能评估:实时计算传输误码率(BER)并统计错误比特数。
系统要求
- MATLAB R2016b 或更高版本
- Signal Processing Toolbox(用于
rcosdesign, upfirdn, pwelch 等函数) - Communications Toolbox(用于
biterr 等基础函数)
使用方法
- 打开 MATLAB 并将工作目录切换到项目所在文件夹。
- 打开主程序脚本(即
main.m)。 - 在脚本开头的 系统参数初始化 区域可以直接修改仿真参数:
*
simParams.DataRate: 设置传输速率 (1, 2, 5.5, 11)。
*
simParams.SNR_dB: 设置信道信噪比 (dB)。
*
simParams.freqOffset: 设置模拟的频率偏移量 (Hz)。
- 运行脚本。控制台将输出当前的仿真状态、传输统计和误码率结果,并弹出一个包含频谱、星座图和波形的分析窗口。
---
详细功能实现逻辑
本项目的主程序严格遵循以下信号处理流程,代码实现细节分析如下:
1. 参数配置与初始化
系统首先定义了仿真所需的关键参数结构体
simParams。仿真采样率
Fs 设定为 44 MHz(即 11 MHz 芯片速率的 4 倍过采样),以满足 SRRC 滤波器的设计要求。通过
rng(42) 固定了随机数种子,确保了仿真结果的可复现性。
2. 发送端处理 (Transmitter)
发送链路包含以下核心步骤:
- 随机源生成:利用 MATLAB 内置函数生成指定长度的随机二进制比特流。
- 扰码 (Scramble):调用
wlan_scramble 函数,实现了标准的同步扰码器。使用生成多项式 $S(x) = x^7 + x^4 + 1$,通过移位寄存器和异或逻辑打乱原始比特流,防止出现长连 0 或长连 1。 - 调制与扩频映射:核心函数
mod_spread_mapper 根据配置的速率进行处理:
* 对于
1/2 Mbps,先进行差分编码,然后将符号扩展与 11 位 Barker 码序列进行克罗内克积(Kronecker Tensor Product)运算。
* 对于
5.5/11 Mbps,实施 CCK 调制,将每 4 或 8 个比特映射为一个 8 芯片的复数码字。
- 脉冲成型:使用滚降系数为 0.5 的平方根升余弦滤波器(SRRC),通过
upfirdn 函数对基带芯片序列进行 4 倍上采样和滤波,生成最终的基带传输信号。
3. 信道模拟 (Channel)
代码在基带信号上模拟了两种物理损伤:
- 频率偏移:通过乘以复指数信号 $e^{j2pi f_{Delta} t}$ 来模拟收发信机之间的载波频率不同步。
- AWGN 噪声:依据设定的
SNR_dB 计算信号功率与噪声功率,生成复高斯白噪声并叠加到信号上。
4. 接收端处理 (Receiver)
接收链路逆向执行发送端的步骤:
- 匹配滤波:使用与发送端相同的 SRRC 滤波器对接收信号进行滤波,以最大化信噪比并消除码间干扰。
- 数据截断与对齐:代码中包含了简单的由滤波器延迟引起的信号截断逻辑,以对齐发送和接收的数据帧长度。
- 理想频偏校正:在解调前,利用仿真已知的频偏参数生成反向旋转向量,消除信号的相位旋转(注:实际系统中需使用锁相环)。
- 解调与解扩:调用
demod_despread_mapper 函数:
*
低速率模式 (1/2 Mbps):通过滑动相关器计算接收信号与 Barker 码的内积,然后利用差分相位检测算法(计算相邻符号共轭乘积的实部/虚部)来恢复原始比特。
- 解扰:由于使用同步扰码器,解扰过程调用与加扰相同的逻辑
wlan_descramble(即再次异或)恢复原始数据。
5. 性能统计与绘图
程序最后通过
biterr 函数对比发送端的原始比特(经截断对齐)与接收端的解调比特,计算误码率。同时绘制三合一图表:
- 左上:发送信号的功率谱密度(PSD),验证信号带宽特性。
- 右上:接收信号的星座图(Constellation Block),直观展示噪声对相位和幅度的影响。
- 下方:时域波形对比,展示经过信道和滤波后的信号包络变化。
关键算法与函数说明
实现了 IEEE 802.11 标准定义的扰码器。使用 7 级移位寄存器,反馈抽头位于第 4 和第 7 位。
mod_spread_mapper(bits, rate):
这是物理层的核心映射函数。
*
Barker 模式: 硬编码了
[+1; -1; +1; +1; -1; +1; +1; +1; -1; -1; -1] 序列。实现了 DBPSK (1 bit/sym) 和 DQPSK (2 bits/sym) 的相位映射。
*
CCK 模式: 实现了基于分块处理的 CCK 调制,根据输入比特块动态计算码字相位。
demod_despread_mapper(rxChips, rate, ...):
接收机的核心判决模块。
* 利用相关运算(Correlation)将扩频后的芯片序列还原为符号流。
* 利用差分解调逻辑(
d_vec = symsEst(k) * conj(symsEst(k-1)))从相位差中提取比特信息。
使用
rcosdesign 生成 SRRC 滤波器系数,设置
span=8(滤波器跨度)和
sps=4(每符号采样数),这是数字通信仿真中标准的过采样与滤波设置。