基于 ESPRIT 算法的到达角估计 MATLAB 实现
项目介绍
本项目采用 MATLAB 编程语言实现了 ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法。ESPRIT 算法是一种高分辨率的信号参数估计技术,特别适用于均匀线性阵列(ULA)接收信号的到达角(Direction of Arrival, DOA)估计。该项目利用信号子空间的旋转不变性特性,通过精确的矩阵分解和最小二乘估计,能够有效提取多个空间信号的入射角度。
功能特性
- 到达角估计: 基于阵列接收信号,精确估计多个信号源的到达角。
- 信号子空间分解: 通过对接收数据协方差矩阵进行特征分解,提取信号子空间与噪声子空间。
- 旋转不变性利用: 利用信号子空间的旋转不变性特性构造矩阵方程,求解角度参数。
- 性能评估与可视化: 提供估计误差、计算时间等性能指标,并绘制信号空间分布图和特征值谱分析图,用于结果验证与分析。
使用方法
- 准备输入数据: 准备一个复数形式的阵列接收信号矩阵,其维度为 阵元数量 × 采样点数。
- 设置关键参数: 设定阵元间距(以波长为单位,通常为0.5倍波长)、待估计的信号源数量以及阵列类型参数(默认为均匀线性阵列)。
- 运行主程序: 执行主程序,算法将自动进行信号预处理、参数估计和结果计算。
- 查看输出结果: 程序输出估计得到的到达角度数组(单位:度),并在命令窗口显示性能指标。同时,自动生成结果可视化图形界面。
系统要求
- MATLAB 版本: R2016a 或更高版本。
- 必要工具箱: 信号处理工具箱(Signal Processing Toolbox)。
文件说明
主文件包含了从数据加载、模型参数设置到最终结果可视化的完整流程。其核心能力包括:对输入信号进行协方差矩阵计算及特征值分解以估计信号源数量;构建信号子空间并利用其旋转不变性求解到达角;通过最小二乘法进行参数拟合以确保估计精度;计算算法运行时间与估计均方误差等性能指标;自动绘制包含真实角度与估计角度对比的空间谱图以及特征值分布谱。