目录

Matching Pursuit Algorithms

Redundant Dictionaries and Sparsity

Nonlinear Approximation in Dictionaries

Basic Matching Pursuit

Orthogonal Matching Pursuit


Matching Pursuit Algorithms

Redundant Dictionaries and Sparsity

Representing a signal in a particular basis involves finding the unique set of expansion coefficients in that basis. While there are many advantages to signal representation in a basis, particularly an orthogonal basis, there are also disadvantages.

The ability of a basis to provide a sparse representation depends on how well the signal characteristics match the characteristics of the basis vectors. For example, smooth continuous signals are sparsely represented in a Fourier basis, while impulses are not. A smooth signal with isolated discontinuities is sparsely represented in a wavelet basis. However, a wavelet basis is not efficient at representing a signal whose Fourier transform has narrow high frequency support.

Real-world signals often contain features that prohibit sparse representation in any single basis. For these signals, you want the ability to choose vectors from a set not limited to a single basis. Because you want to ensure that you can represent every vector in the space, the dictionary of vectors you choose from must span the space. However, because the set is not limited to a single basis, the dictionary is not linearly independent.

Because the vectors in the dictionary are not a linearly independent set, the signal representation in the dictionary is not unique. However, by creating a redundant dictionary, you can expand your signal in a set of vectors that adapt to the time-frequency or time-scale characteristics of your signal. You are free to create a dictionary consisting of the union of several bases. For example, you can form a basis for the space of square-integrable functions consisting of a wavelet packet basis and a local cosine basis. 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 behavior in different time intervals. The ability to choose vectors from each of these bases greatly increases your ability to sparsely represent signals with varying characteristics.

Nonlinear Approximation in Dictionaries

Define a dictionary as a collection of unit-norm elementary building blocks for your signal space. These unit-norm vectors are called atoms. If the atoms of the dictionary span the entire signal space, the dictionary is complete.

If the dictionary atoms form a linearly-dependent set, the dictionary is redundant. In most applications of matching pursuit, the dictionary is complete and redundant.

Let {φk} denote the atoms of a dictionary. Assume the dictionary is complete and redundant. There is no unique way to represent a signal from the space as a linear combination of the atoms.

An important question is whether there exists a best way. An intuitively satisfying way to choose the best representation is to select the φk yielding the largest inner products (in absolute value) with the signal. For example, the best single φkis

which for a unit-norm atom is the magnitude of the scalar projection onto the subspace spanned by φk.

The central problem in matching pursuit is how you choose the optimal M-term expansion of your signal in a dictionary.

Basic Matching Pursuit

Let Φ denote the dictionary of atoms as a N-by-M matrix with M>N. If the complete, redundant dictionary forms a frame for the signal space, you can obtain the minimum L2 norm expansion coefficient vector by using the frame operator.

However, the coefficient vector returned by the frame operator does not preserve sparsity. If the signal is sparse in the dictionary, the expansion coefficients obtained with the canonical frame operator generally do not reflect that sparsity. Sparsity of your signal in the dictionary is a trait that you typically want to preserve. Matching pursuit addresses sparsity preservation directly.

Matching pursuit is a greedy algorithm that computes the best nonlinear approximation to a signal in a complete, redundant dictionary. Matching pursuit builds a sequence of sparse approximations to the signal stepwise. Let Φ= {φk} denote a dictionary of unit-norm atoms. Let f be your signal.

In nonorthogonal (or basic) matching pursuit, the dictionary atoms are not mutually orthogonal vectors. Therefore, subtracting subsequent residuals from the previous one can introduce components that are not orthogonal to the span of previously included atoms.

To illustrate this, consider the following example. The example is not intended to present a working matching pursuit algorithm.

Construct this dictionary and signal in MATLAB®.

dictionary = [1 0; 1/2 sqrt(3)/2; -1/sqrt(2) -1/sqrt(2)]';
x = [1 1/2]';

Compute the inner (scalar) products between the signal and the dictionary atoms.

scalarproducts = dictionary'*x;

The largest scalar product in absolute value occurs between the signal and [-1/sqrt(2); -1/sqrt(2)]. This is clear because the angle between the two vectors is almost π radians.

Form the residual by subtracting the orthogonal projection of the signal onto [-1/sqrt(2); -1/sqrt(2)] from the signal. Next, compute the inner products of the residual (new signal) with the remaining dictionary atoms. It is not necessary to include [-1/sqrt(2); -1/sqrt(2)] because the residual is orthogonal to that vector by construction.

residual = x-scalarproducts(3)*dictionary(:,3);
scalarproducts = dictionary(:,1:2)'*residual;

The largest scalar product in absolute value is obtained with [1;0]. The best two atoms in the dictionary from two iterations are [-1/sqrt(2); -1/sqrt(2)] and [1;0]. If you iterate on the residual, you see that the output is no longer orthogonal to the first atom chosen. In other words, the algorithm has introduced a component that is not orthogonal to the span of the first atom selected. This fact and the associated complications with convergence argues in favor ofOrthogonal Matching Pursuit (OMP).

Orthogonal Matching Pursuit

In orthogonal matching pursuit (OMP), the residual is always orthogonal to the span of the atoms already selected. This results in convergence for a d-dimensional vector after at most d steps.

Conceptually, you can do this by using Gram-Schmidt to create an orthonormal set of atoms. With an orthonormal set of atoms, you see that for a d-dimensional vector, you can find at most dorthogonal directions.

【 MATLAB 】MATLAB帮助文档中对 MP 算法以及 OMP 算法的讲解(英文版)相关推荐

  1. matlab除fread外,Matlab中fread函数的高级使用方法及其帮助文档中容易引起歧义的地方...

    原文链接:http://www.cnblogs.com/blue-box/p/4676100.html 参考资料:http://cn.mathworks.com/help/matlab/ref/fre ...

  2. matlab读写txt文档

    1.matlab读取txt文档行数 fid = fopen('test.txt') lines = 0; while ~feof(fid)fgetl(fid);lines = lines +1; en ...

  3. matlab 写word文档,用Matlab生成Word文档

    用Matlab生成Word文档用Matlab编了一段程序,可以生成Word文档,文档中含有表格,代码如下: filespec = 'C:\Documents and Settings\Administ ...

  4. matlab 在线帮助,matlab中文帮助文档【荐】.pdf

    matlab中文帮助文档[荐].pdf Getting Started 开始 如果你是MATLAB的初学者,你应该从阅读矩阵操作开始.最重要的是要学习如何 输入矩阵,如何使用:(冒号)算子,以及如何调 ...

  5. matlab中文help,matlab中文帮助文档.pdf

    matlab中文帮助文档 Getting Started 开始 如果你是MATLAB的初学者,你应该从阅读矩阵操作开始.最重要的是要学习如何 输入矩阵,如何使用:(冒号)算子,以及如何调用函数. 在你 ...

  6. matlab 生成 word 表格,利用MATLAB生成Word文档.doc

    利用MATLAB生成Word文档 function ceshi_Word %利用MATLAB生成Word文档 % ceshi_Word % % Copyright 2009 - 2010 xiezhh ...

  7. matlab2015 word,利用MATLAB生成Word文档

    <利用MATLAB生成Word文档>由会员分享,可在线阅读,更多相关<利用MATLAB生成Word文档(5页珍藏版)>请在人人文库网上搜索. 1.function ceshi_ ...

  8. matlab 读写text文档

    一: matlab 读text文档 [a1,a2,a3,a4]=textread('C:\Desktop\test.txt','%s%s%d%d','headerlines',0)% %s表示为字符串 ...

  9. matlab :检测文档图片中的字母l

    一. 实验目的 检测文档中所有的字母l (即小写的L). 二.实验环境 Matlab2017a 三.实验方案分析 识别出文档中所有的字母l (即小写的L),若直接采取开运算的话,将会把所有的含有l结构 ...

最新文章

  1. 6.微信小程序的如何使用全局属性
  2. uni-app 之 使用扩展组件(uni ui) Pagination 分页器使用示例
  3. Tungsten Fabric SDN — Service Chain — 高级特性
  4. 特斯拉提升安全监控等级,推出“哨兵模式”
  5. Mysql多表关联删除操作
  6. php根据键值去除数组中的某个元素_php数组删除元素 删除指定键值元素
  7. 织梦php me,GitHub - czmz/DedeCMSv5: 中国专业的PHP网站内容管理系统-织梦内容管理系统...
  8. select模型的原理、优点、缺点
  9. vue函数如何调用其他函数?_详解 vue 生命钩子函数
  10. android逆向学习路线(适合新手)
  11. PX4姿态解算磁偏补偿
  12. 计算机java毕设_javaweb计算机毕设怎么做比较容易?
  13. 一个聚合搜索网站——老马知搜
  14. 揭露杀毒软件的那些密秘
  15. win10控制面板快捷打开方式
  16. 十一假期,分享几个好玩儿的GitHub项目
  17. 通过3SAT证明支配集是NPC问题
  18. 作业 20180925-6 四则运算试题生成
  19. Qt数据库:(五)QSqlQueryModel
  20. 20多份软件测试报告模板(标准版)一份优秀测试报告模板流程

热门文章

  1. 记住这53个要点提高PHP编程效率
  2. xmpp协议抓包_开源网络抓包与分析框架学习-Packetbeat篇
  3. 激活手表显示无法登陆服务器,在Firefox中使用Nightwatch运行测试无法连接到Selenium服务器...
  4. java的高级特性_java的高级特性_for
  5. linux 源码搭建lnmp_Linux精华篇—CentOS 7.4下源码编译构建LNMP架构
  6. Ajax Session失效跳转登录页面的方法
  7. 计算机论文图,【论文】计算机图像学
  8. vuejs linux windows,vue.js环境在window和linux安装
  9. Java综合知识总结_基础篇
  10. 2022年春季学期课程基本信息总汇