软件定义的认知无线电应用与MATLAB仿真系统
通过MATLAB仿真的形式,本系统深入探索了软件定义无线电(SDR)与认知无线电(CR)的关键技术。它模拟了一个多载波通信环境,通过实时频谱检测与决策,实现了次用户(Secondary User, SU)对主用户(Primary User, PU)空闲频段的智能接入。
项目介绍
认知无线电是解决频谱资源短缺的核心技术。本项目展示了如何通过软件定义的方式,赋予无线电设备感知周围频谱环境的能力。系统集成了信号模拟、噪声抑制前的能量计算、频谱占空状态判定及次用户的动态接入算法。通过高精度的数学模型(如Q函数判决)评估系统性能,为实际硬件部署提供了理论基础和算法原型。
功能特性
- 多子信道环境模拟:系统将1MHz的总带宽划分为8个独立的子信道,并根据预设向量模拟主用户在各个频段的占用状态。
- 动态信号生成:采用余弦载波结合随机调制信号模拟真实的物理层传输过程。
- 基于能量检测的频谱感知:利用周期图法(Periodogram)计算功率谱密度(PSD),通过积分判决算法实现非相干能量检测。
- 智能频谱分配策略:次用户能够自动识别当前检测到的空闲频段,并通过随机选择算法接入其中一个可用信道,避免对主用户造成干扰。
- 理论性能验证:计算并绘制接收机工作特性(ROC)曲线,对比在给定信噪比(SNR)下虚警概率(Pfa)与检测概率(Pd)的关系。
- 多维度数据可视化:通过四路图表实时展示原始状态、频谱密度、性能指标和分配结果。
系统要求
- MATLAB R2016b 或更高版本。
- Signal Processing Toolbox(信号处理工具箱):用于功率谱估计、erfinv 和 erfc 等数学函数。
系统核心逻辑实现说明
系统的核心逻辑遵循以下流程:
1. 参数初始化与环境建模
设置采样频率为 1MHz,仿真步长为 10ms。主用户(PU)的活动被建模为一个 8 位二进制向量。每个被占用的频段通过其中心频率处的载波信号与随机高斯过程叠加生成。
2. 接收端处理与噪声模拟
系统向混合信号中添加高斯白噪声(AWGN),模拟真实无线环境。通过计算纯噪声样本的平均功率,结合阈值系数(预设为1.5),动态确定频谱感知的判定门限。
3. 能量检测算法(Spectrum Sensing)
接收信号经过矩形窗口处理后进行周期图功率谱估计。系统遍历 8 个子信道所在的频率范围,通过计算该频率区间内功率谱密度的均值来估算子信道能量。若能量超过门限,则标记该信道为占用状态。
4. 动态接入逻辑
基于感知结果,系统筛选出所有标记为“0”(空闲)的信道。次用户(SU)采用机会性接入策略,在所有备选空闲信道中随机抽取一个进行占用。
5. 性能评估数学模型
系统通过理论模型计算检测胜算。使用 Q 函数的逆函数处理虚警概率范围,结合线性信噪比(SNR)和采样点数,推导出检测概率的理论值,从而生成 ROC 曲线评价感知的可靠性。
关键函数与算法分析
- 周期图法(Periodogram)功率谱估计:这是系统频谱感知的核心。它通过对加窗信号进行快速傅里叶变换,将时域信号转换为频域能量分布,为后续的能量积分提供依据。
- 能量判决算法(Energy Detection):这是一种非相干检测技术,不需要已知的 PU 信号先验知识。其鲁棒性主要依赖于噪声功率的准确估算及门限(Lambda)的选取。
- Q-Function (erfc/erfinv) 性能计算:系统利用互补误差函数及其逆函数,精确模拟了在存在噪声干扰下,检测概率随着虚警概率变化的数学关系,这在认知无线电研究中是衡量感知精度最重要的指标。
- 双层柱状图可视化:采用叠加(Stacked)柱状图展示 PU 与 SU 的并存状态,直观反映了动态分配结果是否实现了频谱空洞的填充。
使用方法
- 启动 MATLAB 软件环境。
- 将工作目录切换至包含该代码的项目文件夹。
- 在命令行窗口输入该程序的函数名并回车运行。
- 观察控制台输出的空闲信道索引以及次用户接入的具体位置。
- 分析弹出的图形窗口,对比“原始状态 vs 感知状态”以验证检测算法的准确性,并参考 ROC 曲线评估当前 SNR 环境下的系统性能极限。