感知无线电环境下的频谱感知时间与次用户吞吐量权衡优化仿真项目说明
项目介绍
本项目专注于认知无线电(Cognitive Radio)技术中的核心挑战:如何在保证主用户(Primary User, PU)不受到严重干扰的前提下,最大化次用户(Secondary User, SU)的数据传输效率。在典型的认知无线电帧结构中,次用户需要分配一部分时间进行频谱监测(感知),剩余的时间用于数据传输。感知时间越长,检测概率越高,对主用户的保护越好,但留给传输的时间就越少。本项目通过建立能量检测器模型,定量分析感知时长与次用户平均吞吐量之间的折中关系,并通过数值仿真寻找最优的感知时间配置。
功能特性
- 吞吐量折中分析:模拟在不同感知信噪比(SNR)下,次用户吞吐量随感知时间变化的曲线,并自动标注最优平衡点。
- 最优感知时长搜索:利用数值优化算法,计算在不同感知信噪比环境下,能够使吞吐量最大化的理论最佳感知时间。
- 检测性能评估:提供固定虚警概率下的检测概率随信噪比变化的趋势分析,对比不同感知时长对检测灵敏度的影响。
- 系统ROC特性分析:生成受试者工作特征(ROC)曲线簇,展现不同感知时长下虚警概率与检测概率之间的制衡关系。
- 统计验证:内置蒙特卡洛仿真模块,通过生成随机信号与噪声样本,验证能量检测理论公式在实际统计环境中的准确性。
系统要求
- 软件环境:MATLAB R2016b 及以上版本。
- 所需的工具箱:主要使用标准数学函数与优化函数,基本安装版 MATLAB 即可运行,不依赖特定的通信工具箱。
实现逻辑与功能细节
该仿真程序按照以下逻辑顺序构建:
1. 系统参数初始化
程序设定了基础的物理层参数:采样频率固定为 6MHz,总帧时长为 100ms。定义了主用户的活跃概率(20%)及对应的空闲概率。同时设定了次用户在不同场景下的信道容量计算标准,包括主用户不存在时的理想容量和主用户存在时的受干扰容量。
2. 吞吐量目标函数构建
程序的核心逻辑是计算次用户的平均吞吐量。该指标通过以下公式加权得出:
- 当主用户实际上不存在(H0状态)且感知正确(未产生虚警)时的传输收益。
- 当主用户实际上存在(H1状态)但感知失败(漏检)时的带干扰传输收益(尽管通常由于保护主用户而希望避免此情况,但模型中包含此项以完整体现物理过程)。
- 感知时长占用了帧周期,因此收益会乘以有效的传输时间比例。
3. 检测概率与虚警概率的理论映射
利用高斯近似下的能量检测模型,程序通过目标虚警概率(0.1)和样本数(感知时间与采样率的乘积)推算出检测概率。这一步体现了感知时间对检测准确性的直接增益,是后续寻找最优解的基础。
4. 最优化搜索算法
为了寻找最优感知时长,程序采用了两种方式:
- 网格搜索:在指定的感知时间范围内进行等间隔采样,通过计算对比得出离散的最优解。
- 函数寻优:通过内置的非线性寻优函数 fminbnd,对吞吐量负目标函数进行极小值搜索,从而精确定位不同信噪比下的最优感知时间点。
5. 蒙特卡洛统计验证
为了确保理论模型的可靠性,程序实现了一个实验验证模块:
- 生成成千上万组复高斯白噪声样本模拟 H0 假设。
- 生成信号加噪声样本模拟 H1 假设。
- 计算样本序列的能量统计量。
- 计算在理论阈值下,实验观察到的虚警次数和检测次数,并与理论计算结果进行比对输出。
关键函数与实现细节
- 自定义Q函数实现:程序内部实现了标准正态分布的右尾函数(qfunc)及其反函数(qfuncinv),用于计算检测概率和确定判决阈值。
- 信噪比映射:所有的信噪比均从分贝(dB)转化为线性刻度,以满足数学公式的计算要求。
- 向量化计算:在处理 ROC 曲线和检测性能曲线时,采用了 arrayfun 或显式循环的方式处理变量序列,确保平滑绘制不同参数下的性能差异。
- 能量检测器公式逻辑:在给定感知时间 τ 的情况下,采样数 N = τ * fs。利用公式将虚警概率、信噪比和 N 关联,通过消去能量判决阈值,直接建立检测概率关于虚警概率的函数。
仿真结论描述
通过运行该程序,可以直观地观察到:
- 峰值效应:吞吐量曲线呈现先上升后下降的趋势,存在唯一的最优感知时长。
- SNR 相关性:随着感知信噪比的提高,所需的感知时间逐渐缩短,而系统能达到的最大吞吐量则相应增加。
- 鲁棒性验证:蒙特卡洛实验结果通常与理论推导保持高度一致,证明了基于采样理论建立的能量检测模型的有效性。