精华内容
下载资源
问答
  • 压缩感知算法MATLAB编写,简单易懂,有注释)
  • 压缩感知重构Matlab重构算法MATLAB编写、含有SP算法、各类重构算法
  • 压缩感知,又称压缩采样,压缩传感。它作为一个新的采样理论,它通过开发信号的稀疏特性,在远小于Nyquist 采样率的条件下,用随机采样获取信号的离散样本,然后通过非线性重建算法完美的重建信号。
  • 数据信号处理matlab,程序实现压缩感知重构过程,仅供参考。
  • 压缩传感,压缩感知,压缩采样,稀疏表达,稀疏表示,的入门例子
  • 压缩感知算法matlab

    2021-04-22 21:14:42
    MATLAB代码如下: 压缩感知仿真实例 压缩感知仿真实例在MATLAB R2001b中的计算结果如下: 原图像 采样率0.7 采样率0.5 采样率0.3 压缩感知仿真实例采用均方误差......MATLAB稀疏表示算法_计算机软件及应用_IT/计算机_...

    MATLAB代码如下: 压缩感知仿真实例 压缩感知仿真实例在MATLAB R2001b中的计算结果如下: 原图像 采样率0.7 采样率0.5 采样率0.3 压缩感知仿真实例采用均方误差......

    MATLAB稀疏表示算法_计算机软件及应用_IT/计算机_专业资料。关于压缩感知的MATLAB里的信号矩阵稀疏表示算法编码,包含KSVD和OMP算法,比较简单易用 ......

    As a companion to these papers, this package includes MATLAB code that implements this recovery procedure in the seven contexts described below. The code ......

    该文介绍了压缩感知理论以及 OMP 和 SP 算法的核心思想以及信号的仿真实验, 利用离散小波变换的方法对图像信号进行稀疏化的处理,并分别用 OMP 算法和 SP 算法对......

    基于稀疏参数模型及参数先验的图像分辨率 4 结论 通过以上的分析可知 , 在压缩感知理论中 , 用经典基 追踪算法可以有效地在高斯白噪声背景下重构信号 ; 而当 在......

    贪婪算法中,SP算法的原理介绍及MATLAB仿真_信息与通信_工程科技_专业资料。贪婪算法中,SP算法的原理介绍及仿真 压缩感知重构算法之子空间追踪(SP) 如果掌握了压缩......

    压缩感知的数学理论基础和常用方法,包括稀疏变换、测量矩阵和重构算法,利用Matlab软件实现压缩感知 实验,比较几种测量矩阵的性能,提出双阈值分块正交匹配追踪重构算法。...

    基于压缩感知的图像快速... 5页 2下载券 喜欢此文档的还喜欢 混沌信号的压缩感知去噪 8页 免费 基于MATLAB的图像压缩感... 50页 1下载券 基于压缩感知的......

    实验表明,该方法具有可操作性和可行性. 关键词 压缩感知;图像去噪;稀疏表示;小波变换;OMP算法 分类号TP39 图像是获取信息和传递信息重要的媒体和 手段,随着计算机......

    3 基于小波变换的图像压缩感知本文采用小波变换的方法对信号进行稀疏表示, 利用随机高斯矩阵作为测量 矩阵,最后使用正交匹配法重构信号。Matlab 仿真实验结果如下所示:......

    [4]引入 数学实验课程,设计难度适中的实验案例并用 Matlab 语言[5]编程实现.该实验 案例的实施,为学生提供了接触、了解数学前沿研究方法和压缩感知概念的平 台,......

    压缩感知理论是编解码思想的一个突 破,减轻了信号采样、传输和存储遇到的巨大压力,是一种信息获取及处理的全 新的理论框架。 本文将利用 MATLAB GUI 进行基于压缩......

    《电脑知识与技术》2019 年第 34 期 龙源期刊网 龙源期刊网 摘要:压缩感知即通过信号稀疏性进行全新信号......

    基于压缩感知的DOA估计程序_电子/电路_工程科技_专业资料。基于压缩感知的DOA估计程序 程序可运行,有图有真相,MATLAB 得事先装好 cvx 优化包。 clc; clear; ......

    《物联网技术》2013 年第 02 期 摘要:为了实现基于压缩感知理论的信号欠采样和重建,采用模拟信息转换器和正交匹配 追踪(Orthogonal Matching Pursuit,OMP)算法对......

    稀疏表示是应用压缩感知的先验条件, 随机测量是压缩感知的关键过程,重构算法是获取最终结 果的必要手段。 压缩感知的数学模型 ? 假设x为长度N的一维信号,稀疏度为......

    84 传感器与微系统( )TransducerandMicrosystemTechnologies 2018年第37卷第11期 :—()——DOI 10.13873/J.10009787201811008403 基于压缩感知的模拟信息转换器设计*......

    根据压缩感知理论的基本原理,提出了一种基于CCSLink的压缩感知系统的DSP实现方法.即在Matlab环境下,利用CCSLink工具构建合适的嵌入式对象,直观地进行参数的分析比较,......

    压缩感知重构算法之正交匹配追踪(OMP) 前面经过几篇的基础铺垫,本篇给出正交匹配追踪(OMP)算法的 MATLAB 函数代码,并且给出单次测试例程 代码、测量数 M 与重构......

    为了改进方向追踪法的重建精度和算法效率, 提出了一种基 于谱投影梯度 (Spectral projected gradient, SPG) 追踪的压缩感知 (Compressed sensing, CS) 重建算法. ......

    展开全文
  • MATLAB压缩感知(内含完整代码)
  • 这是本人编写的基础类的压缩感知重构算法,主要是匹配追踪类算法
  • Tensor_CS(压缩感知算法、含完整的MATLAB代码)
  • 二维图像(二维图像的压缩感知重构算法程序代码、内含完整的MATLAB代码)
  • 图像的压缩感知之AMP算法,相较于FISTA算法在执行效率上更加有效,迭代到30次左右可实现很小的误差。
  • 压缩采样匹配追踪(CoSaMP) 数据重建
  • matlab平台编写的基于压缩感知的信道估计重构算法的实现
  • OMP算法: % OMP的函数 % s-测量;T-观测矩阵;N-向量大小 function hat_y=omp_fun(s,T,K) N = size(T,2); Size=size(T); % 观测矩阵大小 M=Size(1); % 测量 ...

    OMP算法:

    %  OMP的函数
    %  s-测量;T-观测矩阵;N-向量大小
    function hat_y=omp_fun(s,T,K)
    N = size(T,2);
    Size=size(T);                                     %  观测矩阵大小
    M=Size(1);                                        %  测量
    hat_y=zeros(1,N);                                 %  待重构的谱域(变换域)向量                     
    Aug_t=[];                                         %  增量矩阵(初始值为空矩阵)
    r_n=s;                                            %  残差值
    for times=1:K                                  %  迭代次数(稀疏度是测量的1/4)
        for col=1: N                                %  恢复矩阵的所有列向量
            product(col)=abs(T(:,col)'*r_n);          %  恢复矩阵的列向量和残差的投影系数(内积值) 
        end
        [~, pos]=max(product);                       %  最大投影系数对应的位置
        Aug_t=[Aug_t,T(:,pos)];                       %  矩阵扩充
        T(:,pos)=zeros(M,1);                          %  选中的列置零(实质上应该去掉,为了简单我把它置零)
        aug_y=(Aug_t'*Aug_t)^(-1)*Aug_t'*s;           %  最小二乘,使残差最小
        r_n=s-Aug_t*aug_y;                            %  残差
        pos_array(times)=pos;                         %  纪录最大投影系数的位置
        
        if sum(r_n.^2) < 1e-6                              %  残差足够小
            break;
        end
    end
    hat_y(pos_array)=aug_y;                           %  重构的向量
    end
    
    展开全文
  • 最近在看压缩感知重构算法,试了其中一些,把代码链接给大家列一下: TwIST: http://www.lx.it.pt/~bioucas/code.htm GPSR: http://www.lx.it.pt/~mtf/GPSR/ OMP: http://www.eee.hku.hk/~wsha/Freecode/Files...

    最近在看压缩感知重构算法,试了其中一些,把代码链接给大家列一下:
    TwIST:
    http://www.lx.it.pt/~bioucas/code.htm
    GPSR:
    http://www.lx.it.pt/~mtf/GPSR/
    OMP:
    http://www.eee.hku.hk/~wsha/Freecode/Files/CS_OMP.zip

    展开全文
  • 压缩感知算法matlab仿真源码

    热门讨论 2012-02-18 11:41:36
    该程序包中包含了传感压缩算法中的五个经典算法源码:COSAMP,GBP,IHT,IRLS,OMP,SP
  • 压缩感知算法对比.m

    2020-06-03 16:28:17
    利用MATLAB对基追踪(BP)算法、正交匹配追踪(OMP)算法压缩采样匹配追踪(CoSaMP)算法仿真在不同信噪比下性能的比较
  • 附件中是用matlab编写的压缩感知FOCUSS算法,可以运行。
  • 压缩感知算法,压缩感知算法matlab,matlab源码
  • FISTA算法是对ISTA算法的优化提升,本程序是在ISTA算法的基础上进行的编程改进。
  • 6压缩感知(Compressed sensing),也被称为压缩采样(Compressive sampling)或稀疏采样(Sparse sampling),是一种寻找欠定线性系统的稀疏解的技术。
  • 压缩感知CS最全matlab程序,二维三维图像处理,恢复算法,CSDN中最全的压缩感知程序包,12M的程序,也包含陶哲轩的关于压缩感知的PPT及文章
  • 压缩感知的重构算法,压缩采样匹配追踪算法matlab仿真代码,供学习交流使用。
  • 压缩感知重构算法.zip

    2020-06-12 14:35:11
    利用MATLAB实现了压缩感知重构算法,里面包含相应的函数及解释,对学习该类算法有一个较好的认识,有利于学习
  • 压缩感知(Compressed Sensing, CS)matlab代码。实现多个正弦信号的随机欠采样,通过压缩感知恢复。两个m文件分别是两个算法,正交匹配追踪(OMP)算法和SPGL1算法(由E. van den Berg and M. P. Friedlander 提供)。
  • 压缩感知算法实现,压缩感知重构算法,matlab源码.zip
  • 各类代码,适合新手学习,电子书免费领取加我
  • 压缩感知l1重建算法matlab代码[用于压缩感知恢复的贝叶斯卷积神经网络]。 介绍 贝叶斯卷积神经网络(BCNN)是一种新的压缩感知(CS)恢复算法,它结合了卷积神经网络(CNN)和贝叶斯推理方法。 在本文中,我们显示出...
  • 压缩感知的实现(含matlab代码)

    万次阅读 多人点赞 2018-07-24 20:43:38
    压缩感知的图像重建(matlab) https://blog.csdn.net/Di_Wong/article/details/88994551 目录 原理简介 算法实现 测试结果 --------------------------------------------------------------------------------...

    压缩感知的图像重建(matlab)

    https://blog.csdn.net/Di_Wong/article/details/88994551


    目录

    原理简介

    算法实现

    测试结果


    ---------------------------------------------------------------------------------------------------------------------------------------------

    原理参考

    (1)刘海英. 基于压缩感知理论的高光谱图像重建和超分辨成像技术研究[D]. 西安电子科技大学, 2014.

    (2)压缩感知的常见稀疏基名称及离散傅里叶变换基

    (3)压缩感知的常见测量矩阵

    算法参考

    (1)压缩感知重构算法之正交匹配追踪(OMP)

    ----------------------------------------------------------------------------------------------------------------------------------------------

    原理简介

    压缩感知(Compressive Sensing,CS)。相对于传统的奈奎斯特采样定理——要求采样频率必须是信号最高频率的两倍或两倍以上(这就要求信号是带限信号,通常在采样前使用低通滤波器使信号带限),压缩感知则利用数据的冗余特性,只采集少量的样本还原原始数据。

    一句话总结我理解的压缩感知实现方法:以被重建信号在某个变换域上稀疏作为先验信息,用测量矩阵观测被测信号,由观测值结合重建算法重建出完整的被测信号。

    在具体应用时,我们必须解决 CS 理论的三大关键问题:

    1. 目标信号的稀疏表示。寻找使得目标信号 f 变换到其上尽可能稀疏的变换域Ψ ,即信号稀疏表示问题;
    2. 测量矩阵的构建。测量矩阵是 CS 理论采样的实现部分。通过测量矩阵控制的采样使得目标信号 f在采样过程中即被压缩,同时保证目标信号所含有效信息不丢失,能够由压缩采样值还原出目标信号;
    3. 重建算法的设计。重建算法是从采样值求解最优化问题寻找到目标信号最优解。重建算法的准确性、高效性和稳定性是其设计的关键。

    对于目标信号的稀疏表示问题,常见的稀疏基有离散余弦变换基(DCT)和快速傅立叶变换基(FFT)等。

    对于测量矩阵,常见的有高斯随机矩阵、部分哈达玛矩阵等。

    对于重建算法,常见的有L1范数、正交匹配追踪算法(OMP)等。

    对于原理部分,相关文献、博客等资源相当多,本文不在这里赘述,详情可以参考本文开头引用内容。

    算法实现

    本文分别以稀疏基有离散余弦变换基(DCT)和快速傅立叶变换基(FFT)做为稀疏基,高斯随机矩阵、部分哈达玛矩阵为测量矩阵,L1范数、正交匹配追踪算法(OMP)为重建算法进行压缩感知算法实现。

    本文以f = cos(2*pi/256*t) + sin(2*pi/128*t)做为原信号,取原信号f的20%做为输入进行压缩感知重建。

    注意:本文main.m中L1范数求解方法使用了CVX工具箱,CVX工具箱安装方法参考(CVX工具包(for matlab),链接已失效,具体安装包自行百度。

    main.m

    %   该程序用于验证压缩感知理论(包含了L1最小范数求解和OMP求解)
    %
    %
    %
    clear all; close all;
    %% 产生信号
    choice_transform = 1;      % 选择正交基,1为选择DCT变换,0为选择FFT变换
    choice_Phi = 0;         %选择测量矩阵,1为部分哈达玛矩阵,0为高斯随机矩阵
    %-----------------------利用三角函数生成频域或DCT域离散信号--------------------------
    n = 512;
    t = [0: n-1];
    f = cos(2*pi/256*t) + sin(2*pi/128*t);   % 产生频域稀疏的信号
    %-------------------------------信号降采样率-----------------------
    n = length(f);
    a = 0.2;            %    取原信号的 a%
    m = double(int32(a*n));
    %--------------------------------------画信号图--------------------------------------
    switch choice_transform
        case 1
            ft = dct(f);
            disp('ft = dct(f)')
        case 0
            ft = fft(f);
            disp('ft = fft(f)')
    end
    
    disp(['信号稀疏度:',num2str(length(find((abs(ft))>0.1)))])
    
    figure('name', 'A Tone Time and Frequency Plot');
    subplot(2, 1, 1);
    plot(f);
    xlabel('Time (s)'); 
    % ylabel('f(t)');
    subplot(2, 1, 2);
    
    switch choice_transform
        case 1
            plot(ft)
            disp('plot(ft)')
        case 0
            plot(abs(ft));
            disp('plot(abs(ft))')
    end
    xlabel('Frequency (Hz)'); 
    % ylabel('DCT(f(t))');
    %% 产生感知矩阵和稀疏表示矩阵
    %--------------------------利用感知矩阵生成测量值---------------------
    switch choice_Phi
        case 1
            Phi = PartHadamardMtx(m,n);       % 感知矩阵(测量矩阵)    部分哈达玛矩阵
        case 0
            Phi = sqrt(1/m) * randn(m,n);     % 感知矩阵(测量矩阵)   高斯随机矩阵
    end
    % Phi =  randn(m,n);    %randn 生成标准正态分布的伪随机数(均值为0,方差为1)
    % Phi = rand(m,n);    % rand 生成均匀分布的伪随机数。分布在(0~1)之间
    f2 = (Phi * f')';                 % 通过感知矩阵获得测量值
    % f2 = f(1:2:n);
    
    
    switch choice_transform
        case 1
            Psi = dct(eye(n,n));            %离散余弦变换正交基 代码亦可写为Psi = dctmtx(n);
            disp('Psi = dct(eye(n,n));')
        case 0
            Psi = inv(fft(eye(n,n)));     % 傅里叶正变换,频域稀疏正交基(稀疏表示矩阵)
            disp('Psi = inv(fft(eye(n,n)));')
    end
    A = Phi * Psi;                    % 恢复矩阵 A = Phi * Psi
    
    %%             重建信号
    %---------------------使用CVX工具求解L1范数最小值-----------------
    cvx_begin;
        variable x(n) complex;
    %     variable x(n) ;
        minimize( norm(x,1) );
        subject to
          A*x == f2' ;
    cvx_end;
    figure;subplot(2,1,2)
    switch choice_transform
        case 1
            plot(real(x));
            disp('plot(real(x))')
        case 0
            plot(abs(x));
            disp(' plot(abs(x))')
    end
    title('Using L1 Norm(Frequency Domain)');
    %  ylabel('DCT(f(t))'); xlabel('Frequency (Hz)');
    
    switch choice_transform
        case 1
            sig = dct(real(x));
            disp('sig = dct(real(x))')
        case 0
            sig = real(ifft(full(x)));
            disp(' sig = real(ifft(full(x)))')
    end
    subplot(2,1,1);
    plot(f)
    hold on;plot(sig);hold off
    title('Using L1 Norm (Time Domain)');
    % ylabel('f(t)'); xlabel('Time (s)');
    legend('Original','Recovery')
    %-----------------------------使用OMP算法重建--------------------------
    for K = 1:100
        theta = CS_OMP(f2,A,K);
        %     figure;plot(dct(theta));title(['K=',num2str(K)])
        switch choice_transform
            case 1
                re(K) = norm(f'-(dct(theta)));
            case 0
                re(K) = norm(f'-real(ifft(full(theta))));
        end
    end
    theta = CS_OMP(f2,A,find(re==min(min(re))));
    disp(['最佳稀疏度K=',num2str(find(re==min(min(re))))]);
    % theta = CS_OMP(f2,A,10);
    figure;subplot(2,1,2);
    switch choice_transform
        case 1
            plot(theta);
            disp('plot(theta)')
        case 0
            plot(abs(theta));
            disp('plot(abs(theta))')
    end
    title(['Using OMP(Frequence Domain)  K=',num2str(find(re==min(min(re))))])
    switch choice_transform
        case 1
            sig2 = dct(theta);
            disp('sig2 = dct(theta)')
        case 0
            sig2 = real(ifft(full(theta)));
            disp('sig2 = real(ifft(full(theta)))')
    end
    subplot(2,1,1);plot(f);hold on;
    plot(sig2)
    hold off;
    title(['Using OMP(Time Domain)  K=',num2str(find(re==min(min(re))))]);
    legend('Original','Recovery')
    %%
    
    
    
    
    

    其中调用函数

    部分哈达玛矩阵:PartHadamardMtx.m

    function [ Phi ] = PartHadamardMtx( M,N )  
    %PartHadamardMtx Summary of this function goes here  
    %   Generate part Hadamard matrix   
    %   M -- RowNumber  
    %   N -- ColumnNumber  
    %   Phi -- The part Hadamard matrix  
    % 来源http://blog.csdn.net/jbb0523/article/details/44700735 
    %% parameter initialization  
    %Because the MATLAB function hadamard handles only the cases where n, n/12,  
    %or n/20 is a power of 2  
        L_t = max(M,N);%Maybe L_t does not meet requirement of function hadamard  
        L_t1 = (12 - mod(L_t,12)) + L_t;  
        L_t2 = (20 - mod(L_t,20)) + L_t;   
        L_t3 = 2^ceil(log2(L_t));  
        L = min([L_t1,L_t2,L_t3]);%Get the minimum L  
    %% Generate part Hadamard matrix     
        Phi = [];  
        Phi_t = hadamard(L);  
        RowIndex = randperm(L);  
        Phi_t_r = Phi_t(RowIndex(1:M),:);  
        ColIndex = randperm(L);  
        Phi = Phi_t_r(:,ColIndex(1:N));  
    end  

    正交匹配追踪算法:OMP.m

    function [ theta ] = CS_OMP( y,A,t )  
    % 实现压缩感知OMP算法
    %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  
    %   t 稀疏度
    %   令 A = Phi*Psi, 则y=A*theta  
    %   现在已知y和A,求theta  
    %   来源:http://blog.csdn.net/jbb0523/article/details/45130793
        [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(列向量)  
        At = zeros(M,t);%用来迭代过程中存储A被选择的列  
        Pos_theta = zeros(1,t);%用来迭代过程中存储A被选择的列序号  
        r_n = y;%初始化残差(residual)为y  
        for ii=1:t%迭代t次,t为输入参数  
            product = A'*r_n;%传感矩阵A各列与残差的内积  
            [val,pos] = max(abs(product));%找到最大内积绝对值,即与残差最相关的列  
            At(:,ii) = A(:,pos);%存储这一列  
            Pos_theta(ii) = pos;%存储这一列的序号  
            A(:,pos) = zeros(M,1);%清零A的这一列,其实此行可以不要,因为它与残差正交  
            %y=At(:,1:ii)*theta,以下求theta的最小二乘解(Least Square)  
            theta_ls = (At(:,1:ii)'*At(:,1:ii))^(-1)*At(:,1:ii)'*y;%最小二乘解  
            %At(:,1:ii)*theta_ls是y在At(:,1:ii)列空间上的正交投影  
            r_n = y - At(:,1:ii)*theta_ls;%更新残差          
        end  
        theta(Pos_theta)=theta_ls;%恢复出的theta  
    end  

    测试结果:

    展开全文
  • 压缩感知算法(包括BCS implemented、compressive sensing basic knowledge、Matlab重构算法、omp等)

空空如也

空空如也

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

压缩感知matlab算法

matlab 订阅