基于特征函数张量分解的欠定MIMO系统识别工具箱
项目简介
本项目构建了一套完整的MATLAB算法库,专注于解决欠定MIMO(多输入多输出)系统的盲辨识与源分离难题。不同于传统的二阶统计量方法,本项目基于统计信号处理理论,利用接收信号的二类特征函数(Second Characteristic Function, SCF)生成包含高阶统计特性的四阶累积量张量。
针对欠定盲源分离(源信号数量多于传感器数量)的挑战,项目核心采用了 Levenberg-Marquardt (LM) 算法与交替最小二乘法 (ALS) 相结合的混合优化策略,用于求解张量的 Canonical Polyadic (CP) 分解。这种设计旨在利用ALS的快速迭代特性和LM算法在非线性最小二乘问题中的高稳健性,实现对混合矩阵的高精度估计。
功能特性
- 欠定系统支持:专为源信号数量大于传感器数量($N > M$)的场景设计,演示了4个源信号和3个传感器的配置。
- 高阶张量构建:基于二类特征函数计算四阶累积量张量,有效抑制高斯噪声并提取非高斯信号特征。
- 混合优化算法:集成LM算法与ALS算法,通过阻尼因子和交替精细搜索策略,提高低信噪比下的收敛速度和估计精度。
- 完整通信链路仿真:包含QPSK信号生成、复数信道混合、加性高斯白噪声(AWGN)、盲辨识与信号恢复的全过程。
- 多维性能评估:提供误符号率(SER)、Amari系数(混合矩阵估计误差)、信干比(SIR)等关键指标计算。
系统要求
- MATLAB R2016a 或更高版本
- 无需额外工具箱(代码通过基础矩阵运算实现)
算法实现与逻辑详解
本项目的主程序完整实现了从数据生成到结果可视化的全流程,具体逻辑如下:
1. 系统初始化与参数配置
程序首先定义了系统的拓扑结构,默认设定源信号数量为4,传感器数量为3。通过配置信噪比(SNR)、最大迭代次数、收敛阈值以及LM算法的初始阻尼因子,为后续的仿真提供环境参数。
2. 信号生成与混合观测
- 源信号:生成具有非高斯特性的QPSK调制信号,满足独立性假设,且适用于高阶统计量分析。
- 混合矩阵:随机生成复数混合矩阵,并对列向量进行归一化处理,以消除幅度的缩放模糊性。
- 信道模型:模拟线性时不变的瞬时混合模型,并叠加指定功率的高斯白噪声。
- 预处理:对接收到的观测数据进行去均值处理。
3. 基于SCF的张量构建
这是算法的核心数据预处理步骤。程序通过自定义函数计算观测信号的四阶累积量张量。
- 利用二类特征函数的导数性质,计算四阶矩。
- 从四阶矩中减去由二阶矩(协方差矩阵 R 和 U)构成的高斯分量,从而得到纯净的四阶累积量。
- 构建出的张量维度为 $M times M times M times M$,包含源信号方向的关键几何信息。
4. 混合LM-ALS张量分解
程序调用混合优化解算器对构建的张量进行CP分解:
- 目标:寻找最佳的因子矩阵以逼近观测张量。
- 混合策略:结合ALS(交替最小二乘)进行快速子空间搜索,并定期穿插LM(Levenberg-Marquardt)步进以利用阻尼因子处理病态条件或陷入局部极小值的情况。
- 模糊性消除:分解完成后,通过列排列匹配算法,消除盲辨识固有的排列模糊和相位模糊,以便与真实混合矩阵进行对比。
5. 源分离与波形恢复
在获得混合矩阵的估计值后,程序尝试恢复源信号:
- 欠定恢复策略:演示了基于伪逆(Least Squares)的初步恢复方法。虽然在欠定条件下伪逆无法完全解耦信号,但在高信噪比下能反映恢复趋势。
- 硬判决:针对QPSK信号特性,对初步恢复的连续信号进行星座图投影和硬判决,以计算误符号率。
6. 性能评估与可视化
程序最后输出详细的量化指标和图表:
- Amari Index:量化估计的混合矩阵与真实矩阵之间的差异(以dB为单位)。
- SIR (Signal-to-Interference Ratio):计算恢复信号后的平均信干比。
- SER (Symbol Error Rate):基于硬判决结果计算误符号率。
可视化图表包括:
- 收敛曲线:展示拟合误差随迭代次数下降的趋势。
- 混合矩阵对比:分别展示实部和虚部的真实值与估计值的系数匹配情况。
- 星座图:绘制前3个源信号的软估计散点、硬判决结果与原始星座点的对比,直观展示分离效果。
使用方法
直接运行主脚本即可启动仿真。控制台将实时打印各阶段的处理进度,包括张量构建完成提示、算法迭代过程、最终的误码率和混合矩阵估计精度。运行结束后,会自动弹出包含六个子图的综合结果窗口。