基于FAM算法的认知无线电循环平稳特征检测仿真
项目介绍
本项目基于MATLAB平台实现了一套认知无线电频谱感知仿真系统。核心算法采用FFT累加法(FAM, FFT Accumulation Method),用于在低信噪比(SNR)和噪声干扰环境下,对微弱的数字调制信号进行循环平稳特征检测。该仿真主要演示了针对BPSK调制信号的生成、处理、特征提取及检测性能评估的全过程。
功能特性
- 信号环境模拟:能够生成具有特定波特率和载波频率的BPSK调制信号,并叠加指定信噪比的高斯白噪声。
- 高效算法实现:集成了FAM算法的核心流程,相比传统带状相关法,能更高效地计算信号的谱相关密度(SCD)。
- 多维可视化分析:提供三维谱相关密度图和二维循环频率切片图,直观展示信号在双频域(循环频率-频谱频率)的统计特性。
- 自动化检测判定:内置基于统计特性的自适应阈值检测逻辑,自动判定目标信号是否存在。
- 性能评估体系:包含Monte Carlo仿真模块,通过多次试验绘制不同信噪比条件下的检测概率(Pd)曲线,评估算法鲁棒性。
系统要求
- MATLAB R2016a 或更高版本
- Signal Processing Toolbox(信号处理工具箱)
使用方法
直接运行主脚本即可启动仿真。程序将依次执行以下步骤:
- 初始化系统参数并生成演示信号。
- 调用FAM算法计算循环谱。
- 弹出图形窗口显示三维特征图及二维检测切片,并在控制台输出单次检测结果。
- 自动进入Monte Carlo性能评估阶段,仿真完成后绘制检测概率随SNR变化的折线图。
详细实现逻辑与代码分析
本项目的主程序(main.m)逻辑结构严谨,具体实现细节如下:
1. 系统参数配置
程序首先定义了全局仿真参数:
- 采样率设定为 2000 Hz,载波频率为 400 Hz,波特率为 100 Bd。
- 为配合FFT运算,信号持续时间设定为保证采样点数为2的幂次(2048点)。
- FAM算法特定参数:窗口大小(通道数)设为 64,抽取因子设为 16(即窗口大小的1/4)。
2. 信号生成与预处理
该模块负责构建“基带-搬移-加噪”的完整链路:
- 基带生成:利用随机整数生成器产生二进制比特流,映射为双极性码(-1, 1)。
- 脉冲成型:采用矩形脉冲(
rectpulse)对符号进行上采样,使其匹配系统采样率。 - 调制与加噪:将基带信号乘以余弦载波完成BPSK调制,随后根据预设的演示信噪比(-5 dB)添加高斯白噪声。
3. 核心算法:FAM谱相关密度计算
系统调用
fam_algorithm 函数执行核心运算:
- 输入:接收含噪信号、采样率及算法参数(窗口与步长)。
- 处理:记录运算时间,计算得到复数形式的谱相关密度矩阵(Sx)以及对应的循环频率向量和频谱频率向量。
- 后处理:对输出的复数矩阵取模(求幅度),并进行全局归一化处理,以便于后续的绘图和阈值判定。
4. 结果可视化与单次检测
可视化模块包含两个子图:
- 3D视图:绘制谱相关密度(SCD)曲面。为提高绘图效率,代码中对数据网格进行了2倍降采样。图中特意在 $2 times f_c$ (即800 Hz)处绘制了红色标记线,指示理论上的BPSK循环平稳特征峰位置。
- Alpha Profile(切片图):将二维SCD矩阵沿频谱频率轴取最大值,得到随循环频率变化的幅度曲线。
- 检测逻辑:
* 利用
findpeaks 函数寻找切片图中的峰值。
* 计算自适应检测阈值:
均值 + 4倍标准差。
* 特定检查 $2 times f_c$ 频率附近的幅度值,若超过阈值,则判定检测到主用户信号,并在图中标记。
5. Monte Carlo 性能评估
程序最后包含一个完整的性能仿真循环:
- 参数范围:扫描信噪比从 -15 dB 到 5 dB,步长 3 dB。
- 循环试验:每个SNR点下进行 50 次独立试验(为了演示速度)。
- 加速策略:在Monte Carlo循环中,调用FAM算法时减半了窗口分辨率(
Np/2),以牺牲少量精度换取仿真速度的提升。 - 动态判定:
* 每次试验均重新生成随机信号和噪声。
* 在该模块中,程序计算特定目标频率($2 times f_c$)附近的局部峰值。
* 实现了简化的恒虚警(CFAR)思想:排除直流和目标区域,利用剩余背景噪声统计量计算动态阈值。
* 统计超过阈值的次数,计算检测概率(Pd)并绘图。
6. 子函数逻辑 (FAM Algorithm)
虽然代码片段末尾截断,但从已有的实现可以看出:
- 函数首先进行信道化处理(Channelization),利用汉明窗(Hamming)对输入数据进行分段和STFT(短时傅里叶变换)计算。
- 它是整个系统的计算引擎,负责将时域信号转换为双频域(循环频率-频谱频率)的相关统计量。