Matlab从R2012a开始添加了匹配追踪(Matching Pursuit)函数,这个算法在稀疏表达领域是一个很常用的算法,这里对matlab函数做简答介绍,内容主要来自于matlab的doc帮助。Matlab对稀疏表达的说明简洁明了,翻译如下。
1.冗余字典与稀疏性
用一组特定基表达一个信号其实就是找到相应的一组展开系数。虽然把信号用一组基表达,特别是一组正交基,有很多优点,但也存在缺点。
一组基表达信号的能力取决于信号的特性是否与基向量的特性相吻合。例如,光滑连续信号可以被傅里叶基稀疏的表达,但脉冲信号就不行。再如,带有孤立不连续点的平滑信号可以被小波基稀疏表达,但小波基在表达傅里叶频谱中有窄带高频支撑的信号时却是无效的。
现实世界中的信号经常包含有用单一基所不能表达的特征。对于这些信号,你或许希望可以选择来自不同基的向量(如用小波基和傅里叶基来联合表达一个信号)。因为你想保证你可以表达一个信号空间的所有信号向量,所以由所有可选向量组成的字典应该能够张成这个信号空间。然而由于这组字典中的向量来自不同的基,它们可能不是线性独立的。
由于这组字典中的向量不是线性独立的,会造成用这组字典做信号表达时系数不唯一。然而如果创建一组冗余字典,你就可以把你的信号展开在一组可以适应各种时频或时间-尺度特性的向量上。你 可以自由的创建包含多个基的字典。例如,你可以构造一组表达平方可积空间的基,这组基包含小波包基和局部余弦基。A wavelet packet basis is well adapted to signals with different behavior in different frequency intervals. A local cosine basis is well adapted to signals with different behavi