精华内容
下载资源
问答
  • 压缩传感重构算法包括贪婪算法,凸优化算法等。本文档介绍关于信号重构贪婪算法中的stomp算法,
  • 压缩传感重构算法的matlab实现,包含pdf文档的算法描述,对于学习压缩传感理论有很大帮助。
  • 压缩传感理论与重构算法。仅供学习使用,希望对大家有帮助。
  • 压缩传感的四种重构算法,OMP算法 BP算法 分块OMP算法 StOMP算法,不是本人编写,但是经过的我的修改,希望对大家有用,很感恩这是一个免费平台,大家共同学习
  • 一种基于压缩感知的无线传感信号重构算法
  • 为了能够得到更好的压缩传感重构效果, 把流形学习的思想和方法与压缩传感相结合, 提出了一种基于参数化流形学习的压缩传感重构方法。实验结果表明, 提出的方法对自然图像进行重构取得了很好的效果, 充分验证了基于...
  • 针对传统算法在处理传感器网络的大规模信号时, 运算复杂度显著增大, 性能急剧下降的问题, 提出了启发式同步自适应迭代阈值重构算法。采用启发式差错控制函数选择代价最少的方向逐行同步收缩逼近最优解, 并结合由...
  • 浅谈压缩感知(二十二):压缩感知重构算法之正则化正交匹配追踪(ROMP) 主要内容: ROMP的算法流程ROMP的MATLAB实现一维信号的实验与结果测量数M与重构成功概率关系的实验与结果 一、ROMP的算法流程 正则化...

    浅谈压缩感知(二十二):压缩感知重构算法之正则化正交匹配追踪(ROMP)

    主要内容:

    1. ROMP的算法流程
    2. ROMP的MATLAB实现
    3. 一维信号的实验与结果
    4. 测量数M与重构成功概率关系的实验与结果

    一、ROMP的算法流程

    正则化正交匹配追踪ROMP算法流程与OMP的最大不同之处就在于从传感矩阵A中选择列向量的标准,OMP每次只选择与残差内积绝对值最大的那一列,而ROMP则是先选出内积绝对值最大的K列(若所有内积中不够K个非零值则将内积值非零的列全部选出),然后再从这K列中按正则化标准再选择一遍,即为本次迭代选出的列向量(一般并非只有一列)。正则化标准意思是选择各列向量与残差内积绝对值的最大值不能比最小值大两倍以上(comparable coordinates)且能量最大的一组(with the maximal energy),因为满足条件的子集并非只有一组。

    二、ROMP的MATLAB实现(CS_ROMP.m)

    1、正则化代码Regularize.m

    复制代码
    function [val,pos] = Regularize(product,Kin)
    %   Regularize
    %   Detailed explanation goes here
    %   product = A'*r_n;%传感矩阵A各列与残差的内积
    %   K为稀疏度
    %   pos为选出的各列序号
    %   val为选出的各列与残差的内积值
    %   Reference:Needell D,Vershynin R. Uniform uncertainty principle and
    %   signal recovery via regularized orthogonal matching pursuit. 
    %   Foundations of Computational Mathematics, 2009,9(3): 317-334.  
        productabs = abs(product); %取绝对值
        [productdes,indexproductdes] = sort(productabs,'descend'); %降序排列
        for ii = length(productdes):-1:1
            if productdes(ii)>1e-6 %判断productdes中非零值个数
                break;
            end
        end
        % Identify:Choose a set J of the K biggest coordinates
        if ii>=Kin
            J = indexproductdes(1:Kin); %集合J
            Jval = productdes(1:Kin); %集合J对应的序列值
            K = Kin;
        else % or all of its nonzero coordinates,whichever is smaller
            J = indexproductdes(1:ii);  %集合J
            Jval = productdes(1:ii);  %集合J对应的序列值
            K = ii;
        end
        % Regularize:Among all subsets J0∈J with comparable coordinates
        MaxE = -1;  %循环过程中存储最大能量值
        for kk = 1:K
            J0_tmp = zeros(1,K);iJ0 = 1;
            J0_tmp(iJ0) = J(kk);  %以J(kk)为本次寻找J0的基准(最大值)
            Energy = Jval(kk)^2;  %本次寻找J0的能量
            for mm = kk+1:K
                if Jval(kk)<2*Jval(mm) %找到符合|u(i)|<=2|u(j)|的
                    iJ0 = iJ0 + 1; %J0自变量增1
                    J0_tmp(iJ0) = J(mm); %更新J0
                    Energy = Energy + Jval(mm)^2; %更新能量
                else %不符合|u(i)|<=2|u(j)|break; %跳出本轮寻找,因为后面更小的值也不会符合要求
                end
            end
            if Energy>MaxE %本次所得J0的能量大于前一组
                J0 = J0_tmp(1:iJ0); %更新J0
                MaxE = Energy; %更新MaxE,为下次循环做准备
            end
        end
        pos = J0;
        val = productabs(J0);
    end
    复制代码

    2、ROMP代码CS_ROMP.m

    复制代码
    function [ theta ] = CS_ROMP( y,A,K )
    %   CS_ROMP
    %   Detailed explanation goes here
    %   y = Phi * x
    %   x = Psi * theta
    %    y = Phi*Psi * theta
    %   令 A = Phi*Psi, 则y=A*theta
    %   现在已知y和A,求theta
    %   Reference:Needell D,Vershynin R.Signal recovery from incomplete and
    %   inaccurate measurements via regularized orthogonal matching pursuit[J].
    %   IEEE Journal on Selected Topics in Signal Processing,20104(2):310316.
        [m,n] = size(y);
        if m<n
            y = y';%y should be a column vector
        end
        [M,N] = size(A); %传感矩阵A为M*N矩阵
        theta = zeros(N,1); %用来存储恢复的theta(列向量)
        At = zeros(M,3*K); %用来迭代过程中存储A被选择的列
        pos_num = zeros(1,2*K); %用来迭代过程中存储A被选择的列序号
        Index = 0;
        res = y; %初始化残差(residual)为y
        %Repeat the following steps K times(or until |I|>=2K)
        for ii=1:K %迭代K次
            product = A'*res; %传感矩阵A各列与残差的内积
            %[val,pos] = max(abs(product)); %找到最大内积绝对值,即与残差最相关的列
            [val,pos] = Regularize(product,K); %按正则化规则选择原子
            At(:,Index+1:Index+length(pos)) = A(:,pos); %存储这几列
            pos_num(Index+1:Index+length(pos)) = pos; %存储这几列的序号
            if Index+length(pos)<=M %At的行数大于列数,此为最小二乘的基础(列线性无关)
                Index = Index+length(pos); %更新Index,为下次循环做准备
            else %At的列数大于行数,列必为线性相关的,At(:,1:Index)'*At(:,1:Index)将不可逆
                break; %跳出for循环
            end
            A(:,pos) = zeros(M,length(pos)); %清零A的这几列(其实此行可以不要,因为它们与残差正交)
            %y=At(:,1:Index)*theta,以下求theta的最小二乘解(Least Square)
            theta_ls = (At(:,1:Index)'*At(:,1:Index))^(-1)*At(:,1:Index)'*y; %最小二乘解
            %At(:,1:Index)*theta_ls是y在At(:,1:Index)列空间上的正交投影
            res = y - At(:,1:Index)*theta_ls; %更新残差
            if norm(res)<1e-6 %Repeat the steps until r=0
                break; %跳出for循环
            end
            if Index>=2*K %or until |I|>=2K
                break; %跳出for循环
            end
        end
        theta(pos_num(1:Index))=theta_ls;%恢复出的theta
    end
    复制代码

    三、一维信号的实验与结果

    复制代码
    %压缩感知重构算法测试
    clear all;close all;clc;
    M = 128;%观测值个数
    N = 256;%信号x的长度
    K = 12;%信号x的稀疏度
    Index_K = randperm(N);
    x = zeros(N,1);
    x(Index_K(1:K)) = 5*randn(K,1);%x为K稀疏的,且位置是随机的
    Psi = eye(N);%x本身是稀疏的,定义稀疏矩阵为单位阵x=Psi*theta
    Phi = randn(M,N);%测量矩阵为高斯矩阵
    A = Phi * Psi;%传感矩阵
    y = Phi * x;%得到观测向量y
    
    %% 恢复重构信号x
    tic
    theta = CS_ROMP(y,A,K);
    x_r = Psi * theta;% x=Psi * theta
    toc
    
    %% 绘图
    figure;
    plot(x_r,'k.-');%绘出x的恢复信号
    hold on;
    plot(x,'r');%绘出原信号x
    hold off;
    legend('Recovery','Original')
    fprintf('\n恢复残差:');
    norm(x_r-x)%恢复残差
    复制代码

    四、测量数M与重构成功概率关系的实验与结果

    复制代码
    clear all;close all;clc;
    %% 参数配置初始化
    CNT = 1000; %对于每组(K,M,N),重复迭代次数
    N = 256; %信号x的长度
    Psi = eye(N); %x本身是稀疏的,定义稀疏矩阵为单位阵x=Psi*theta
    K_set = [4,12,20,28,36]; %信号x的稀疏度集合
    Percentage = zeros(length(K_set),N); %存储恢复成功概率
    
    %% 主循环,遍历每组(K,M,N)
    tic
    for kk = 1:length(K_set)
        K = K_set(kk);%本次稀疏度
        M_set = K:5:N;%M没必要全部遍历,每隔5测试一个就可以了
        PercentageK = zeros(1,length(M_set));%存储此稀疏度K下不同M的恢复成功概率
        kk
        for mm = 1:length(M_set)
           M = M_set(mm)%本次观测值个数
           P = 0;
           for cnt = 1:CNT %每个观测值个数均运行CNT次
                Index_K = randperm(N);
                x = zeros(N,1);
                x(Index_K(1:K)) = 5*randn(K,1);%x为K稀疏的,且位置是随机的                
                Phi = randn(M,N);%测量矩阵为高斯矩阵
                A = Phi * Psi;%传感矩阵
                y = Phi * x;%得到观测向量y
                theta = CS_ROMP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P = P + 1;
                end
           end
           PercentageK(mm) = P/CNT*100;%计算恢复概率
        end
        Percentage(kk,1:length(M_set)) = PercentageK;
    end
    toc
    save ROMPMtoPercentage %运行一次不容易,把变量全部存储下来
    
    %% 绘图
    S = ['-ks';'-ko';'-kd';'-kv';'-k*'];
    figure;
    for kk = 1:length(K_set)
        K = K_set(kk);
        M_set = K:5:N;
        L_Mset = length(M_set);
        plot(M_set,Percentage(kk,1:L_Mset),S(kk,:));%绘出x的恢复信号
        hold on;
    end
    hold off;
    xlim([0 256]);
    legend('K=4','K=12','K=20','K=28','K=36');
    xlabel('Number of measurements(M)');
    ylabel('Percentage recovered');
    title('Percentage of input signals recovered correctly(N=256)(Gaussian)');
    复制代码

    五、参考文章

    http://blog.csdn.net/jbb0523/article/details/45268141

    展开全文
  • 时域信号压缩传感,正交匹配追踪法(OMP)重构信号,注释比较详细
  • 提出了一种基于联合稀疏模型与压缩感知理论的同步子空间追踪算法,以稀疏特性为先验知识,通过回溯迭代方式,判断并选取合适的联合子空间,用更少量观测值实现原始传感数据的精确重构。与SCoSaMP算法、SP算法在不同...
  • 压缩传感中OMP算法 for times=1:m; % 迭代次数 for col=1:N; % 恢复矩阵的所有列向量 product(col)=abs(T(:,col)'*r_n); % 恢复矩阵的列向量和残差的投影系数(内积值) end [val,pos]=max(product); % 最大投影...
  • 因此,减轻处理设备PQ采样数据的负担,是利用压缩传感理论实现新型监控系统的关键。 本文采用了一种新的压缩采样算法。 实验结果表明,该算法能取得良好的性能。 最后,我们还分析了参数对算法性能的影响。
  • 基于压缩传感技术的图像重构,王震,王华奎,对近年来兴起的新理论-压缩传感理论进行了介绍。运用高斯测量矩阵和自适应匹配追踪算法(SAMP)来实现一维信号和二维图像的重构。针��
  • 空间自适应的分块图像重建方法 ...实验结果表明,所提算法不仅降低了压缩传感的重建时间,而且有效去除块效应,并在一定程 度上保护图像的纹理和边缘. 理论方法 根据自然图像的空间特性,采用不同的基

    空间自适应的分块图像重建方法

    摘要
    首先,将图像分割成一系列子块,分别将每个子块的所有列向量首尾连接起来构成原始信号; 其次,将该信号经过稀疏变换后投影到观测矩阵上得到对应的观测值,再利用优化方法从这些观测中重建出信号; 然后,分类每个重构子块的活动性,采用不同的后滤波方法处理不同活动性指数的子块边界. 最后,以MRI 图像为实验对象对算法进行了验证.实验结果表明,所提算法不仅降低了压缩传感的重建时间,而且有效去除块效应,并在一定程
    度上保护图像的纹理和边缘.

    理论方法

    根据自然图像的空间特性,采用不同的基函数对具有不同特征的图像子块进行稀疏表示,以较低的计算复杂性取得了较好的重建质量,但是仍然存在一定的块效应影响.因此,本文进一步以分块压缩传感为基本模型,采用子块活动性分析和滤波运算对重建子块进行后处理,提出基于分块压缩传感的MRI 图像重建方法,在不降低原图像质量条件下减少数据采集总量和重建时间.

    1.分块压缩传感基本模型
    在这里插入图片描述
    2.后处理
    分块压缩传感图像重建方法以块为单位进行CS 重建,忽略了相邻子空间之间的相关性,有可能导致重建图像中块的边界出现不连续的现象,因此还需要有效的后处理算法,尽可能消除块效应以提高视觉质量. 整个后处理过程分为子空间活动性分析和滤波2 个部分.

    结论
    分块压缩传感图像重建方法采用非重叠块分割技术,然后以块为单位单独进行基于CS理论的图像重建.首先,本文研究分析了块尺寸的选择对重建质量与重建时间的影响.
    本文针对MRI 图像的压缩传感重建速度不高及分块压缩传感重建图像存在的块效应问题,提出了基于块分割和后滤波的分块压缩传感图像重建方法. 首先实验分析了块尺寸对重建质量与重建时间的影响以确定出合适的分块尺寸,其次采用分块压缩传感方法单独重建出每个图像子块,然后分析每个图像子块的活动性,最后对不同活动性指数的子块边界采取不同强度的滤波器进行处理. 在很大程度上兼顾MRI 图像的压缩传感重建速度和块效应的消除及细节信息的保护,实验结果从重建时间、主客观质量等方面验证了本文算法的有效性.

    展开全文
  • 压缩传感代码

    2012-09-25 09:24:50
    压缩传感重构的各种算法
  • 压缩传感(CS)是利用图像具有稀疏性表示的先验知识,由投影获得的少量观测值来进行图像重建。利用基于CS的联合代数迭代算法进行了太赫兹CT图像仿真重构研究,实验结果验证了算法重构效果以及可用于快速成像的能力...
  • 介绍了一种简单而有效的压缩感知(CS)框架内的测量矩阵构建算法(MMCA)。 在CS框架中,测量矩阵Phi和稀疏矩阵(基本)psi之间的较小相干性可以导致更好的信号重建性能。 在本文中,我们通过迭代采用收缩和交替投影...
  • 针对光纤布拉格光栅(FBG)传感系统中数据量庞大、不利于数据传输及存储的问题,提出了一种分段自适应采样压缩感知与改进的正交匹配追踪(SASCS-IOMP)算法。利用设计特定参数的Gabor滤波器提取FBG光谱信号上边带斜率...
  • 数值仿真结果表明,基于压缩传感的傅里叶全息重构算法优于基于快速傅里叶逆变换的传统算法,它将全息数据的采集和压缩合为一步进行,不仅采样数据明显少于传统采样数据,而且利用约8%的数据仍然能精确地重构出原图像...
  • 描述了一种成像方式基于压缩传感(CS)理论的太赫兹(THz)成像系统,其核心思想是将压缩与采样合并进行,采集图像的非自适应线性投影(测量值),根据相应重构算法由测量值重构原始图像。此系统通过测量图像和单一掩模板...
  • 压缩感知-CS-BP算法(基追踪算法

    热门讨论 2012-12-31 13:50:36
    压缩传感 压缩感知 CS BP算法 基追踪算法 经测试可以实现数据压缩感知重构
  • 以Fourier矩阵作为压缩传感的测量矩阵,能有效减少测量数据量,并提高重构图像的质量。仿真实验证明,采用压缩传感所得到的测量数据量远小于传统采样方法所获的数据量,突破了传统信号采样的瓶颈,提高了采样效率,...
  • 图像重构压缩.zip

    2020-03-06 23:02:35
    基于小波-OMP算法的图像压缩传感恢复,有图像,有数据,有代码,有文章!运行可靠!基于小波-OMP算法的图像压缩传感恢复,有图像,有数据,有代码,有文章!运行可靠!
  • 压缩传感理论将信号的采样与压缩同时进行,利用信号在变换基上可以稀疏表示的先验知识,从比香农采样少的多的观测值中重构原始信号。</span><span style="font-family:宋体;font-size:9pt;">...
  • 提出一种用稀疏相似性度量求解压缩传感矩阵的方法,并将其应用在图像重建和识别领域中。首先构造一种稀疏相似性度量,然后将其嵌入到传感矩阵的模糊代价函数中,最终传感矩阵的原子更新按照模糊方式进行计算。用该...
  • 无线传感网络存在网络带宽限制和传感器节点的能耗问题, 实际应用中通常希望可以通过重构算法从采集的少量数据中还原出原始信息, 压缩感知理论为上述问题提供了一个解决思路。利用压缩感知理论, 对无线传感器网络中...
  • 提出传感器网络环境下基于DTW的多小波数据压缩算法。首先研究汇聚节点中异步数据点—点对的对应关系,...实验结果表明,所提出的算法在能量聚集比、重构精度和运行时间等压缩性能指标上优于经典的分布式小波压缩算法

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

压缩传感重构算法