压缩感知中贪婪算法之MP和OMP

压缩感知中贪婪算法之MP和OMP

1、 Matching Pusuit(匹配追踪):

压缩感知中贪婪算法之MP和OMP_第1张图片
MP是最简单的追踪算法之一,每次只从A中选取一列,每步迭代时就更新该列所对应的系数。但是,MP一般会反复选择矩阵A的同一列,以进一步减小逼近的误差。因此,算法复杂度较高。

Matlab代码实现如下:

function x = CS_MP(y, A, t )
  % Matching Pursuit
  %
  %   y = Phi * x
  %   x = Psi * theta
  %	  y = Phi*Psi * theta
  %   令 A = Phi*Psi, 则y=A*theta

    [y_rows,y_columns] = size(y);
    if y_rows

2、 Orthogonal Matching Pursuit(正交匹配追踪)

算法流程:
输入输出:
压缩感知中贪婪算法之MP和OMP_第2张图片
步骤:
压缩感知中贪婪算法之MP和OMP_第3张图片
OMP是一个更为复杂的策略。在每次迭代中,通过将Y正交投影到当前支集集合 Λ t Λ_t Λt所对应的矩阵Φ的列上,来更新x的近似。

不像MP,OMP从不反复选择同一原子,并且每一次迭代的残余误差总是正交于当前所有当前选择的元素。OMP的计算成本主要取决于矩阵向量积,尽管OMP的运算比之MP运算更复杂,但有着更优越的性能。

Matlab代码实现如下:

function [ theta ] = CS_OMP( y,A,t )
%CS_OMP Summary of this function goes here
%Version: 1.0 written by jbb0523 @2015-04-18
%   Detailed explanation goes here
%   y = Phi * x
%   x = Psi * theta
%	y = Phi*Psi * theta
%   令 A = Phi*Psi, 则y=A*theta
%   现在已知y和A,求theta
    [y_rows,y_columns] = size(y);
    if y_rows

参考文献:
[1]Signal Recovery From Random Measurements Via Orthogonal Matching Pursuit[J]
[2]压缩感知理论与应用[M].机械工业出版社
[3]压缩感知的数学导论[M].哈尔滨工业大学出版社

你可能感兴趣的:(压缩感知,正交匹配追踪,贪婪算法,matlab)