基于AWGN信道的BICM协作网络性能分析
项目简介
本项目是一个基于MATLAB的通信系统仿真平台,专注于研究比特交织编码调制(BICM)技术在协作通信网络中的应用性能。系统构建了一个包含源节点(Source)、中继节点(Relay)和目的节点(Destination)的三节点网络模型。在加性高斯白噪声(AWGN)信道环境下,通过蒙特卡洛仿真方法,重点对比了传统点对点直传模式与解码转发(Decode-and-Forward, DF)协作模式下的误码率(BER)和误帧率(FER)性能,量化了协作分集带来的增益。
功能特性
- BICM发射机设计:实现了标准的BICM发送链路,包括卷积编码、随机比特交织以及16-QAM高阶调制。
- 协作通信模型:构建了基于三节点(S-R-D)的协作网络,支持解码转发(DF)协议。
- 信道环境:模拟了源-中继、中继-目的及源-目的三条链路独立同分布的AWGN信道。
- 先进接收机算法:接收端采用基于最大似然准则的软解调算法计算对数似然比(LLR),并结合最大比合并(MRC)技术进行信号合并。
- 高性能译码:使用软输入Viterbi算法(Soft-Input Viterbi Decoder)进行信道译码。
- 可视化分析:实时输出仿真统计数据,并绘制星座图及BER/FER性能对比曲线。
系统要求
- MATLAB R2016b 或更高版本
- Communications Toolbox(通信工具箱)
使用方法
- 确保MATLAB路径中包含本项目文件。
- 直接运行
main.m 脚本。 - 程序将在控制台打印每一信噪比(SNR)点下的直接传输与协作传输的BER/FER数据。
- 仿真结束后,将自动生成星座图(在中间SNR点采样)和性能曲线对比图。
---
详细功能与实现逻辑 (基于 main.m)
代码 main.m 是整个仿真平台的核心,其具体实现流程如下:
1. 参数配置
- 调制与编码:采用 16-QAM 调制(每个符号4比特),使用约束长度为7的NASA标准卷积码(生成多项式
[171 133],码率 1/2)。 - 帧结构:每帧包含1000个信息比特,末尾附加6个零尾比特以归零编码器状态。
- 交织器:使用固定随机种子(Seed=42)生成伪随机交织映射表,确保每次仿真的交织图案一致且可复现。
- 仿真控制:信噪比(Eb/N0)扫描范围为 0dB 至 12dB,步长 2dB。仿真终止条件设定为达到最大帧数(2000帧)或累计达到最小错误比特数(100比特)。
2. 信号发送与信道模拟
- 信源产生:生成随机二进制数据流并进行补零操作。
- BICM发送处理:数据经过卷积编码后,通过预生成的交织映射表进行比特交织,最后映射为16-QAM符号(采用格雷码映射,单位平均功率)。
- AWGN信道:根据当前的Eb/N0计算线性信噪比和噪声方差,生成复高斯白噪声并分别叠加到 S->D(直传)、S->R(源到中继)和 R->D(中继到目的)三条链路上。
3. 直传模式(Baseline)处理
- 软解调:接收端接收 S->D 信号,利用
qamdemod 函数计算近似对数似然比(Approximate LLR)。 - 解交织与译码:对LLR序列进行解交织,送入软输入Viterbi译码器恢复原始比特。
- 统计:对比译码结果与原始数据,统计直传链路的误码和误帧。
4. 协作模式(Decode-and-Forward)处理
协作模式的处理逻辑分为中继侧和目的侧两个阶段:
1. 对 S->R 链路信号进行解调、解交织和Viterbi译码。
2.
重编码转发机制:中继对译码后的数据进行重编码(Regeneration)。代码模拟了非理想DF场景:即使中继译码出现错误,依然会对错误数据进行重编码、交织和调制,并转发给目的节点,从而模拟真实的
误差传播(Error Propagation)效应。
3. 生成 R->D 链路的发送信号并叠加噪声。
1.
LLR计算:分别计算来自源节点(S->D)和中继节点(R->D)的接收信号LLR。
2.
最大比合并(MRC):在LLR域进行信号合并。由于假设各链路噪声功率相同,直接将两路信号的LLR值相加即等效于MRC合并。
3.
最终译码:对合并后的LLR序列进行解交织,并使用Viterbi算法进行最终判决输出。
5. 结果统计与可视化
- 实时输出:在双重循环(信噪比循环 > 帧循环)中,程序会累计错误比特和错误帧。
- 星座图绘制:在扫描到信噪比范围的中间值时,抓取第一帧的数据,绘制发送端星座图和接收端(S->D链路)星座图,用于直观观察噪声影响。
- 性能曲线:仿真结束后,在一个图形窗口中分别绘制 BER vs Eb/N0 和 FER vs Eb/N0 的对比曲线(黑色曲线为直传,红色曲线为协作),横坐标为对数刻度,纵坐标为对数刻度。
关键算法说明
- qammod / qamdemod:用于16-QAM的基带调制与解调。解调时开启了
UnitAveragePower 和 approxllr 选项,输出软信息用于后续译码。 - convenc / vitdec:实现卷积编码与Viterbi译码。译码器配置为
'unquant'(不量化,直接处理浮点LLR)和 'term'(终止模式),回溯深度设为32。 - MRC 合并策略:在LLR层面上,代码通过
llr_combined = llr_dir + llr_rd 实现了多径分集的能量收集,这是提升协作系统性能的关键步骤。