精华内容
下载资源
问答
  • 用线性规划方法极小化欠定方程的解的l1范数,可用于压缩感知稀疏重构
  • 压缩感知稀疏重构笔记

    千次阅读 2020-11-19 20:52:57
    压缩感知的基本思想稀疏重构条件: 压缩感知的基本思想是:只要信号是稀疏或可压缩的,则可用一个测量矩阵在低维空间上表示这个高维信号,然后通过求解一个优化问题就能近似地重构出信号。稀疏表示、编码测量和稀疏...

    压缩感知的基本思想稀疏重构条件:

    压缩感知的基本思想是:只要信号是稀疏或可压缩的,则可用一个测量矩阵在低维空间上表示这个高维信号,然后通过求解一个优化问题就能近似地重构出信号。稀疏表示、编码测量和稀疏重构是压缩感知理论的三个重要组成部分其中,稀疏重构,即由观测向量重构稀疏信号的过程,是压缩感知理论的核心。应用稀疏重构对人造目标进行稀疏成像可以极大地提高成像结果的分辨率。

    压缩感知理论指出,信号或图像精确重建必须满足以下三个条件:
    (1)稀疏性,即在某种变换域下信号或图像可被稀疏表示;
    (2)测量矩阵满足限制等容性准则(Restricted Isometry Property,RIP)条件,即要满
    足与信号本身是互不相干的;
    (3)通过非线性优化的重建模型精确重建.

    稀疏重构适用场景以及优势:

    高频区,目标总的电磁散射可以由局部散射中心散射的合成来近似,可以将稀疏重构方法应用于属性散射中心模型估计上。基于稀疏重构的属性散射模型参数估计方法直接从观测数据中估计散射中心参数,避免了对图像分割处理,因此不存在能量泄漏问题

    只要信号是稀疏或可压缩的,则可用一个测量矩阵在低维空间上表示这个高维信号,然后通过求解一个优化问题就能近似地重构出信号。

    缺点:红色。

    优点:蓝色。

    lP范数非凸优化算法而言,其性能表现较为出色,超分辨能力强,且重构精度高。对SNR 较为敏感,抗噪性能不好。弊端:就是需要人为设置两个参数:收缩参数和正则化参数,对于不同的信号形式,不同的观测矩阵,不同的信噪比而言,这两个参数的最优值都是不同的,仿真实验前都需要对花大量的时间进行参数的调整。

    应用CVX 进行l1 范数最小化的方法,其各方面性能较为适中,不过运行速度太慢是一大缺点。此外l1范数最小化方法需要人为的设置正则化参数,因此对噪声较为敏感。

    MP 算法而言,其重构精度最差,没有超分辨能力,对于噪声很敏感,抗噪性能不好,但是由于OMP 算法复杂度最低,其经常被用于工程实践当中。

    BCS 算法而言,其在抗噪性能方面表现出了不错的性能,缺点在于其超分辨能力不强。

    总结:实验结果表明l1 范数最小化方法性能适中;贪婪算法重构精度最差,没有超分辨能力,对于噪声很敏感,BCS 算法抗噪性能好,重构精度高,但超分辨能力不强;lP 范数非凸优化方法超分辨能力强,且重构精度高,但对SNR 较为敏感。

     

    展开全文
  • 贝叶斯压缩感知稀疏信号重构方法研究
  • 6压缩感知(Compressed sensing),也被称为压缩采样(Compressive sampling)或稀疏采样(Sparse sampling),是一种寻找欠定线性系统的稀疏解的技术。
  • 压缩感知稀疏贝叶斯算法,包含SBL,TSBL和TMSBL算法。亲自测试能够使用
  • 利用AVIRIS和ROSIS高光谱数据构建光谱稀疏字典并进行压缩感知光谱重构实验,分别从光谱重构精度、稀疏成分提取能力、光谱重构的成功率和光谱识别的准确率等不同角度进行了分析。实验结果表明,本文方法不仅优于传统的...
  • 基于无限维压缩感知的光场重构论文,基于稀疏傅里叶的光场重构
  • 用于信号稀疏分解重构和进行压缩感知处理,从入门到深入都有的资料,建议详细阅读,调试后使用。
  • 利用图像的非局部相似性先验以提升图像恢复质量已...为了更有效地提升压缩感知(CS)图像的重构质量,提出了一种基于加权结构组稀疏表示(WSGSR)的图像压缩感知重构方法。采用非局部相似图像块结构组加权稀疏表示的
  • 针对压缩感知中噪声折叠现象严重影响稀疏信号重构性能的问题,提出一种基于选择性测量的压缩感知去噪重构算法。首先从理论上解释了压缩感知中噪声折叠现象;然后提出一种基于测量数据的特征统计量,推导分析其概率...
  • 针对块稀疏信号块稀疏度未知的情况,提出了一种基于块稀疏度估计的自适应重构算法,并将其应用于压缩感知。首先对信号的块稀疏度进行初步估计,计算得到一个支撑块索引集合的估计值,利用得到的估计值对残差进行初始...
  • 针对当前重建效果最好的基于低秩先验的NLR重建算法,忽略了图像的局部结构信息,不能有效地重建图像的边缘,为了在...实验结果表明,与传统的稀疏性先验重建算法和NLR算法相比,所提算法能够获得更高的图像重构质量。
  • 在信号可稀疏表示的基础上,压缩感知理论将数据的...上对算法作出分析比较,然后基于压缩感知理论综述图像稀疏表示和重构算法的研究进展及其.相关方面的应用,最后对压缩感知稀疏表示和重构方面作出了总结和展望.
  • 6压缩感知(Compressed sensing),也被称为压缩采样(Compressive sampling)或稀疏采样(Sparse sampling),是一种寻找欠定线性系统的稀疏解的技术。
  • 稀疏信号的压缩感知重构压缩感知领域权威文论。
  • 压缩感知重构算法之稀疏度自适应匹配追踪(SAMP)

    万次阅读 多人点赞 2015-05-13 11:05:55
    鉴于前面所述大部分OMP及其前改算法都需要已知信号的稀疏度K,而在实际中这个一般是不知道的,基于此背景,稀疏度自适应匹配追踪(Sparsity Adaptive MP)被提出。读几遍SAMP的被提出的参考文献[1]的题目:Sparsity ...

    题目:压缩感知重构算法之稀疏度自适应匹配追踪(SAMP)

            鉴于前面所述大部分OMP及其前改算法都需要已知信号的稀疏度K,而在实际中这个一般是不知道的,基于此背景,稀疏度自适应匹配追踪(Sparsity Adaptive MP)被提出。

    0、符号说明如下:

            压缩观测y=Φx,其中y为观测所得向量M×1,x为原信号N×1(M<<N)。x一般不是稀疏的,但在某个变换域Ψ是稀疏的,即x=Ψθ,其中θ为K稀疏的,即θ只有K个非零项。此时y=ΦΨθ,令A=ΦΨ,则y=

            (1) y为观测所得向量,大小为M×1

            (2)x为原信号,大小为N×1

            (3)θ为K稀疏的,是信号在x在某变换域的稀疏表示

            (4) Φ称为观测矩阵、测量矩阵、测量基,大小为M×N

            (5) Ψ称为变换矩阵、变换基、稀疏矩阵、稀疏基、正交基字典矩阵,大小为N×N

            (6)A称为测度矩阵、传感矩阵、CS信息算子,大小为M×N

    上式中,一般有K<<M<<N,后面三个矩阵各个文献的叫法不一,以后我将Φ称为测量矩阵、将Ψ称为稀疏矩阵、将A称为传感矩阵

            注意:这里的稀疏表示模型为x=Ψθ,所以传感矩阵A=ΦΨ;而有些文献中稀疏模型为θ=Ψx,而一般Ψ为Hermite矩阵(实矩阵时称为正交矩阵)所以Ψ-1=ΨH(实矩阵时为Ψ-1=ΨT),x=ΨHθ,所以传感矩阵A=ΦΨH,例如沙威的OMP例程中就是如此。

    1、SAMP重构算法流程:


            以上这个算法流程仅供参考,完全是为了与前面各算法流程形式上保持一致而写的,其实直接看文献[1]中的流程图更明了一些:

    2、稀疏度自适应匹配追踪(SAMP)Matlab代码(CS_SAMP.m)

            代码参考了文献[2]中的SAMP.m,也可在www.pudn.com中搜索SAMP,可以搜到很多结果。也许这里程序主循环用while循环比较合适,不过这里保持和前面各算法的一致性,仍用for循环。

    function [ theta ] = CS_SAMP( y,A,S )
    %CS_SAMP Summary of this function goes here
    %Version: 1.0 written by jbb0523 @2015-05-08
    %   Detailed explanation goes here
    %   y = Phi * x
    %   x = Psi * theta
    %	y = Phi*Psi * theta
    %   令 A = Phi*Psi, 则y=A*theta
    %   现在已知y和A,求theta
    %   Reference:Thong T.Do,Lu Gan,Nam Nguyen,Trac D.Tran.Sparsity adaptive
    %   matching pursuit algorithm for practical compressed sensing[C].Asilomar
    %   Conference on Signals,Systems,and Computers,Pacific Grove,California,
    %   2008,10:581-587.
    %   Available at:
    %   http://dsp.rice.edu/sites/dsp.rice.edu/files/cs/asilomar08_final.pdf
        [y_rows,y_columns] = size(y);
        if y_rows<y_columns
            y = y';%y should be a column vector
        end
        [M,N] = size(A);%传感矩阵A为M*N矩阵
        theta = zeros(N,1);%用来存储恢复的theta(列向量)
        Pos_theta = [];%用来迭代过程中存储A被选择的列序号
        r_n = y;%初始化残差(residual)为y
        L = S;%初始化步长(Size of the finalist in the first stage)
        Stage = 1;%初始化Stage
        IterMax = M;
        for ii=1:IterMax%最多迭代M次
            %(1)Preliminary Test
            product = A'*r_n;%传感矩阵A各列与残差的内积
            [val,pos]=sort(abs(product),'descend');%降序排列
            Sk = pos(1:L);%选出最大的L个
            %(2)Make Candidate List
            Ck = union(Pos_theta,Sk);
            %(3)Final Test
            if length(Ck)<=M
                At = A(:,Ck);%将A的这几列组成矩阵At
            else
                theta_ls=0;
                break;
            end
            %y=At*theta,以下求theta的最小二乘解(Least Square)
            theta_ls = (At'*At)^(-1)*At'*y;%最小二乘解
            [val,pos]=sort(abs(theta_ls),'descend');%降序排列
            F = Ck(pos(1:L));
            %(4)Compute Residue
            %A(:,F)*theta_ls是y在A(:,F)列空间上的正交投影
            theta_ls = (A(:,F)'*A(:,F))^(-1)*A(:,F)'*y;
            r_new = y - A(:,F)*theta_ls;%更新残差r
            if norm(r_new)<1e-6%halting condition true 
                Pos_theta = F;
                %r_n = r_new;%更新r_n以便输出最新的r_n
                break;%quit the iteration
            elseif norm(r_new)>=norm(r_n)%stage switching 
                Stage = Stage + 1;%Update the stage index 
                L = Stage*S;%Update the size of finalist
                if ii == IterMax%最后一次循环
                    Pos_theta = F;%更新Pos_theta以与theta_ls匹配,防止报错
                end
                %ii = ii - 1;%迭代次数不更新
            else
                Pos_theta = F;%Update the finalist Fk
                r_n = r_new;%Update the residue
            end
        end
        theta(Pos_theta)=theta_ls;%恢复出的theta
    end

    3、SAMP单次重构测试代码

            以下测试代码基本与OMP单次重构测试代码一样。

    %压缩感知重构算法测试
    clear all;close all;clc;
    M = 128;%观测值个数
    N = 256;%信号x的长度
    K = 30;%信号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)/sqrt(M);%测量矩阵为高斯矩阵
    A = Phi * Psi;%传感矩阵
    y = Phi * x;%得到观测向量y
    %% 恢复重构信号x
    tic
    theta = CS_SAMP( y,A,5);
    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)%恢复残差

            运行结果如下:(信号为随机生成,所以每次结果均不一样)

            1)图:

            2)Command  windows

            Elapsed time is 0.079620 seconds.

            恢复残差:

            ans=

              1.3008e-014

    4、稀疏度K与重构成功概率关系曲线绘制例程代码

            以下测试代码为了与文献[1]的Fig.5(a)作比较。由于暂未研究学习LP算法,所以相比于文献[1]的Fig.5(a)缺少LP算法曲线。另外,本人的ROMP性能不如各文献中的ROMP,不知是不是算法理解有误。

    clear all;close all;clc;
    %% 参数配置初始化
    CNT = 1000;%对于每组(K,M,N),重复迭代次数
    N = 256;%信号x的长度
    Psi = eye(N);%x本身是稀疏的,定义稀疏矩阵为单位阵x=Psi*theta
    M_set = [128];%测量值集合
    KIND = ['OMP      ';'ROMP     ';'StOMP    ';'SP       ';'CoSaMP   ';...
        'SAMP,s=1 ';'SAMP,s=5 ';'SAMP,s=10'];
    Percentage = zeros(N,length(M_set),size(KIND,1));%存储恢复成功概率
    %% 主循环,遍历每组(K,M,N)
    tic
    for mm = 1:length(M_set)
        M = M_set(mm);%本次测量值个数
        K_set = 10:5:70;%信号x的稀疏度K没必要全部遍历,每隔5测试一个就可以了
        %存储此测量值M下不同K的恢复成功概率
        PercentageM = zeros(size(KIND,1),length(K_set));
        for kk = 1:length(K_set)
           K = K_set(kk);%本次信号x的稀疏度K
           P = zeros(1,size(KIND,1));
           fprintf('M=%d,K=%d\n',M,K);
           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)/sqrt(M);%测量矩阵为高斯矩阵
                A = Phi * Psi;%传感矩阵
                y = Phi * x;%得到观测向量y
                %(1)OMP
                theta = CS_OMP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(1) = P(1) + 1;
                end
                %(2)ROMP
                theta = CS_ROMP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(2) = P(2) + 1;
                end
                %(3)StOMP
                theta = CS_StOMP(y,A);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(3) = P(3) + 1;
                end
                %(4)SP
                theta = CS_SP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(4) = P(4) + 1;
                end
                %(5)CoSaMP
                theta = CS_CoSaMP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(5) = P(5) + 1;
                end
                %(6)SAMP,s=1
                theta = CS_SAMP(y,A,1);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(6) = P(6) + 1;
                end
                %(7)SAMP,s=5
                theta = CS_SAMP(y,A,5);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(7) = P(7) + 1;
                end
                %(8)SAMP,s=10
                theta = CS_SAMP(y,A,10);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(8) = P(8) + 1;
                end
           end
           for iii = 1:size(KIND,1)
               PercentageM(iii,kk) = P(iii)/CNT*100;%计算恢复概率
           end
        end
        for jjj = 1:size(KIND,1)
            Percentage(1:length(K_set),mm,jjj) = PercentageM(jjj,:);
        end
    end
    toc
    save KtoPercentage1000SAMP %运行一次不容易,把变量全部存储下来
    %% 绘图
    S = ['-ks';'-ko';'-yd';'-gv';'-b*';'-r.';'-rx';'-r+'];
    figure;
    for mm = 1:length(M_set)
        M = M_set(mm);
        K_set = 10:5:70;
        L_Kset = length(K_set);
        for ii = 1:size(KIND,1)
            plot(K_set,Percentage(1:L_Kset,mm,ii),S(ii,:));%绘出x的恢复信号
            hold on;
        end
    end
    hold off;
    xlim([10 70]);
    legend('OMP','ROMP','StOMP','SP','CoSaMP',...
        'SAMP,s=1','SAMP,s=5','SAMP,s=10');
    xlabel('Sparsity level K');
    ylabel('The Probability of Exact Reconstruction');
    title('Prob. of exact recovery vs. the signal sparsity K(M=128,N=256)(Gaussian)');

            本程序在联想ThinkPadE430C笔记本(4GBDDR3内存,i5-3210)上运行共耗时1591.830781,程序中将所有数据均通过“save KtoPercentage1000SAMP”存储了下来,以后可以再对数据进行分析,只需“load KtoPercentage1000SAMP”即可。

            本程序运行结果:

            参考文献[1]中的Fig.4(a):

    5、测量数M与重构成功概率关系曲线绘制例程代码

            以下测试代码为了与文献[1]的Fig.4(a)作比较。由于暂未研究学习LP算法,所以相比于文献[1]的Fig.4(a)缺少LP算法曲线。另外,本人的ROMP性能不如各文献中的ROMP,不知是不是算法理解有误。

    clear all;close all;clc;
    %% 参数配置初始化
    CNT = 1000;%对于每组(K,M,N),重复迭代次数
    N = 256;%信号x的长度
    Psi = eye(N);%x本身是稀疏的,定义稀疏矩阵为单位阵x=Psi*theta
    K_set = [20];%信号x的稀疏度集合
    KIND = ['OMP      ';'ROMP     ';'StOMP    ';'SP       ';'CoSaMP   ';...
        'SAMP,s=1 ';'SAMP,s=5 ';'SAMP,s=10'];
    Percentage = zeros(N,length(K_set),size(KIND,1));%存储恢复成功概率
    %% 主循环,遍历每组(K,M,N)
    tic
    for kk = 1:length(K_set)
        K = K_set(kk);%本次稀疏度
        M_set = 50:5:100;%M没必要全部遍历,每隔5测试一个就可以了
        %存储此稀疏度K下不同M的恢复成功概率
        PercentageK = zeros(size(KIND,1),length(M_set));
        for mm = 1:length(M_set)
           M = M_set(mm);%本次观测值个数
           P = zeros(1,size(KIND,1));
           fprintf('M=%d,K=%d\n',M,K);
           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)/sqrt(M);%测量矩阵为高斯矩阵
                A = Phi * Psi;%传感矩阵
                y = Phi * x;%得到观测向量y
                %(1)OMP
                theta = CS_OMP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(1) = P(1) + 1;
                end
                %(2)ROMP
                theta = CS_ROMP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(2) = P(2) + 1;
                end
                %(3)StOMP
                theta = CS_StOMP(y,A);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(3) = P(3) + 1;
                end
                %(4)SP
                theta = CS_SP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(4) = P(4) + 1;
                end
                %(5)CoSaMP
                theta = CS_CoSaMP(y,A,K);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(5) = P(5) + 1;
                end
                %(6)SAMP,s=1
                theta = CS_SAMP(y,A,1);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(6) = P(6) + 1;
                end
                %(7)SAMP,s=5
                theta = CS_SAMP(y,A,5);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(7) = P(7) + 1;
                end
                %(8)SAMP,s=10
                theta = CS_SAMP(y,A,10);%恢复重构信号theta
                x_r = Psi * theta;% x=Psi * theta
                if norm(x_r-x)<1e-6%如果残差小于1e-6则认为恢复成功
                    P(8) = P(8) + 1;
                end
           end
           for iii = 1:size(KIND,1)
               PercentageK(iii,mm) = P(iii)/CNT*100;%计算恢复概率
           end
        end
        for jjj = 1:size(KIND,1)
            Percentage(1:length(M_set),kk,jjj) = PercentageK(jjj,:);
        end
    end
    toc
    save MtoPercentage1000SAMP %运行一次不容易,把变量全部存储下来
    %% 绘图
    S = ['-ks';'-ko';'-yd';'-gv';'-b*';'-r.';'-rx';'-r+'];
    figure;
    for kk = 1:length(K_set)
        K = K_set(kk);
        M_set = 50:5:100;
        L_Mset = length(M_set);
        for ii = 1:size(KIND,1)
            plot(M_set,Percentage(1:L_Mset,kk,ii),S(ii,:));%绘出x的恢复信号
            hold on;
        end
    end
    hold off;
    xlim([50 100]);
    legend('OMP','ROMP','StOMP','SP','CoSaMP',...
        'SAMP,s=1','SAMP,s=5','SAMP,s=10');
    xlabel('No. of Measurements');
    ylabel('The Probability of Exact Reconstruction');
    title('Prob. of exact recovery vs. the number of measurements(K=20,N=256)(Gaussian)');

            本程序在联想ThinkPadE430C笔记本(4GBDDR3内存,i5-3210)上运行共耗时373.898668,程序中将所有数据均通过“save SAMPMtoPercentage1000”存储了下来,以后可以再对数据进行分析,只需“load SAMPMtoPercentage1000”即可。

            本程序运行结果:

            参考文献[1]中的Fig.5(a):


    6、结语

            读几遍SAMP的被提出的参考文献[1]的题目:Sparsity adaptive matching pursuit algorithm for practical compressed sensing,注意后面的“for practical compressed sensing”,这也就解释了很多网友的疑问,程序中的信号直接假设是稀疏的,但现实中的信号都不知道稀疏度是多少啊?前面大部分重构算法都要求输入稀疏度K,那怎么办呢?这时SAMP出场了,它是专为了“practical compressed sensing”而提出的,因为现实中的信号一般稀疏度未知或者说不是严格稀疏的,所要需要稀疏度自适应的算法,也就是SAMP了。

            另外在测试时发现前面的CoSaMP有缺陷,因此对此进行了更新,在主循环中加入了:

                if kk == 1
                    theta_ls = 0;
                end

    以防止第1就跳出循环导致theta_ls未定义,其它地方未改。

     参考文献:

    [1]Thong T.Do,Lu Gan,NamNguyen,Trac D.Tran.Sparsityadaptive matching pursuit algorithm for practical compressed sensing[C].AsilomarConference on Signals,Systems,andComputers,Pacific Grove,California,2008,10:581-587.

    (Availableat: http://dsp.rice.edu/sites/dsp.rice.edu/files/cs/asilomar08_final.pdf)

    [2]付自杰.cs_matlab. http://www.pudn.com/downloads641/sourcecode/math/detail2595379.html

    [3]杨真真,杨震,孙林慧.信号压缩重构的正交匹配追踪类算法综述[J]. 信号处理,2013,29(4):486-496.

    展开全文
  • 基于块稀疏贝叶斯学习的多任务压缩感知重构算法
  • 为了提高现有块压缩感知重构算法的性能,提出了基于全变分和混合变分模型的块压缩感知(简称BCS-TV和BCS-MV)算法。该方法以块为单位进行图像采样,以自然图像正则项的稀疏性为先验条件,通过变型的增广拉格朗日交替...
  • 压缩感知

    千次阅读 2018-10-07 21:26:43
    本文综述了压缩感知的理论框架及关键的技术问题,并着重介绍了压缩感知稀疏重构中的主流贪婪算法,通过算法实验分析了各种算法的重构性能。 压缩感知理论主要包括信号的稀疏表示,编码测量和信号...

    压缩感知理论及其算法研究报告

    摘 要:随着信息技术的发展,人们对信息的巨量需求以及硬件的发展缓慢造成了信号采样,传输和存储的巨大压力。如何解决在现有的硬件基础上传输大量的信息成为热点研究的内容。近年来压缩感知的出现为缓解这些压力提供了解决的办法。本文综述了压缩感知的理论框架及关键的技术问题,并着重介绍了压缩感知稀疏重构中的主流贪婪算法,通过算法实验分析了各种算法的重构性能。
    关键词:压缩感知 贪婪算法 稀疏重构
    1.引言
    传统的信号采样定律-那奎斯特采样定律定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍[1]。这样对于系统处理信息的硬件需求提出了很高的要求,同时在实际应用当中为了节约存储空间和降低传输成本,需要对采集的数据进行压缩处理,这样会造成大量采集的数据浪费。因而压缩感知技术应运而生,打破了传统的信号采样定理,从不同的角度解决了信号采样的问题。使得在保证信息不损失的情况下,用远低于奈奎斯特采样定理要求的速率采样信号。压缩感知理论指出只要信号是可压缩的或在某个变换域是稀疏的,那么就可以用一个与变换基不相关的观测矩阵将变换所得高维信号投影到一个低维空间上,然后通过求解一个优化问题就可以从这些少量的投影中以高概率重构出原信号[2]。在该理论框架下,采样速率不决定于信号的带宽,而决定于信息在信号中的结构和内容。压缩感知理论使得采样和计算的成本大大降低。
    当前主流的压缩感知重构算法主要包括三类:凸优化方法,贪婪算法和基于贝叶斯框架提出的算法[3]。本文主要以压缩感知重构算法为主线,介绍了主流的贪婪追踪类算法包括正交匹配追踪(OMP)算法,正则化正交匹配追踪(ROMP)算法,分段正交匹配追踪(STOMP)算法,稀疏度自适应匹配追踪(SAMP)算法,并且对这些算法的优缺点进行了比较通过仿真实验分析了各种算法的重构性能。
    2.压缩感知基本理论
    压缩感知理论主要包括信号的稀疏表示,编码测量和信号重构算法三个方面。信号的稀疏表示是压缩感知的先验条件,信号的稀疏表示是将信号投影到正交变换基时,绝大多数的变换稀疏的绝对值很小,所得到的变换向量是稀疏的或者是近似稀疏的。任意的N维信号都可以通过某个稀疏矩阵线性表示。例如x为N维的信号,Ψ是x对应的稀疏矩阵,则x可以表示为:x = ∑_(i=1)^N▒〖θ_i ψ_i 〗其中,Ψ是N列ψ_i组成的矩阵,θ_i是x在ψ_i下的投影系数,θ是投影系数向量,θ=Ψ^Tx。稀疏矩阵一般根据信号本身特点灵活选取,常见的是离散余弦变换基,快速傅里叶变换基,离散小波变换基。在编码测量中首先选定一个平稳的,与稀疏基Ψ不相关的M × N 维的观测矩阵Ф,对θ进行观测得到观测集合Y = Фx = ФΨθ。令A=ФΨ为M × N 的矩阵,称为感知矩阵。Y可以看作是稀疏信号θ关于测量矩阵A的测量值,上式整体可以表示为图(1)。
    在这里插入图片描述

    在压缩感知的整个过程中,测量矩阵的设计是一个关键步骤。测量矩阵性质的好坏,关系到能否达到压缩的目的,同时又直接关系到信号能否被精确重构。设计一个合适的观测矩阵应该既能达到压缩采样的目的,同时又可以保证信号可以无失真的重构。有限等距性质[4]在理论上较好的解决了这个问题,只要感知矩阵A能够满足RIP条件,那么信号可以由少量的测量值经过重构算法精确的恢复出来,也就是说,理论上我们可以设计一个测量矩阵使得感知矩阵A满足RIP规则,这样既可以达到压缩采样的目的,又能保证信号无失真的恢复出来。RIP规则的数学表达描述为:设A=ФΨ为M × N 的矩阵,假设一个常数δ_k,使得对于任意向量s和所有的矩阵A_k,满足以下关系4
    (1-δ_k)〖||s||〗_2≤〖||A_k s||〗_2≤(1+δ_k)〖||s||〗2 (2-1)
    其中A_k是A子矩阵,大小为M×K,有限等距常数为δ_k∈(0,1)。
    如果A满足约束等距原则,保证了信号恢复的唯一性。实际上要直接验证矩阵是否满足RIP条件是一件很困难的事情。在实际应用中,我们可以用RIP准则的一种等价情况,即非相干性来指导测量矩阵的设计。非相干性指测量矩阵中的行向量不能被稀疏矩阵线性表出同理稀疏矩阵中的列向量也不能被测量矩阵中的任意行向量线性表出。相干性的度量由相干度[5]如图(2-2)所示,关系数旳取值范围为U∈(1,√N)
    U(Ф,Ψ)=√Nmax{|Ф_k,Ψ_J|} (2-2)
    Donoho等人在文献[6]中指出服从高斯分布的随机矩阵可以高概率满足不相关性,对于一个大小为M×N的随机高斯矩阵Ф,Ф中每个值满足均值为0,方差为1/M的高斯分布,即Ф
    (i,j) ~ N(0,1/M)。可以证明当M>cKlog(N/K)时,A = ФΨ在很大概率下能满足RIP条件。而且随机高斯矩阵与大多数固定正交基构成的矩阵不相关,因此随机高斯测量矩阵满足理论上的最优性。目前大多数情况下都采用随机高斯矩阵作为压缩感知的测量矩阵,本文实验所用到的观测矩阵也是随机高斯矩阵。当选取好观测矩阵,压缩感知问题转化为求解(2-1)式的最优l_0范数问题
    min〖||θ||〗_0 s.t. Aθ = Y (2-3)
    如果得到x的稀疏表示θ,可以进一步由变换基Ψ通过下式(2-2)重构原始信号
    x = Ψθ (2-4)
    由于矩阵A的维度为M × N(M << N),所以方程(1)有无穷多解,通过贪婪算法可以逐步逼近最优解,直到求出原始信号。最早提出的是匹配追踪算法(MP),MP算法的基本思想是在每一次迭代过程中。从感知矩阵中选择与信号最匹配的原子来进行稀疏逼近求出余量,在稀疏度已知的情况下继续迭代选出与余量最匹配的原子。最匹配是指当前余量与原子的内积最大。经过数次迭代,该信号便可由这些原子线性表示,但是当前的余量仅与当前的原子正交而不是与已选定的所有的原子正交使,得每次迭代的结果可能是次最优的往往需要迭代多次。下面介绍四种主流的贪婪类重构算法并分析它们的优缺点进行比较。
    3.正交匹配追踪类算法
    3.1正交匹配追踪(OMP)算法
    OMP算法作为MP算法的延申,仍然沿用了MP算法中原子选择的标准,不同的是OMP算法利用Gram-Schmidt正交化对已选定的原子进行正交化处理,再将信号在这些正交原子构成的张量空间投影,得到信号在选定原子上的分量和余量,然后用相同的方法迭代分解余量。通过每次对所选原子的正交化处理保证了迭代的最优性,从而减少了迭代的次数[7]。
    OMP的具体步骤如下:
    (1)令初始余量r_0 = Y,稀疏度为K,索引值集合J为空集,支撑集合Λ为空集;
    (2)计算相关系数u(余量与原子的内积),并将u中最大值对应的索引值存入J;
    (3)更新支撑集合 ,将更新索引对应的原子存入Λ;
    (4)利用最小二乘法得到重建信号,同时对余量进行跟新;
    (5)若迭代次数小于K,r = r_new,n = n+1,转到第二步继续迭代;否则,停止迭代。
    为了说明OMP算法的重建性能,利用MATLAB R2016a作为平台,分两次实验验证。第一次实验,假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。观测矩阵为128×256高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如图(2)所示,实验误差为o(10e-15 )
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    第二次实验,测试对象为256×256lena图像。观测矩阵采用随机高斯矩阵,M和N表示观测矩阵的行数和列数,M/N表示压缩比0.5,实验结果如图(3),PSRN值为26.5536。

    在这里插入图片描述
    在这里插入图片描述

    OMP算法虽然保证了每次迭代的最优性,减少了迭代的次数。但是,它每次迭代中仅选取一个原子来跟新原子的集合,这样必然会付出巨大的重建时间代价。OMP算法首次把最小二乘法引入压缩感知重建中,用正交化的思想来计算重建信号使得结果更加准确,这是压缩感知重建算法取得重大研究进展的一个标志[8]。
    3.2正则化正交匹配追踪(ROMP)算法
    ROMP算法首先根据相关原则进行原子的一次筛选,通过求余量r与测量矩阵Ф中各个原子之间的内积的绝对值,来计算相关系数u,并按照此方法筛选出的K个原子的索引值存到候选集J中以便进行原子的二次筛选。
    ROMP算法采用正则化过程进行原子的二次筛选,将J中索引值对应的原子的相关系数分成若干,要求分组的原子在各自所在子集内的原子同误差向量的内积的最大值与最小值的比值在两倍以内[6]。数学表达式为(3-1)
    |u(i)| ≤ 2|u(j)|, i,j ∈J (3-1)
    然后选择能量最大的一组相关系数对应的原子索引值存入J_0中,该正则化过程可以使得ROMP算法最多经过K次迭代便可得到一个原子数|Λ|小于2K的支撑集Ф_Λ用于重建信号,对于没有选入支撑集的原子,正则化过程则能保证它们的能量一定远小于被选原子的能量,是一种简单有效的原子筛选方法。
    ROMP的步骤:
    (1)初始化余量r_0 = Y,估计信号稀疏度为K,迭代次数n = 1,索引值Λ为空集,J为空集;
    (2)计算相关系数u,并从u中寻找K个最大值对应的索引值存入J中;
    (3)对J中索引值对应原子的相关系数进行正则化,并将正则化的结果存入J_0;
    (4)更新支撑集Ф_Λ,其中Λ=Λ∪J_0;
    (5)利用最小二乘法得到重建信号,同时对余量进行跟新;
    (6)若|Λ| 2K,则停止迭代,否则令r =r_new,n = n+1,转到步骤(2)继续迭代。
    为了说明ROMP算法的重建性能,分两次实验实现算法重构,利用MATLAB R2016a作为平台。实验1假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。观测矩阵为高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如图(4)误差为o(10 )

    实验2假定信号是四个余弦函数式表示
    x=0.3cos(2π50t)+0.6cos(2π100t)+0.1cos(2π200t)+0.9cos(2π400t)
    我们运用快速傅里叶变换对一维信号 x 进行变换,稀疏度为7,测量矩阵为64×256高斯矩阵实验结果如图(5),误差为o(10 )。

    ROMP算法在OMP算法的基础上加入了正则化方法,以实现一次迭代选择多个原子的目的,从而提高重建速度,减少了算法的复杂度。但其代价是需要预估计信号的稀疏度,并且需要较多的采样数据
    3.3分段正交匹配追踪(STOMP)算法
    STOMP 算法采用分阶段的思想首先根据相关原则来筛选原子,利用阈值的方法从原子集合中选择和迭代余量匹配的原子,与OMP 算法不同的是,它并不是每次固定选择一个匹配原子,而是给定标准为大于门限值t_s δ_t的原子。δ_t为规范噪音水平, δ_t=〖||r_t ||〗2/√M。r_t是上一次跟新的余量值[9]。利用此标准可以一次找到多个原子,减少了匹配的次数,提高了追踪的效率; 然后更新支撑集和原子,并用最小二乘法求得近似解,同时完成对余量的更新。
    STOMP算法步骤:
    (1)初始化余量r_0 = Y,迭代次数默认为10,门限参数t_s默认为2.5。计数器t=1;
    (2)计算感知矩阵各列原子与余量的内积,选择大于门限值t_s δ_t的感知矩阵对应的原子列向量存入集合J_0 ;
    (3)跟新支撑集Λ_t = Λ
    (t-1) ∪ J_0,在支撑集上利用最小二乘法求出跟新余量;
    (4)若t值小于迭代次数s,返回(2)继续执行,否则退出循环。
    为了说明STOM算法的重建性能,利用MATLAB R2016a作为平台。假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。观测矩阵为高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如图(6)所示
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    STOMP 算法将 OMP 算法进行了一定程度的简化,提高了计算速度,但是由于其在每次迭代的过程中寻找的都不是信号的最佳表示,致使重构的精度降低,导致在实际中其重构的信号的精度远不如OMP 算法重构的信号的精度。门限参数和默认迭代次数的设置很大程度决定了算法的精度,使得算法的灵活度差。
    3.4稀疏度自适应匹配追踪(SAMP)算法
    以上算法均建立在稀疏度已知的情况下才能有效,但在实际情况中,信号的稀疏度信息往往事先是不可得的,SAMP相比较其他算法最吸引的就是可以不需要知道稀疏度的先验信息 ,这使得SAMP重建算法在实际应用中更加广泛[10]。
    SAMP算法中采用转换阶段(stage) 的方式逐步增加该原子数,将同一个迭代过程分成多个阶段,设置一个可变步长(size)代替所选原子数目,相邻两个阶段所对应的支撑集的大小之差即为当前步长,随着步长的增加和支撑集的不断增大,实现了在未知稀疏度的前提下步长逐步逼近稀疏度K进而实现精确重建出原始信号的目的[11]。SAMP算法引入了回溯的思想,每次迭代都重新评估原子的有效性。
    SAMP算法步骤:
    (1)初始化余量r_0= Y,支撑集F_0为空集,候选集S_0为空集,初始步长为s,步长增量初始倍数j=1;
    (2)选择感知矩阵内的原子和余量内积最大的s个列向量,将对应的原子列向量放入候选集s_k中;
    (3)合并支撑集F_k和候选集s_k得到跟新后的支撑集C_k;
    (4)以C_k的原子为基准,由最小二乘法得到重建信号并选择最大的s个元素所对应的原子,组成新的的支撑集F;
    (5)由初始余量,支撑集F,利用最小二乘法计算更新余量r;
    (6)如果满足迭代停止条件〖||r||〗_2 ≤ε(固定阈值)则退出循环,如果满足〖||r_k ||〗2 〖||r(k-1) ||〗_2则跟新步长倍数j = j + 1,跟新的步长为s = j × s转入步骤二继续迭代,否则更新支撑集,更新余量,转入步骤二继续迭代。
    为了说明SAMP算法的重建性能,利用MATLAB R2016a作为平台,分2次实验验证。第一次实验,假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。固定阈值为0.1,观测矩阵为128×256高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如(7)所示,误差为o(10 )。

    第二次实验,测试对象为256×256lena图像。观测矩阵采用随机高斯矩阵,M和N表示观测矩阵的行数和列数,M/N表示压缩比,实验的压缩比为0.5,阈值为100,验的PSRN值为24.3。实验结果如图(8)
    在这里插入图片描述
    在这里插入图片描述

    SAMP算法通过提供了严格的误差界限(固定阈值)且不需已知信号的稀疏度 K 就可以重构信号,固定阈值的选取同测量矩阵有着很大的联系。初始步长的选取目前任然是一个问题,SAMP算法的初始步长只需要小于稀疏度K,为了避免过度检测,如果不知道稀疏度,选择初始步长为1可以确保足够的精度。但是初始步长越小,算法运行的时间也就越大,这就造成了过度检测与运行时间的矛盾。经验表明,对于指数衰减的信号初始步长选的较小比较好,对于二进制稀疏信号选择步长较大比较好。如果算法能随着算法逐渐接近真实的稀疏度K值而逐渐缩小这样会提高算法的精度。另外,有学者提出了稀疏度自适应子空间追踪算法,该算法能较为精确完成信号重构,不需要设定步长,能够估计稀疏度大小,但是输入参数对算法影响较大。也有学者提出变步长的自适应步长的稀疏度估计的方法[12],根据每次迭代得到的残差值,通过函数Ln=[L_(n-1)log⁡(γ)/log⁡((γ+0.9ε)) /2.1],其中γ=1-|(|r_2 |)|/||y_2 ||,来确定步长的大小,当步长远离稀疏度K时步长较大,当接近K时稀疏度较小。
    3.5基于小波变换的分块压缩感知
    根据压缩感知理论,图像重构时如果图像尺寸太大,为了维持一定的精度,测量矩阵所需要的观测值随之增加,造成了观测矩阵对于有限的存储空间显得十分巨大,而硬件难于满足需求。Lu Gan [13]提出了分块压缩感知12,该方法指出: 可以将原始图像分成一些大小相等的图像块,采用相同的观测矩阵单独对每个图像块进行观测,大大简化了计算复杂度,这种方法能解决大尺度图像实时传输的问题。分块图像的观测矩阵远远小于未分块的图像,降低了对硬件的需求,利用PC端将采集的样本重构恢复,并实现图像融合。
    本实验利用MATLAB R2016a作为平台,对每一个子块采用小波变换,保留每块的低频小波稀疏,对高频小波稀疏进行采样得到测量向量。13重构时利用正交匹配追踪(OMP) 算法对高频系数进行恢复,再进行小波反变换重构图像。
    实验步骤:
    选取大小为256 × 256的二维图像,将图像分为16块大小为64 × 64的图像;
    采用小波变换对图像进行稀疏化表示,利用50 × 64的观测矩阵进行观测得到观测向量;
    采用OMP算法对观测向量进行重构恢复;
    对重构的恢复矩阵进行小波反变换,得到重构图像。
    实验结果如图(9)所示
    在这里插入图片描述
    在这里插入图片描述

    为了比较几种算法的恢复精度,在固定的稀疏度12下对上述算法进行实验,实验信号为定常信号256 × 1的列向量,观测随着观测矩阵行数M的数目变化对一维信号恢复正确率的变化,实验中对每次M的取值实验100次,计算恢复率,信号之间的误差达到10 即视为正确,M的取值为从稀疏度K每次增加十个直到观测矩阵列数256。实验结果如下图所示(10)所示

    图(10)为四种算法随着测量值M取值的不同,恢复值百分数变化
    图中可以看出ROMP算法到达较高的精确度所需要的观测矩阵行数较其余的算法高,压缩量较低。SAMP算法在稀疏度未知的情况下,由较小的测量值得到恢复精确度较高。
    4.总结
    压缩感知利用信号稀疏的特性将原来基于奈奎斯特采样定理的信号采样过程转化为基于优化计算恢复信号的观测过程。有效缓解了高速采样实现的压力,减少了处理、存储和传输的成本,使得用低成本的传感器将模拟信息转化为数字信息成为可能,同时压缩感知使得信号的恢复率理论上比传统压缩算法更加精准。
    研究还存在如下问题:
    (1)对于一个稳定的优化算法,是否存在最优的观测矩阵使得观测值在达到一定的精度范围而观测数目控制在较少的范围。
    (2)如何设计有效的软硬件来应用压缩感知理论解决大量的实际问题,这方面的研究还不成熟。
    (3)含噪信号或采样过程中引入噪声时的信号重构问题也是难点所在。
    5.参考文献
    [1] 石光明, 刘丹华, 高大化等. 压缩感知理论及其研究进展[D]. 2009.
    [2] 李卓凡, 闫敬文. 压缩感知及应用[J]. 微计算机应用, 2010, 31(03): 12–16.
    [3] 李珅, 马彩文, 李艳等. 压缩感知重构算法综述[J]. 红外与激光工程, 2013, 42(S1): 225–232.
    [4] 吴赟, 丛琳. 压缩感知测量矩阵的研究[D]. 西安电子科技大学, 2012.
    [5] DONOHO D L. Compressed sensing[J]. IEEE Transactions on Information Theory, 2006, 52(4): 1289–1306.
    [6] NEEDELL D, VERSHYNIN R. Signal Recovery From Incomplete and Inaccurate Measurements Via Regularized Orthogonal Matching Pursuit[J]. Ieee Journal of Selected Topics in Signal Processing, 2010, 4(2): 310–316.
    [7] 杨真真, 杨震, 孙林慧. 信号压缩重构的正交匹配追踪类算法综述[J]. 信号处理, 2013, 29(04): 486–496.
    [8] TROPP J A, GILBERT A C. Signal Recovery From Random Measurements Via Orthogonal Matching Pursuit[J]. IEEE Transactions on Information Theory, 2007, 53(12): 4655–4666.
    [9] 汪浩然, 夏克文, 牛文佳. 分段正交匹配追踪(StOMP)算法改进研究[J]. 计算机工程与应用, 2017, 53(16): 55–61.
    [10] DO T T, GAN L, NGUYEN N等. Sparsity adaptive matching pursuit algorithm for practical compressed sensing[C]//2008 42nd Asilomar Conference on Signals, Systems and Computers. 2008: 581–587.
    [11] 杜秀丽, 胡兴, 顾斌斌等. 基于变步长的正则回溯SAMP压缩感知重构算法[J]. 计算机应用研究, 2018, 35(04): 1084–1087.
    [12] FU Y, LIU S, REN C. Adaptive Step-Size Matching Pursuit Algorithm for Practical Sparse Reconstruction[J]. Circuits Systems and Signal Processing, 2017, 36(6): 2275–2291.
    [13] 曹玉强, 柏森, 曹明武. 图像自适应分块的压缩感知采样算法[J]. 中国图象图形学报, 2016, 21(04): 416–424.

    展开全文
  • 为了克服传统的压缩感知重构中正交小波方向选择性差的局限性,针对图像信号方向性决定了需要 在不同纹理区域选择滤波器以使变换后信号能量更加稀疏,提出一种基于自适应方向提升稀疏表示的重构方法。 重构时,...
  • 基于深度学习稀疏测量的压缩感知图像重构.pdf
  • 压缩采样匹配追踪(CoSaMP)算法是一种有效的压缩感知重构算法,针对其每次迭代选择与去除原子的原则不同导致支撑集估计不够准确,提出一种压缩采样硬阈值追踪重构算法。该算法去除原子时结合硬阈值追踪(HTP)算法...
  • 压缩感知重构算法综述-学习笔记

    千次阅读 2021-03-10 09:43:00
    压缩感知理论:对于稀疏或可压缩的信号,能够以远低于奈奎斯特频率对其进行采样,并通过设计重构算法来精确的恢复信号。 文章工作: 1、介绍压缩感知理论的基本框架,讨论该理论关于信号压缩的采样过程; 2、综述...

    论文信息:李珅,马彩文,李艳,陈萍.压缩感知重构算法综述[J].红外与激光工程,2013,42(S1):225-232. 

    目录

    文章工作:

    问题一:压缩感知涉及三个比较重要的层面

    问题二:压缩感知理论简介

    (一)基本思想

    (二)压缩感知采样过程

    问题三:压缩感知重构算研究

    1、第一类:贪婪迭代算法;

    2、第二类:凸优化算法或最优化逼近方法;

    3、第三类:基于贝叶斯框架提出的重构算法;

    4、其他算法

    问题四:L1范数凸优化算法

    问题五:贪婪算法

    OMP算法

    MOMP算法(multi-candidate OMP)

    ROMP算法(Regularized Orthogonal Matching Pursuit)

    TOMP算法(Tree-based Orthogonal Matching Pursuit)树型正交匹配算法

    CoSaMP算法


    压缩感知理论:对于稀疏或可压缩的信号,能够以远低于奈奎斯特频率对其进行采样,并通过设计重构算法来精确的恢复信号。

    文章工作:

    1、介绍压缩感知理论的基本框架,讨论该理论关于信号压缩的采样过程;

    2、综述了压缩感知理论的重构算法,,比较了最优化算法和贪婪算法;

    3、讨论了压缩感知理论重构算法未来的研究重点。

     

    问题一:一般来说,压缩感知涉及三个比较重要的层面

    1、信号稀疏域的选取,是压缩感知理论的基础和前提;

    2、观测矩阵的选取;(已证明:大部分具有一致分布的随机矩阵都可以作为观测矩阵)

    3、重构算法的设计,由于压缩感知采用的是全局非自适应测量方法,观测数量远远小于信号长度,从而数据采集量大大减少;

     

    问题二:压缩感知理论简介

    (一)基本思想

     

    上述内容,以Nyquist-Shanon采样为准则的编码和解码方法有以下缺点:

    1、采样后压缩,会导致浪费大量采样资源,变换过程浪费时间;

    2、由于需要保留的K个重要分量的位置是随着信号的不同而不同,所以这种编码方式是自适应的,需要分配多余的存储空间以保留K个重要的位置;

    3、可能存在丢失分量的情况,导致较差的抗干扰能力;

    (二)压缩感知采样过程

    压缩感知理论对于测量系有两个主要的分类:

    1、随机测量系;参考:

        [1]Baraniuk R,Davenport M,DeVore R,et al. A simple proof of the restricted isometry property for random matrices[J]. Constructive Approximation,2007.

        [2]Cand`es E,Tao T. Near optimal signal recovery from random projections: Universal encoding strategies[J]. IEEE Transactions on Information Theory,2006,52: 5406 - 5425.

    2、非相关测量系;参考:

        [1]Emmanuel J Candès. Compressive sampling [C]/ / Proceeding of the International Congress of Mathematicians,2006,3: 1433 -1452 .

     

    (3)重构信号,区别于奈奎斯特理论的线性感知问题,观察数量m远远小于信号长度n,重构面临着求解一个欠定方程组的问题。当信号x是稀疏或可压缩的,求解欠定方程组的问题可以转化为最小0范数问题:

          当测量矩阵\Phi满足约束等距性质时,组合优化问题(\iota _{0}约束优化问题)可转化为数值上容易处理\iota _{1}约束的凸优化问题:

    其他重构信号的方法,包括:

    ①将l0范数松弛为lp范数;

    ②通过先验分布引入稀疏性,再用Bayesian方法实现信号稀疏重构;

    ③使用启发式算法(heuristic algorithms),如借鉴图模型和编码理论中的belief-propagation和消息传递技术。

     

    问题三:压缩感知重构算研究

    1、第一类:贪婪迭代算法;

    基本原则就是通过迭代的方式寻找稀疏向量的支撑集,并且使用受限支撑最小二乘估计来重构信号。

    常用算法包括:匹配追踪算法( MP ,matching pursuit) 、正交匹配追踪算法 ( OMP,orthogonal matching pursuit ) 、分段OMP算法( StOMP,stagewise orthogonal matching pur- suit) 、规范OMP算法( ROMP,Regularized Orthogonal Matching Pursuit ) 、CoSaMP 算法 ( compressive sam- plingmatchingpursuit)、迭代硬阈值法(iterativehard thresholding,IHT) 以及 GraDeS( gradient descent with sparsification) 等

    2、第二类:凸优化算法或最优化逼近方法;

        基本原理:将非凸问题转化为凸问题求解找到信号的逼近,其中最常用的方法为基础追踪算法(Basic Pursuit)。算法提出了使用L1范数替代L0范数来解决最优化问题,以便使用线性方法来执行。另一种算法为Focuss算法,该算法使用Lp范数(P<=1)替代L0范数求解最优化问题。

        该类算法计算速度慢(时间复杂度为N^3),但需要测量的数据少(O(K*log(N/K)))且精度高

        常见的凸松弛算法包括:GPSR(Gradient Projection for Sparse Reconstruction)算法  和  SpaRSA(sparse reconstruction by separable approximation)算法。

    3、第三类:基于贝叶斯框架提出的重构算法;

        此类算法考虑了时间相关性,提高重构精度该类算法包括:新期望极大值( Expectation - Maximization,EM) 算法、贝叶斯压缩感知( BCS,Bayesian Compressive Sensing) 算法、基 于单测量向量( SMV,single measurement vector) 模型提出的 SBL( sparse Bayesian Learning) 算法和基于多测量向量( MMV,Multiple Measurement Vectors) 模型提出 的MSBL等。

    4、其他算法

        要求信号的采样支持通过分组快速测试重建,如傅里叶采样,链式追踪和HHS(Heavg Hitters On Steroids)追踪。

     

    问题四:L1范数凸优化算法

        基于L1范数凸优化算法的稀疏重构模型主要由两类:

    上面LS 为LASSO问题(LASSO : Least Absolute Shrinkage and Selection Operator,最小绝对收缩与选择算子)。BP 为基追踪去噪问题。

    求解LS和BP问题时,将约束条件转换为惩罚项,构造非约束优化问题,即:

        迭代阈值技术( iterative thresholding algorithm) 在稀疏优化算法中经常被采用,一些迭代阈值算法被用在解决 LASSO 问题上,可以使迭代过程中每一次迭代的计算量减小,这样就可以将 LASSO 用于解决高维方 面的问题。在迭代阈值技术中,迭代收缩算法解决 凸优化问题十分有效,包括 IHT、GraDeS、PCD ( parallel coordinate descent) 以及 FISTA ( fast - iterative - shrinkage thresholding algorithm ) 等。 对于 IHT 和 GraDes 算法,由于该算法使用负梯度作为搜索方向,即 Landweber 迭代,所以造成算法执行效率偏低。

    问题五:贪婪算法

    OMP算法

            正交匹配追踪算法;可以通过已知的关于信号的O(mlnd)个随机线性测量来恢复d维空间中的信号。

    MOMP算法(multi-candidate OMP)

            是基于OMP改进得到的。在每一次的迭代中,OMP算法只选择一个候选列加入到原子集合中,而MOMP算法选择多个候选列加入到最优原子集合,从而减少迭代的次数,降低重构信号的计算复杂度。

    ROMP算法(Regularized Orthogonal Matching Pursuit)

            该算法可以通过更快速且重构结果更加均衡稳定。   本质:基于OMP算法进简化:通过设置阈值的方法来找到替代的信号,同时以逼近精度为代价进一步提高了计算速度,更适合求解大规模问题。

    TOMP算法(Tree-based Orthogonal Matching Pursuit)树型正交匹配算法

            是通过构造稀疏树并在数中追踪重要的系数来实现的。算法的优点:考虑到了信号的多尺度分解时稀疏信号在各奇异子带位置的关系,从而构建了比BP和OMP算法更加快速且重构精度更高的算法。

    CoSaMP算法

            压缩感知追踪算法( CoSaMP,Compressed Sampling Matching Pursuit)。

    总结:今后对于压缩算法的改进主要集中在三个方面:

    (1) 构造更稳定、计算复杂度低且需要较少的观测次数的重构算法来精确地回复可压缩信号;

    (2) 构造有效的重构算法来精确回复含噪信号或在采样过程中被引入噪声的信号;

    (3) 将理论与实际相结合,根据特定的领域或应用构造具有针对性的有效可行的压缩算法。

    展开全文
  • 文中针对无线通信系统中稀疏信道估计算法进行研究,通过对比传统的基于训练序列的信道估计算法LS,对基于压缩感知稀疏信道估计算法OMP进行分析。讨论了训练信号长度、信道稀疏度及噪声强度对整个估计性能的影响。...
  • 首先提出一种基于遗传算法的压缩感知重构新方法, 并设计了具体的算法流程. 该方法运用遗传迭代思想, 在稀疏度未知的情况下可准确重构出原始信号, 避免了子空间跟踪问题. 在此基础上, 进一步将所提新方法应用于...
  • 压缩感知原理简介

    万次阅读 多人点赞 2019-07-15 21:51:23
    压缩感知,compressed sensing又称compressed sampling,是在采样过程中完成了数据压缩的过程。 压缩感知在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。 信号采样 学过通信原理或信号与系统的都...
  • 从测量矩阵和稀疏矩阵的互相关性角度出发,通过对测量矩阵和稀疏矩阵所...通过在DWT、DCT下的压缩感知图像重构实验验证了该方法的可行性,恢复效果得到一定程度的提高,相比于传统的小波恢复重构,达到了预期的效果。
  • 一维时域稀疏信号压缩感知重构算法,稀疏度一定情况下的omp
  • 该方法基于线性分组码中稀疏校验矩阵的零化子特性,建立了以误差向量为目标信号的线性规划问题,实现了低密度奇偶校验(LDPC)码的压缩感知重构。仿真结果表明:在加性高斯白噪声信道和原对偶内点算法下,选取的3种LDPC码...
  • 浅谈压缩感知(二十七):压缩感知重构算法之稀疏度自适应匹配追踪(SAMP) 主要内容: SAMP的算法流程SAMP的MATLAB实现一维信号的实验与结果稀疏度K与重构成功概率关系的实验与结果 一、SAMP的算法流程 前面所述...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,251
精华内容 900
关键字:

压缩感知稀疏重构