正交匹配追踪算法是90年代初提出来的,主要目的是将信号在完备的字典库上进行稀疏分解。
1. 信号的稀疏表示(sparse representation of signals)
预设一个过完备字典矩阵,矩阵每列表示一种原型信号的原子。可将一个信号y表示成这些原子的稀疏线性组合。即 y = Dx ,或者
。所谓字典矩阵的过完备性,指的是原子的个数远远大于信号y的长度(其长度很显然是n),即n<<k,也就是字典的列数远大于字典的行数。
2.MP算法(匹配追踪算法)
2.1 算法描述
假定被表示的信号是长度为n的列向量,y。H表示Hilbert空间,在这个空间H里,由一组向量构成字典矩阵D,称每个向量为原子(atom),其长度与被表示信号 y 的长度n相同,而且这些向量已作归一化处理,即|
。
MP算法的基本思想:从字典矩阵D(也称为过完备原子库中),选择一个与信号 y 最匹配的原子(也就是某列),构建一个稀疏逼近,并求出信号残差,然后继续选择与信号残差最匹配的原子,反复迭代,信号y可以由这些原子的线性和,再加上最后的残差值来表示。如果残差值在可以忽略的范围内,则信号y就是这些原子的线性组合。
现在的问题是:
1)如何选择与信号y最匹配的原子?
2)如何构建稀疏逼近并求残差?
3)如何进行迭代?
以下详细介绍使用MP进行信号分解的步骤:
(1) 计算信号 y 与字典矩阵中每列(原子)的内积,选择绝对值最大的一个原子,它就是与信号 y 在本次迭代运算中最匹配的。用专业术语来描述:令信号,从字典矩阵中选择一个最为匹配的原子,满足
,r0 表示一个字典矩阵的列索引。这样,信号 y 就被分解为在最匹配原子
的垂直投影分量和残值两部分,即:
。
(2)对残值R1f进行步骤(1)同样的分解,那么第K步可以得到:
,
其中 满足
。
可见,经过K步分解后,信号 y 被分解为: