超宽带BPSK调制及窄带干扰仿真系统 - README
项目简介
本项目是一个基于MATLAB开发的超宽带(Ultra-Wideband, UWB)无线通信链路仿真系统。系统专注于模拟高斯脉冲无线电在存在窄带干扰(Narrowband Interference, NBI)和加性高斯白噪声(AWGN)环境下的通信性能。
核心采用二进制相移键控(BPSK)作为调制方案,使用高斯二阶导数脉冲作为基带波形。项目不仅提供了时域波形和频域功率谱密度的可视化分析,还通过蒙特卡洛(Monte Carlo)方法,量化评估了系统在不同信噪比(SNR)和信干比(SIR)条件下的误码率(BER)性能。
功能特性
- UWB信号生成:基于高斯二阶导数(Gaussian Doublet/Ricker Wavelet)生成极窄脉冲,具备无直流分量的频谱特性。
- BPSK调制:实现二进制数据的极性调制,将比特0/1映射为正/负脉冲。
- 复杂信道建模:
*
加性高斯白噪声(AWGN):模拟热噪声背景。
*
窄带干扰(NBI):模拟强单频正弦波干扰(如Wi-Fi或GSM信号对UWB的干扰),且具备随机相位特性。
*
时域分析:同时展示发送信号、纯干扰信号、以及混合后的接收信号波形。
*
频域分析:绘制并对比信号、干扰及混合信号的功率谱密度(PSD),直观展示超宽带信号与窄带干扰的频谱重叠情况。
* 支持固定SIR下,扫描SNR的误码率曲线仿真。
* 支持固定SNR下,扫描SIR的误码率曲线仿真。
系统要求
- MATLAB版本:建议 R2016b 或更高版本。
- 工具箱:Signal Processing Toolbox(用于频谱分析函数)。
使用方法
- 确保MATLAB的工作路径包含本项目的
main.m 文件。 - 直接运行
main 函数。 - 程序将依次执行:
* 参数初始化。
* 生成可视化波形图(Figure 1: 时域波形分析)。
* 生成频谱分析图(Figure 2: 频域PSD分析)。
* 控制台输出仿真进度(BER vs SNR 和 BER vs SIR 测试)。
* 仿真结束后生成性能曲线图(Figure 3: BER性能分析)。
代码实现逻辑详解 (main.m)
main.m 是整个仿真系统的入口,其逻辑流程严格遵循以下四个步骤:
1. 系统参数设置
代码首先定义了仿真的物理层参数和控制参数:
- 仿真控制:设置了可视化比特数(8 bits)和蒙特卡洛仿真比特数(5000 bits)。
- 脉冲参数:定义了脉冲成形因子
Tau (0.5ns)、脉冲重复周期 Tf (10ns) 和极高的采样率 fs (50GHz),以确保纳秒级脉冲的仿真精度。 - 干扰参数:设定窄带干扰中心频率
fc_nbi 为 2GHz,处于UWB频带内。 - 扫描范围:定义了SNR扫描范围 (0~12 dB) 和 SIR扫描范围 (-20~0 dB)。
2. 波形与频谱可视化
此部分用于直观展示信号特征,不涉及大量误码统计:
- 生成短序列随机比特。
- 调用
gen_uwb_bpsk 生成基带UWB信号。 - NBI生成:依据设定的可视化信干比(-5dB),计算正弦波幅度,并加入随机相位
2*pi*rand。 - 噪声添加:依据设定的高信噪比(20dB),叠加AWGN。
- 绘图:如果不关闭图形窗口,将输出时域三段波形图和PSD频谱对比图,展示以2GHz为中心的窄带干扰尖峰如何刺破UWB的宽带谱。
3. BER 性能仿真 (Monte Carlo)
这是仿真的核心计算部分,分为两个独立的循环测试:
* 固定干扰强度(SIR = -5dB)。
* 遍历
EbNo_dB_Range。
* 在每一轮循环中,根据当前的SNR目标计算噪声功率方差。
* 合成接收信号:
Tx + NBI + AWGN。
* 调用接收机函数解调并计算误码率。
* 固定噪声背景(SNR = 10dB)。
* 遍历
SIR_dB_Range。
* 在每一轮循环中,根据当前的SIR目标调整窄带干扰信号的幅度。
* 注意:代码中SIR越小(如 -20dB),表示干扰信号功率远大于UWB信号功率。
* 合成接收信号并统计误码率。
4. 结果绘图
利用
semilogy 绘制对数坐标下的误码率曲线:
- 左图:展示在强干扰环境下,随着SNR增加系统性能的改善情况。
- 右图:展示在固定噪声环境下,随着SIR增加(干扰减弱),误码率下降的趋势。
关键算法与函数分析
1. 高斯二阶导数脉冲 (gaussian_pulse)
代码采用了UWB领域经典的 Ricker Wavelet 作为基脉冲。
y = (1 - 4 * pi * (t/tau)^2) * exp(-2 * pi * (t/tau)^2)
- 特性:该波形在直流处(DC)的功率谱密度为零,符合UWB信号不含直流分量的要求。
2. BPSK 信号生成 (gen_uwb_bpsk)
该函数实现了脉冲位置和极性的映射。
- 帧结构:根据帧周期
Tf 和采样率 fs 计算每帧的采样点数。 - 调制逻辑:
* 输入比特
0 -> 极性
+1
* 输入比特
1 -> 极性
-1
* 亦可理解为一种带极性的脉冲幅度调制(PAM)。
- 模板输出:函数同时输出了单个脉冲波形
template,供接收端进行相关检测使用。
3. 窄带干扰建模
在主循环中,NBI信号被建模为:
nbi_sig = A * cos(2*pi*fc*t + phi)
- 其中
A 由信号功率及目标SIR动态计算得出。 phi 为 2*pi*rand,即在0到2π间均匀分布的随机相位,模拟了非相干干扰源的特性。
4. 信号接收 (uwb_receiver)
虽然
main.m 结尾处未显示该函数的具体定义,但根据调用方式
uwb_receiver(rx_vec, temp_mc, Tf, ...) 可知:
- 该函数采用相干检测(Coherent Detection)或相关接收机原理。
- 利用发送端生成的理想脉冲模板
temp_mc 与接收信号进行滑动相关或分段相关,通过判决相关值的正负来恢复原始比特流。