认知无线电频谱感知仿真平台
项目介绍
本项目是一款基于MATLAB开发的认知无线电频谱感知仿真系统。频谱感知是认知无线电(CR)的核心技术,旨在实时监测无线环境,精准识别授权用户(Primary User)是否存在。本平台重点模拟了物理层的信号检测过程,涵盖了从信号调制、信道干扰到接收端检测的全流程。通过量化的性能指标对比分析,为研究人员提供了一个直观、科学的算法验证环境,有助于深入理解不同感知算法在实际无线通信环境(如AWGN信道与多径衰落信道)下的表现。
功能特性
- 算法多样化:集成了能量检测法、匹配滤波器法以及循环平稳特征检测法三种主流技术方案。
- 真实环境模拟:实现了BPSK信号的生成,模拟了多径衰落(通过自定义滤波器模拟路径延迟与增益)及加性高斯白噪声(AWGN)对信号的影响。
- 全面的性能评估:支持自动生成检测概率(Pd)随信噪比(SNR)变化的曲线,以及反映虚警概率(Pfa)与检测概率关系的ROC曲线。
- 统计仿真保障:基于蒙特卡罗方法进行多次迭代计算,通过统计学数据确保仿真结果的准确性和稳定性。
- 参数化配置:支持自定义采样频率、载波频率、感知时长、SNR范围等物理层关键参数。
核心算法实现细节
本项目通过MATLAB代码精确实现了以下三种检测逻辑:
- 能量检测 (Energy Detection)
实现原理:该算法最为简洁,无需任何先验知识。系统计算接收信号在观测时长内的平均能量,并将其与预设阈值对比。
阈值处理:根据虚警概率目标值,利用逆Q函数(qfuncinv)和噪声方差动态计算判定阈值。
- 匹配滤波 (Matched Filtering)
实现原理:在已知授权用户信号波形的假设下,系统将接收信号与本地参考信号进行互相关运算。当互相关峰值超过设定阈值的判定为存在信号,这是信噪比最优的检测方法。
阈值处理:程序通过统计H0假设(仅噪声)下的分布特性,利用百分位数(Percentile)方法或高斯分布理论推导确定阈值。
- 循环平稳特征检测 (Cyclostationary Feature Detection)
实现原理:利用受调信号具有周期性的特点,在特定的循环频率(如载波频率的两倍)处提取信号分量。由于噪声不具备这种周期性,该方法在低信噪比下能有效区分噪声与信号。
阈值处理:通过对纯噪声环境下的循环相关统计量进行建模,利用非参数化方法确定检测门限。
仿真逻辑流程
- 参数初始化:定义采样率(1MHz)、载波频率(100kHz)、感知时间(1ms)及仿真次数。
- 信号发射:生成随机BPSK序列,进行矩形脉冲成形并调制到载波上。
- 信道传输:
- 模拟多径效应:通过3抽头滤波器引入不同延迟和增益的路径信号。
- 叠加噪声:根据信噪比范围(-25dB至5dB)向信号注入高斯白噪声。
- 感知检测:
- 算法并行计算:分别调用三种感知逻辑。
- 假设检验:在H1(信号+噪声)和H0(纯噪声)下计算统计量,判断是否检测成功。
- 数据绘图:统计所有蒙特卡罗循环的结果,计算Pd,最终绘制性能对比图表。
关键辅助函数
为了提高代码的可移植性和计算精度,系统内置了以下数学工具函数:
- 逆Q函数实现:利用erfinv函数实现,用于计算正态分布下的概率反函数。
- Q函数实现:基于erfc函数实现,用于评估高斯噪声环境下的检测误码及虚警概率。
系统要求
- 软件环境:MATLAB R2016b 及以上版本
- 必备工具箱:信号处理工具箱(Signal Processing Toolbox)、通信系统工具箱(Communications Toolbox)。
使用方法
- 启动MATLAB软件。
- 打开仿真代码文件,直接点击“运行”按钮。
- 系统将先后执行“SNR性能分析仿真”和“ROC曲线分析仿真”。
- 仿真结束后,程序将自动弹出图形窗口,展示不同算法在不同环境下的性能对比曲线。
- 观测主界面的命令行窗口,可查看仿真进度。