空间谱估计原理与算法:线性预测(LP)算法实现
项目介绍
本项目严格基于《空间谱估计原理与算法》相关理论,实现了高分辨率阵列信号处理中的线性预测(Linear Prediction, LP)算法。线性预测算法的核心思想是将空间阵列看作一个随机过程滤波器,假设阵列中某一阵元的输出可以通过其相邻阵元的输出进行线性加权预测。通过最小化预测误差,求解出的最优系数向量包含了信号源的方位信息。该项目旨在通过仿真实验验证线性预测算法在均匀线性阵列(ULA)下的DOA估计性能,并探讨前向预测与前后向组合预测(FB-LP)对分辨率和稳定性的提升作用。
功能特性
- 全流程仿真模型:涵盖了从远场窄带信号产生、阵列流型矩阵构造到加性高斯白噪声添加的完整物理建模。
- 双算法对比:同时实现了基础的前向线性预测算法与改进的前后向组合线性预测算法。
- 高分辨率谱估计:相比传统波束形成技术,LP算法能提供更尖锐的谱峰和更高的分辨力。
- 自动化结果提取:具备自动谱峰搜索功能,能够直接计算估计值与真实值之间的绝对误差。
- 可视化分析:生成归一化的空间谱曲线图,直观展示信号能量在空间波域的分布情况。
实现逻辑
该项目的核心逻辑分为以下几个阶段:
- 阵列数据模拟:设置阵元数为8,间距为半波长。构造由两个不同角度(-15度和25度)入射的复高斯信号,并根据信噪比(SNR)叠加白噪声,形成快拍数据矩阵。
- 协方差矩阵估算:利用多快拍数据的统计特性,通过信号矩阵与其共轭转置的乘积计算样本协方差矩阵 R。
- 前向预测滤波器求解:
- 将协方差矩阵 R 划分为第一个阵元的自相关标量、其余阵元与第一个阵元的互相关向量,以及剩余阵元的协方差子矩阵。
- 建立正则方程(极小化预测误差功率)。
- 采用最小二乘法求解得出预测系数向量 w。
- 空间谱重构:构造由 [1; w] 组成的预测误差滤波器向量,在全空间范围(-90到90度)内通过扫描导向矢量,计算预测误差功率的倒数,从而获得空间谱。
- 前后向组合(FB-LP)增强:利用阵列的共轭对称性,构造前后向平滑后的协方差矩阵,依此重新计算预测系数,以增强算法在小样本或信号相关情况下的性能。
- 评估与展示:执行谱峰搜索提取DOA估计值,计算角度偏差,并绘制dB尺度的归一化空间谱图。
关键算法与算法细节
- 预测系数求解:算法通过求解 $w = -R_{22}^{-1} r_{21}$ 得到线性预测的最优权重。这一步是LP算法的核心,它利用了信号的空间自相关特性。
- 预测误差滤波器:构造的系数向量 $a_{lp}$ 实际上是一个全极点模型的逆滤波器,其零点会在信号到达角方向上靠近单位圆。
- 空间谱函数:利用公式 $P(theta) = 1 / |a^H a(theta)|^2$ 计算。当搜索角度 $theta$ 与实际信号入射角一致时,分母趋近于极小值,从而在空间谱上形成陡峭的峰值。
- 前后向处理:通过交换矩阵 J 和复共轭算子处理接收数据,扩大了有效观测窗口,提高了协方差矩阵估计的准确度。
使用方法
- 确保安装了包含信号处理工具箱的MATLAB环境。
- 运行实现代码的主控函数。
- 程序将自动在命令行窗口输出预测滤波器系数、真实入射角度、估计角度值以及绝对误差。
- 程序将弹出两个图形窗口:
- 窗口1:展示标准前向线性预测算法的空间谱及检测到的峰值。
- 窗口2:展示采用前后向组合线性预测(FB-LP)技术优化后的空间谱曲线。
- 开发者可以根据需要修改参数区中的阵元数、信噪比或信源角度来观察算法性能的变化。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 必备工具箱:Signal Processing Toolbox(用于执行 findpeaks 谱峰搜索函数)。
- 硬件环境:标准的通用计算机即可满足计算需求。