• 大小: 0.37M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-04-17
  • 语言: Matlab
  • 标签: SOMP  MATLAB  

资源简介

SOMP是压缩感知中的子空间重构算法,包含一个源码和一篇SOMP文章。

资源截图

代码片段和文件信息

% 已知 A 和 y(=Ax) 求 x
% 联系方式:sy1133@163.com
%===========================================


clear; clc

n = 500; % 信号长度
m = 100; % 测量次数 
k = 20;  % 稀疏度

%Generate sparse signal 
z = randperm(n);
x = zeros(n 1);
x(z(1:k)) = sign(randn(k1));

A = randn(mn); % 用于重构的高斯随机矩阵
y = A*x;        % 投影信息:y

alpha = 1; % 如果alpha取2就是CoSaMP算法

r = y; L = []; a_index=[];a_index2=[];
a = zeros(size(x));
iter = 1;
err = 1e-5; % 信号误差

tic
while (iter < 20*k && norm(r)>err)
    
    % Identify
    h = A‘* r;
    [h_newh_index] = sort(abs(h)‘descend‘);
    
    % Merge
    L = union(a_index2h_index(1:alpha*k));
    
    % Estimate
    a(L) = A(:L)\y;  
    
    %Prune 
    [a_newa_index] = sort(abs(a)‘descend‘);
    a(a_index(k+1:end))=0; 
    a_index2 = a_index(1:k);
    
    % Iterate
    r= y - A*a; % r=y-A(:a_index2)*pinv(A(:a_index2))*y;
    iter = iter + 1;
    
end
toc

disp(norm(r))
disp(iter)

stem(x‘Linestyle‘‘none‘)  %原始信号,篮圈
hold on
stem(a‘r‘‘.‘‘Linestyle‘‘none‘)   %重构后的信号,红点
title(‘recover‘)


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-05-03 14:03  SP算法加文章\
     文件        1135  2011-03-10 11:13  SP算法加文章\Somp.m
     文件      455354  2010-12-18 09:25  SP算法加文章\Somp.pdf

评论

共有 条评论