基于2PSK调制的网络编码性能分析系统
项目简介
本项目是一个基于MATLAB平台开发的数字通信仿真系统,专注于研究在双向中继信道(Two-Way Relay Channel, TWRC)模型下,应用网络编码(Network Coding)技术对通信性能的影响。
系统构建了完整的数字通信链路,采用2PSK(二进制相移键控)作为基础调制方式,并在中继节点引入异或(XOR)网络编码操作。通过蒙特卡洛仿真方法,项目深入对比了基于网络编码的传输方案(NC)与传统时分多址中继方案(TDMA)在误码率(BER)和系统吞吐量方面的性能差异。
主要功能特性
- 完整的通信链路仿真:实现了从信源产生、2PSK调制、AWGN信道传输、硬判决解调到信宿接收的全流程数字通信仿真。
- 网络编码算法集成:在中继节点实现了数字网络编码(Digital Network Coding),采用解码转发(Decode-and-Forward, DF)协议和异或(XOR)运算,模拟了双向中继信道下的高效信息交换。
- 双向数据传输模拟:同时模拟用户A和用户B的数据交换过程,包括上行链路(终端到中继)和下行广播链路(中继到终端)。
- 性能对比分析:
*
误码率(BER)对比:在同一坐标系下展示单链路理论值、两跳端到端理论值、传统TDMA仿真值以及网络编码NC仿真值的误码率曲线。
*
吞吐量分析:直观展示由于时隙节省(网络编码3时隙 vs 传统4时隙)带来的系统归一化吞吐量增益。
- 参数化配置:支持灵活调整信噪比范围(SNR)、单次仿真比特数、以及蒙特卡洛循环次数。
系统环境要求
- MATLAB R2016a 或更高版本
- 无需额外工具箱,基于MATLAB基础函数实现
使用方法
- 将
main.m 文件保存在MATLAB的工作路径中。 - 直接运行
main 函数。 - 程序将自动执行仿真循环,并在控制台实时输出当前信噪比下的误码率统计结果。
- 仿真结束后,系统将弹出两个图形窗口:
*
Figure 1:2PSK调制下网络编码 vs 传统传输误码率对比曲线。
*
Figure 2:系统吞吐量效率分析柱状图。
代码实现详解 (main.m)
该脚本不仅是一个简单的演示,而是一个严谨的蒙特卡洛仿真框架。以下是代码内部的具体实现逻辑:
1. 系统参数初始化
代码首先定义了仿真核心参数,包括:
- 信噪比扫描范围:0dB 至 16dB。
- 发送数据量:默认每个循环发送 100,000 比特。
- 循环次数:为了保证统计的平滑性,每个SNR点进行多次循环求平均。
2. 蒙特卡洛仿真核心循环
程序对外层SNR和内层平均循环进行遍历,针对每一次传输执行以下步骤:
A. 信源产生与调制
- 生成两个独立的随机二进制序列分别代表用户A和用户B的数据。
- 调用
bpsk_mod 函数将 0/1 比特映射为 -1/+1 的2PSK信号。
B. 场景一:网络编码传输 (NC)
模拟了物理层网络编码逻辑(或称三时隙数字网络编码):
- MAC阶段(多址接入):A和B同时(或分时隙)向中继R发送信号。信号经过
awgn_channel 并在中继处进行 bpsk_demod 解调。 - 异或处理:中继节点R对解调出的A和B的数据进行异或运算(
xor),生成网络编码数据包。 - 广播阶段:中继R将异或后的数据重新调制并广播发送给A和B。
- 自干扰消除:
* 终端A接收广播数据,利用自己持有的原始数据A,通过异或操作解出B的数据。
* 终端B同理解出A的数据。
- 误差统计:统计双向传输的总误比特数。
C. 场景二:传统中继传输 (TDMA)
模拟了传统的四时隙传输逻辑作为基准对照:
- A -> R -> B:中继解调A的数据,重新调制后转发给B。
- B -> R -> A:中继解调B的数据,重新调制后转发给A。
- 注意:代码为了控制变量,直接复用了场景一中上行链路的数据,重点模拟下行转发过程中的噪声累积和误码传播。
3. 理论值计算
为了验证仿真的准确性,代码内部植入了精确的理论公式:
- 单链路理论值:基于BPSK在AWGN信道下的标准误码率公式 $0.5 times text{erfc}(sqrt{text{SNR}})$.
- 端到端理论值:考虑解码转发(DF)机制下的错误传播,计算两跳链路的总误码率 $2p(1-p)$。
4. 关键子函数说明
代码底部定义了三个核心子函数用于支撑主程序:
bpsk_mod(bits):执行 2PSK 调制,将二进制 0 映射为 -1,1 映射为 1。bpsk_demod(rec_sig):执行硬判决解调,大于 0 判决为 1,小于等于 0 判决为 0。awgn_channel(tx_sig, snr_db):实现加性高斯白噪声信道。该函数根据输入的信噪比(dB)和信号功率,反向推算噪声方差,并叠加对应强度的高斯随机噪声。
5. 可视化分析
代码最后通过
semilogy 和
bar 函数生成可视化图表:
- 误码率曲线:横坐标为信噪比(dB),纵坐标为误码率(对数坐标)。图中清晰对比了红色的网络编码曲线、蓝色的传统TDMA曲线以及理论基准线。
- 吞吐量示意:基于时隙利用率(3时隙 vs 4时隙),计算并展示了网络编码相对于传统传输约 33% 的吞吐量增益。