MP/OMP

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37789876/article/details/82870420

MP算法是一个贪婪算法

MP的目的:是为了求出用那几个基向量来表示一个向量,并且求出对应的系数。
MP思想:我就疯狂的把向量往基向量上映射,映射一次就得到一个残差,继续把残差往基向量上映射,继续得到残差,继续映射。如果残差足够小,我就把这个东西忽略了,然后把之前在基向量映射过系数的加起来,我们就可以用基向量近似表示一个向量了(前提是忽略了足够小的残差)


OMP算法

由于有可能几个基向量不是互相正交的,所以会导致用MP算法残差会一直存在。而众所周知,比如在三维空间内,三个不在一个平面的向量可以表示任何向量,所以应该可以完全表示而不存在近似表示的。OMP就是为了解决MP的无解问题。

OMP算法的改进之处在于:在分解的每一步对所选择的全部原子进行正交化处理,这使得在精度要求相同的情况下,OMP算法的收敛速度更快。

那么在每一步中如何对所选择的全部原子进行正交化处理呢?在正式描述OMP算法前,先看一点基础思想。

先看一个 k 阶模型,表示信号 f 经过 k 步分解后的情况,似乎很眼熟,但要注意它与MP算法不同之处,它的残值与前面每个分量正交,这就是为什么这个算法多了一个正交的原因,MP中仅与最近选出的的那一项正交。

OMP减去的Pem是em在所有被选择过的原子组成的矩阵Φt所张成空间上的正交投影,而MP减去的Pem是em在本次被选择的原子φm所张成空间上的正交投影。这样就可以最多计算维度数(n次)的残差下就可以线性表示了。
OMP分解过程,实际上是将所选原子依次进行Schimidt正交化,然后将待分解信号减去在正交化后的原子上各自的分量即可得残差。其实求残差的过程也是在进行施密特正交化。

猜你喜欢

转载自blog.csdn.net/m0_37789876/article/details/82870420
mp