Joint Approximative Diagonalization of Eigen matrix (JADE)
特征矩阵联合相似对角化算法[1]。
Cardoso于1993年提出的盲信号分离具有代表性的一种算法。是一种基于四阶累积量特征矩阵近似联合对角化盲分离算法。该算法将目标函数最大化问题等价于一组四阶累积量矩阵的特征矩阵的联合对角化问题,不仅大大简化了算法的计算复杂度,同时还有效提高了算法的分离性能。
原理
JADE算法原理就是将白化后的混合信号的四阶累积量矩阵(或二阶相关矩阵)通过U变换,压缩为一个对角矩阵,从而求解酉矩阵U。

白化
信号模型如式x(t) = As(t)所示,源信号之间相互统计独立。由于盲分离问题中,源信号的真实幅度不可解,为方便算法研究,一般通过去均值化等数学方法将各个源信号分量转化为零均值且方差为1的随机变量。白化数据是JADE算法的第一步,通过白化可以恢复信号之间的二阶独立性。对观测信号的相关矩阵进行特征分解:
白化矩阵:
白化信号
有:


显然,矩阵 V 为正交矩阵。JADE 算法的目的就是寻找一个正交矩阵U = VJP ,使源信号分离:

其中 P为置换矩阵,J 为对角矩阵。
对照函数

根据四阶累积量的平方和性质易知,对照函数式(2.8)的最大化等价于除c(U) 所包含的四阶累积量之外的所有互累积量平方和的最小化,因此可以实现信号分离。然而对照函数的计算非常复杂,难以实用化。但所幸的是 Cardoso 证明,它与一组矩阵的联合对角化等价,而且这组矩阵包含了所有四阶累积量,因而不但减少了算法的运算量,同时还提高了算法的分离性能。
JADE
给定一个矩阵集合N={Nr|1≤r≤s},一个酉矩阵U对其联合对角化等价于下面目标函数的最大化:

一般情况下,矩阵集合N不能同时完全被酉矩阵U联合对角化,只能近似对角化,因此称之为联合近似对角化。定义矩阵集合:

Cardoso等人已证明,对于这个矩阵集存在如下等式:

则对照函数最大化问题转化成了一组矩阵的联合近似对角化问题。为进一步简化算法,Cardoso等已证明可将四阶累积量矩阵用特征矩阵表示。对于任一给定矩阵
,定义矩阵
,

对于任意的K维具有四阶累积量的随机矢量z,存在K2个实数
和N2个N×N阶特征矩阵Mi满足下式:

利用随机矢量z(t)的所有四阶累积量构造K2×K2矩阵Cz,对Cz作特征值分解即可得到特征值及特征矩阵(由N2维的特征向量反堆栈为N×N特征矩阵),将特征值按由大到小的顺序排列,取前K个特征值及对应的特征矩阵组成累积量特征矩阵集合
,对这组矩阵进行近似联合对角化就可求得酉矩阵U,进而实现源信号的分离。
参考文献
[1] Cardoso J F, Souloumiac A. Blind Beamforming for non Gaussian Signals[J]. IEE Proc.-F, 1993, 140(6):362-370.
[2] 熊坤来. 盲分离及其在阵列信号处理中的应用研究[D]. 国防科学技术大学, 2015.
Joint Approximative Diagonalization of Eigen matrix (JADE)的更多相关文章
- Eigen::Matrix与array数据转换
1. 数组转化为Eigen::Matrix ]; cout << "colMajor matrix = \n" << Map<Matrix3i> ...
- eigen Matrix详解
Eigen Matrix 详解 在Eigen中,所有的matrices 和vectors 都是模板类Matrix 的对象,Vectors 只是一种特殊的矩阵,行或者列为1. Matrix的前三个模板参 ...
- Eigen库矩阵运算使用方法
Eigen库矩阵运算使用方法 Eigen这个类库,存的东西好多的,来看一下主要的几个头文件吧: ——Core 有关矩阵和数组的类,有基本的线性代数(包含 三角形 和 自伴乘积 相关),还有相应对数组的 ...
- Eigen介绍及简单使用
博客转载自:https://blog.csdn.net/fengbingchun/article/details/47378515 Eigen是可以用来进行线性代数.矩阵.向量操作等运算的C++库,它 ...
- Eigen库笔记整理(一)
首先熟悉Eigen库的用途,自行百度. 引入头文件: // Eigen 部分 #include <Eigen/Core> // 稠密矩阵的代数运算(逆,特征值等) #include < ...
- 使用Eigen遇到恶心报错
参考博客:https://www.cnblogs.com/wongyi/p/8734346.html 1. 数据类型报错 /home/wy/workdir/slambook/ch3/useEigen/ ...
- eigen矩阵操作练习
// // Created by qian on 19-7-16. // /* 相机位姿用四元数表示 q = [0.35, 0.2, 0.3, 0.1] x,y,z,w * 注意:输入时Quatern ...
- 机器人关节空间轨迹规划--S型速度规划
关节空间 VS 操作空间 关节空间与操作空间轨迹规划流程图如下(上标$i$和$f$分别代表起始位置initial和目标位置final): 在关节空间内进行轨迹规划有如下优点: 在线运算量更小,即无需进 ...
- A Beginner’s Guide to Eigenvectors, PCA, Covariance and Entropy
A Beginner’s Guide to Eigenvectors, PCA, Covariance and Entropy Content: Linear Transformations Prin ...
随机推荐
- Codeforces Round #604
Beautiful Regional Contest 题意 题解 代码 Beautiful Sequence 题意 题解 代码 一个思路不够清晰的代码 Beautiful Mirrors with q ...
- js中常见字符串类型操作方法(2)
toLowerCase(),toLocalLowerCase(),toUpperCase(),toLocaleUpperCase() var stringValue = "hello wor ...
- docker的容器和镜像的清理
Docker用户会在使用docker一段时间后发现宿主机的磁盘很容易就快被占满,并且手动docker rmi [imgName]似乎并不能释放磁盘,貌似想删掉的镜像依然在宿主机中,下面针对这一问题提出 ...
- CF1109F Sasha and Algorithm of Silence's Sounds LCT、线段树
传送门 构成一棵树可以分成两个限制:图不成环.图的点数-边数=1. 我们考虑枚举右端点\(r\)计算所有可能的左端点\(l\)的答案.我们先考虑第一个限制:图不成环.注意到当\(r\)确定的时候,满足 ...
- 转!!通俗理解数字加密,数字签名,数字证书和https
原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...
- Deploy custom service on non hadoop node with Apache Ambari
1 I want to deploy a custom service onto non hadoop nodes using Apache Ambari. I have created a cu ...
- Java visualvm
简介 VisualVM是一个集成多个JDK命令行工具的可视化工具.可以作为Java应用程序性能分析和运行监控的工具.开发人员可以利用它来监控.分 析线程信息,浏览内存堆数据.系统管理员可以利用它来监测 ...
- ABAP-System Functions
ABAP_CALLSTACK ABAP_CRC64 ABAP_PRECOMPILED_HEADER_USAGE ABSTOR_TEST AB_CALL_LITL_CHECK AB_CALL_STACK ...
- React-Native中使用到的一些JS特性
React Native - 调试技巧及调试菜单说明(模拟器调试.真机调试) https://www.hangge.com/blog/cache/detail_1480.html 1,解构赋值——de ...
- 3.live555源码分析----延时队列
live555本身是一个单进程.单线程的服务器,但是它能够完美的让多个客户端同时连接,除了使用select并发编程以外,延时队列是很重要的手段. 当连接一个客户端,进行视频帧传输的时候,是不能持续进行 ...