题目:压缩感知的常见测量矩阵

下面首先给出十篇参考文献中有关测量矩阵的叙述,然后以一篇硕士论文中对七种常见测量矩阵的描述依据,给出了这七种常见测量矩阵的MATLAB实现代码,以为以后的研究提供一个参考,由于目前还没有一个简单有效的测量矩阵评价方法,因此这里给出的七种测量矩阵的代码的正确性并没有验证。由于本人对乱引参考文献很受伤,经常按照引用的参考文献对应去找原文却找不到,所以这里都是以截图的方式给出,方便到去文献中找到这里的原文内容。

一、参考文献中常见的测量矩阵

[1]喻玲娟,谢晓春.压缩感知介绍[J].电视技术,2008,32(12):16-18.

[2]李树涛,魏丹.压缩传感综述[J]. 自动化学报,2009,35(11):1369-1377.

[3]焦李成,杨淑媛,刘芳,侯彪. 压缩感知回顾与展望[J]. 电子学报,2011,39(7):1651-1662.

[4]石光明,刘丹华,高大化,刘哲,林杰,王良君. 压缩感知理论及其研究进展[J]. 电子学报,2009,37(5):1070-1081.

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

[6]党骙,马林华,田雨,张海威,茹乐,李小蓓. m序列压缩感知测量矩阵构造[J]. 西安电子科技大学(自然科学版),2015,42(2):215-222.

[7]朱志臻,周崇彬,刘发林,李滨兵,张志达. 用于压缩感知的二值化测量矩阵[J]. 微波学报,2014,30(2):79-83,96.

[8]王学伟,崔广伟,王琳,贾晓璐,聂伟.基于平衡Gold序列的压缩感知测量矩阵的构造[J]. 仪器仪表学报,2014,35(1):97-102.

[9]张波,刘郁林,王开.稀疏随机矩阵有限等矩性质分析[J]. 电子与信息学报,2014,36(1):169-174.

[10]王侠,王开,王青云,梁瑞宇,左加阔,赵力,邹采荣. 压缩感知中的确定性随机观测矩阵构造[J]. 信号处理,2014,30(4):436-442.

二、常见测量矩阵的MATLAB实现

下面以文献【吴赟.压缩感知测量矩阵的研究[D]. 西安电子科技大学硕士学位论文,2012】为依据,给出文献中2.2节内容所述的六种测量矩阵MATLAB实现代码,仅为一种参考实现方式,还未验证其正确性。

1、高斯矩阵

以下代码生成的高斯矩阵方差为1,若为改为1/M,只须将除以根号M即可。

function [ Phi ] = GaussMtx( M,N )
%GaussMtx Summary of this function goes here
%   Generate Bernoulli matrix
%   M -- RowNumber
%   N -- ColumnNumber
%   Phi -- The Gauss matrix%% Generate Gauss matrix   Phi = randn(M,N);%Phi = Phi/sqrt(M);
end

2、伯努利矩阵

以下代码是按式(2-8)生成的伯努利矩阵,若要按式(2-9)生成则需使用后半部分注释掉的代码即可。注意代码中用到了MATLAB自带的randi函数,若你的MATLAB版本较低,可能要用randint函数代替,后面若用到此函数则一样要注意这一点。

function [ Phi ] = BernoulliMtx( M,N )
%BernoulliMtx Summary of this function goes here
%   Generate Bernoulli matrix
%   M -- RowNumber
%   N -- ColumnNumber
%   Phi -- The Bernoulli matrix%% (1)Generate Bernoulli matrix(The first kind)
% 1--P=0.5   -1--P=0.5Phi = randi([0,1],M,N);%If your MATLAB version is too low,please use randint insteadPhi(Phi==0) = -1;%Phi = Phi/sqrt(M);
% %% (2)Generate Bernoulli matrix(The second kind)
% % 1--P=1/6   -1--P=1/6  0--2/3
%     Phi = randi([-1,4],M,N);%If your MATLAB version is too low,please use randint instead
%     Phi(Phi==2) = 0;%P=1/6
%     Phi(Phi==3) = 0;%P=1/6
%     Phi(Phi==4) = 0;%P=1/6
%     %Phi = Phi*sqrt(3/M);
end

3、部分哈达玛矩阵

由于MATLAB自带的函数hadamard参数有限制,所以程序中首先计算满足要求的参数L,需要注意的是,hadamard参数并不像文献中所述仅为2的整数次幂,而是12的整数倍或20的整数倍或2的整数次幂,详情在MATLAB查看hadamard的help文件。

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%% parameter initialization
%Because the MATLAB function hadamard handles only the cases where n, n/12,
%or n/20 is a power of 2L_t = max(M,N);%Maybe L_t does not meet requirement of function hadamardL_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

4、部分傅里叶矩阵

以下代码生成的是部分傅里叶矩阵,这里要提的一点是,有关“归一化”的概念在网上说法不一,一种说法是向量除以向量各项之和,另一种说法是向量除以向量的2范数(各项平方之和再开方),这里采用后者。

function [ Phi ] = PartFourierMtx( M,N )
%PartFourierMtx Summary of this function goes here
%   Generate part Fourier matrix
%   M -- RowNumber
%   N -- ColumnNumber
%   Phi -- The part Fourier matrix%% Generate part Fourier matrix   Phi_t = fft(eye(N,N))/sqrt(N);%Fourier matrixRowIndex = randperm(N);Phi = Phi_t(RowIndex(1:M),:);%Select M rows randomly%normalizationfor ii = 1:NPhi(:,ii) = Phi(:,ii)/norm(Phi(:,ii));end
end

5、稀疏随机矩阵

function [ Phi ] = SparseRandomMtx( M,N,d )
%SparseRandomMtx Summary of this function goes here
%   Generate SparseRandom matrix
%   M -- RowNumber
%   N -- ColumnNumber
%   d -- The number of '1' in every column,d<M
%   Phi -- The SparseRandom matrix%% Generate SparseRandom matrix   Phi = zeros(M,N);for ii = 1:NColIdx = randperm(M);Phi(ColIdx(1:d),ii) = 1;end
end

6、托普利兹矩阵和循环矩阵

这里先给出托普利兹矩阵,文中说经过M次循环,这里直接利用MATLAB自带函数生成一个托普利兹方阵再取前M行。

function [ Phi ] = ToeplitzMtx( M,N )
%ToeplitzMtx Summary of this function goes here
%   Generate Toeplitz matrix
%   M -- RowNumber
%   N -- ColumnNumber
%   Phi -- The Toeplitz matrix%% Generate a random vector
%     %(1)Gauss
%     u = randn(1,2*N-1);%(2)Bernoulliu = randi([0,1],1,2*N-1);u(u==0) = -1;
%% Generate Toeplitz matrix   Phi_t = toeplitz(u(N:end),fliplr(u(1:N)));Phi = Phi_t(1:M,:);
end

下面是循环矩阵,仍然利用MATLAB自带函数生成。

function [ Phi ] = CirculantMtx( M,N )
%CirculantMtx Summary of this function goes here
%   Generate Circulant matrix
%   M -- RowNumber
%   N -- ColumnNumber
%   Phi -- The Circulant matrix%% Generate a random vector
%     %(1)Gauss
%     u = randn(1,N);%(2)Bernoulliu = randi([0,1],1,N);u(u==0) = -1;
%% Generate Circulant matrix   Phi_t = toeplitz(circshift(u,[1,1]),fliplr(u(1:N)));Phi = Phi_t(1:M,:);
end

以上都是采用MATLAB自带的toeplitz函数,这需要首先生成一个随机向量,而托普利兹矩阵和循环矩阵的区别也就在于这个随机向量的结构不同,注意代码中有关toeplitz函数的两个输入参数好好体会即可。

压缩感知的常见测量矩阵相关推荐

  1. 压缩感知高斯测量矩阵matlab,压缩感知的常见测量矩阵

    题目:压缩感知的常见测量矩阵 下面首先给出十篇参考文献中有关测量矩阵的叙述,然后以一篇硕士论文中对七种常见测量矩阵的描述依据,给出了这七种常见测量矩阵的MATLAB实现代码,以为以后的研究提供一个参考 ...

  2. 浅谈压缩感知(三十二):压缩感知的常见测量矩阵

    一.参考文献中常见的测量矩阵 [1]喻玲娟,谢晓春.压缩感知介绍[J].电视技术,2008,32(12):16-18. [2]李树涛,魏丹.压缩传感综述[J]. 自动化学报,2009,35(11):1 ...

  3. matlab 测量矩阵,压缩感知中的常见测量矩阵及其MATLAB实现代码

    压缩感知中的常见测量矩阵及其MATLAB实现代码 压缩感知中的常见测量矩阵及其MATLAB实现代码 原文链接:http://blog.csdn.net/jbb0523/article/details/ ...

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

    题目:压缩感知的常见稀疏基名称及离散傅里叶变换基 一.首先看九篇文献中有关稀疏基的描述: [1]喻玲娟,谢晓春.压缩感知介绍[J]. 电视技术,2008,32(12):16-18. 常用的稀疏基有:正 ...

  5. 常见测量矩阵的MATLAB实现

    常见测量矩阵的MATLAB实现 下面以文献[吴赟.压缩感知测量矩阵的研究[D]. 西安电子科技大学硕士学位论文,2012]为依据,给出文献中2.2节内容所述的六种测量矩阵MATLAB实现代码,仅为一种 ...

  6. 压缩感知专题笔记——目录

    (内容持续更新与修改) 压缩感知系列笔记<序言> 一.压缩感知论文读书笔记 1.1    <压缩感知回顾与展望>读书笔记 1.2    <基于压缩传感的匹配追踪重建算法研 ...

  7. 压缩感知测量矩阵之有限等距性质(Restricted Isometry Property, RIP)

    题目:压缩感知测量矩阵之有限等距性质(Restricted Isometry Property,RIP) 阅读压缩感知的文献,RIP绝对是一个抬头不见低头见的英文简写,也就是有限等距性质(Restri ...

  8. 【转】压缩感知测量矩阵之有限等距性质(Restricted Isometry Property, RIP)

    出处:http://blog.csdn.net/jbb0523/article/details/44565647 题目:压缩感知测量矩阵之有限等距性质(Restricted Isometry Prop ...

  9. 【压缩感知合集6】压缩感知为什么可以恢复信号;为什么需要满足稀疏性条件、RIP条件、矩阵不相关等限制条件才可以恢复信号的逻辑分析

    0 压缩感知的理论依据前言 主要想讲清楚的问题是: 为什么压缩感知在随机采样的情况下可以对信号进行恢复? 其实这个问题也可以换一个方式理解: 在满足什么条件的情况下,信号可以通过压缩感知进行压缩并恢复 ...

最新文章

  1. 【 MATLAB 】通过案例学会编写一个 matlab 函数(小猫掉进山洞问题)
  2. Leetcode: 4Sum
  3. Ubuntu sudo apt-get update 失败
  4. 停止linux下正在执行的ping命令
  5. DataWhale sklearn学习笔记(一)
  6. php转java知乎_做了三年多的php,在上一家公司转java一年多,如何找工作
  7. linux 文件权限后面一个点的含义
  8. 什么是AES算法?(整合版)
  9. 3 设置网格数的大小_流体仿真中,六面体(Hex)网格的求解效率真的比四面体(Tet)高”很多”么?...
  10. 启动一个java项目http状态 500 - 内部服务器错误_给我 20 分钟,我教你快速掌握JavaWeb和Http...
  11. oracle number +1,number number(1)
  12. Python基础学习2--字符串
  13. linux openssh 升级最新版本
  14. 基础教程——python函数
  15. paip.Net Framework各个版本的功能不同总结
  16. 制作Windows 10系统盘 全过程『手机版』
  17. windows系统上PrtSc,ScroLk,Pause等三个功能按钮的作用
  18. java docx4j 目录,1、带你一起拥有docx4j
  19. Java题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
  20. 76 爬虫 - Scrapy案例(阳光热线问政平台)

热门文章

  1. GIMP类似于PhotoShop的开源免费软件
  2. 新月开始了-不解之谜也开始了
  3. 主题包网址(Theme)
  4. 19款奥迪a5支持Android,19款奥迪a5有敝篷版吗?
  5. java-net-php-python-jspm人力外包服务公司招聘管理系统计算机毕业设计程序
  6. 【数字图像处理】实验一 图像的平移,缩放和旋转(vs2017+opencv)
  7. 免费开源解压缩软件7-Zip
  8. 麒麟服务器v10系统安装时报错,银河麒麟V10服务器版本编译安装php7.2.12
  9. 2021-04-29 微信登录简易版
  10. 平面设计学费,平面设计学费大概多少:夏雨老师