基于能量检测与伪随机序列的多用户合作频谱感知系统
项目介绍
本项目是一个基于MATLAB开发的认知无线电(Cognitive Radio)仿真平台,专注于研究多用户合作频谱感知(Cooperative Spectrum Sensing)在复杂信道环境下的性能表现。系统模拟了主用户(PU)信号的生成、伪随机序列(PN)调制、通过多径瑞利衰落信道的传输过程,以及次级用户(SU)端的能量检测与中心节点的决策融合。通过该仿真架构,可以定量分析信噪比、虚警概率要求及协作用户数量对总检测概率的影响。
功能特性
- 信号增强技术:采用BPSK调制结合线性反馈移位寄存器(LFSR)生成的m序列进行扩频,增强信号的抗干扰能力和时频域鲁棒性。
- 复杂信道模拟:实现了包含多径瑞利衰落(Rayleigh Fading)和加性高斯白噪声(AWGN)的复合信道模型。
- 多准则决策融合:支持多种硬判决融合算法,包括逻辑或(OR)、逻辑与(AND)以及K秩准则(K-Rank/Majority)。
- 全方位性能评估:自动生成Pd-SNR曲线(检测概率与信噪比)、ROC曲线(检测概率与虚警概率)、以及不同用户规模下的性能对比图。
- 特征分析:内置伪随机序列自相关特性分析功能,用于展示信号的指纹特征。
使用方法
- 确保计算机已安装MATLAB(建议R2016b及以上版本)。
- 将该项目的脚本文件保存在MATLAB工作目录下。
- 在命令行窗口输入函数名称并回车运行。
- 程序将自动执行蒙特卡洛仿真过程,并在运行结束后弹出包含四个子图的性能分析界面。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件要求:建议 4GB 以上内存,仿真过程中涉及大量迭代计算,CPU主频越高运行越快。
实现逻辑与功能细节说明
脚本通过一个集成化的函数结构实现了从信号发射到结果评估的闭环仿真:
1. 系统参数初始化
设置仿真基础参数:信噪比范围从-25dB到0dB,次级用户数量默认为5个,目标虚警概率设定为0.1,采样点数为1024点。
2. 信号生成与处理模块
- 主用户发射:首先产生随机位流,进行BPSK调制。
- 指纹叠加:通过辅助函数生成31位的m序列(PN序列),利用Kronecker积对原始信号进行扩频处理,模拟信号的特征叠加。
- 信道传输:对每个次级用户分别生成独立的复高斯衰落因子,模拟空间分集下的瑞利衰落环境,并叠加对应信噪比的白噪声。
3. 本地感知模块(能量检测)
- 能量积分:次级用户对接收到的射频信号进行平方求和,计算观测样本的总能量。
- 理论门限计算:基于大样本高斯近似理论,利用逆Q函数(qfuncinv)和背景噪声功率,在给定预设虚警率(Pfa)的条件下计算各用户本地感知的动态门限。
4. 合作感知融合层
系统收集所有次级用户的1位二元判决结果(0或1),在中心节点进行融合:
- OR准则:只要有一个用户发现主用户,即判定主用户存在。
- AND准则:所有用户均发现主用户,方判定主用户存在。
- K秩准则:当超过半数(或设定值K)的用户报告发现信号时,判定主用户存在。
5. 性能统计与绘图
通过三层循环分别完成以下分析:
- Pd vs SNR:评估在不同信噪比下,四种判决准则的检测鲁棒性。
- ROC 曲线:在固定信噪比(-15dB)下,改变虚警概率边界,分析检测概率的变化情况。
- 用户规模影响:对比1、3、5、10个用户在合作感知下的性能提升幅度。
关键算法分析
- 能量检测算法:该算法不依赖主用户信号的先验信息,主代码中通过比对实时信号能量与基于噪声方差计算的理论门限来实现。门限计算公式考虑了复信号特性,确保了在目标Pfa下的检测准确性。
- PN序列生成:利用5阶线性反馈移位寄存器,其特征多项式对应代码中的反馈位处理。生成的序列具有良好的自相关特性(通过子图4展示),这在实际系统中可用于辅助信号识别与同步。
- 蒙特卡洛仿真:通过大量随机试验(1000次迭代)来消除随机噪声的影响,从而获得统计意义上的检测概率,确保了结果的实验可靠性。