认知无线电智能频谱感知与动态接入仿真系统
项目简介
本项目是一个基于MATLAB开发的认知无线电(Cognitive Radio, CR)仿真平台。该系统旨在模拟次级用户(Secondary Users)在复杂的电磁环境中,通过多种频谱感知算法探测主要用户(Primary Users)的信号状态,并依据感知结果进行动态频谱接入(DSA)决策。项目集成了信号生成、信道衰落模拟、统计检测算法以及功率控制逻辑,能够全方位评估认知无线电系统的检测性能与接入策略的有效性。
功能特性
- 多维度频谱感知算法库:实现了能量检测(ED)、匹配滤波器检测(MF)和循环平稳特征检测(CFD)三种核心算法,覆盖了从盲检测到利用先验知识的多种场景。
- 逼真的信道环境模拟:支持加性高斯白噪声(AWGN)信道和瑞利(Rayleigh)衰落信道,模拟实际无线通信中的多径效应和噪声干扰。
- 统计性能评估:基于蒙特卡洛(Monte Carlo)方法,自动生成接收机操作特性(ROC)曲线和检测概率与信噪比(Pd vs SNR)的关系曲线。
- 自适应阈值校准:包含自动校准模块,能够根据预设的虚警概率(Pfa)目标,利用纯噪声统计数据动态计算判决门限。
- 动态频谱接入(DSA)演示:模拟了认知节点的决策引擎,根据感知结果智能选择“Overlay”(覆盖式)或“Underlay”(衬底式)接入模式,并进行发射功率控制以满足干扰温度约束。
系统要求
- MATLAB R2016b 或更高版本
- Signal Processing Toolbox(信号处理工具箱)
- Communications Toolbox(通信工具箱)
使用方法
直接运行 main.m 脚本即可启动仿真。系统将按照预设流程依次执行初始化、阈值校准、ROC性能仿真、灵敏度仿真、DSA逻辑演示,并在最后弹出图形窗口展示综合分析结果。
---
详细功能实现与逻辑说明
本项目的主程序 main 按照模块化设计,严格遵循以下执行逻辑:
1. 系统初始化
程序首先定义仿真参数,包括采样率(1 MHz)、载波频率(100 kHz)、QPSK调制方式以及信号长度。同时设置了信噪比扫描范围(-20dB 至 10dB)和蒙特卡洛仿真次数。
2. 阈值校准模块
为了确保对比的公平性,系统首先在纯噪声环境下运行蒙特卡洛模拟。通过统计三种算法在仅噪声条件下的输出分布,计算出满足目标虚警概率(Target Pfa = 0.1)的判定阈值。这些阈值将直接用于后续的“Pd vs SNR”性能评估。
3. ROC 性能评估(固定 SNR)
在固定的信噪比环境(-10dB)下,系统评估检测性能。
- 逻辑:遍历一系列虚警概率目标(0.01 到 1.0)。
- 实现:对于每一个Pfa点,利用噪声统计量的百分位数(prctile)动态确定对应的门限,然后统计在存在信号(H1假设)时的检测成功率。
- 输出:生成三条ROC曲线,展示不同算法在相同SNR下的性能差异。
4. 灵敏度评估(Pd vs SNR)
在固定的虚警概率(Pfa = 0.1)约束下,评估不同信噪比环境下的检测概率。
- 信道模型:此阶段特别引入了瑞利衰落信道,以测试算法在恶劣信道下的鲁棒性。
- 实现:遍历SNR范围,利用模块2中校准好的阈值进行判决,计算每种算法的检测概率。
5. 动态频谱接入(DSA)与功率控制
模拟单个时间片内的认知无线电决策过程。
- 环境模拟:随机生成PU(主要用户)是否存在,若存在则赋予随机的低信噪比。
- 感知判决:主要使用能量检测算法,计算接收信号能量并与动态门限比较,判断频谱状态(忙/闲)。
- 接入策略:
*
结果为空闲:判定为“Overlay模式接入”,允许认知用户以最大功率(如23dBm)发送数据。
*
结果为占用:判定为“Underlay模式接入”,此时系统根据设定的干扰温度阈值(Interference Threshold)和预估的信道增益,计算最大允许发射功率,强制降低功率以避免干扰主要用户。
6. 结果可视化
最后绘制综合性能图表:
- ROC曲线对比图(展示算法的统计特性)。
- 检测概率随SNR变化图(展示算法的抗噪性能)。
- 循环平稳特征示意图(展示信号平方后的频域特征)。
---
关键算法与实现细节
系统内部实现了以下核心子函数来支撑上述逻辑:
信号生成 (generate_pu_signal)
生成主要用户(PU)信号。采用QPSK调制,经过升余弦脉冲成型(这里使用简单的矩形脉冲
rectpulse 模拟过采样),并调制到指定的载波频率
fc 上。最终信号被归一化处理。
信道模型 (apply_channel)
- AWGN:根据指定SNR计算噪声功率,叠加复高斯白噪声。
- Rayleigh:在噪声基础上,引入服从复高斯分布的瑞利衰落系数
h,模拟平坦衰落环境。
频谱感知算法库
- 能量检测 (
energy_detection)
*
原理:计算接收信号幅度的平方和的均值。
*
特点:实现简单,不需要先验知识,但受噪声不确定性影响大。
- 匹配滤波器检测 (
matched_filter)
*
原理:利用已知的导频信号(Pilot)与接收信号进行互相关运算(点积的模平方)。
*
特点:在理想同步下性能最优,是最佳线性检测器。
- 循环平稳特征检测 (
cyclostationary_detection)
*
原理:利用通信信号的周期性统计特征。
*
实现:代码中采用了一种简化的特征提取方法。通过对接收信号进行平方运算(
signal.^2),这将使QPSK/BPSK等信号在
2*fc 处产生离散谱线。算法检测
2*fc 频率处的峰值与背景噪声基底的比值作为检验统计量。这种方法能有效区分信号与平稳噪声。
DSA 决策逻辑 (demo_dsa_logic)
该函数展示了认知无线电的闭环逻辑:
感知 -> 决策 -> 执行。它不仅判断信道忙闲,还根据判断结果计算物理层的发射功率(Tx Power),体现了认知无线电“机会频谱接入”和“干扰控制”的核心思想。