精华内容
下载资源
问答
  • 测量矩阵
    2021-04-25 11:34:48

    一种基于奇异值分解的托普利兹结构测量矩阵构造方法

    【专利摘要】本发明公开了一种基于奇异值分解的托普利兹结构测量矩阵构造方法,包括以下步骤:步骤一、首先生成一个元素由0,1组成并且服从随机分布的行向量;步骤二、然后由此向量构造托普利兹结构测量矩阵Φ;步骤三、对该测量矩阵进行奇异值分解;步骤四、对奇异值进行优化处理,即将矩阵Φ的奇异值中的最大值作为新构造矩阵的非零奇异值;步骤五、构造新的测量矩阵Φ′;步骤六、对新构造的测量矩阵Φ′进行近似处理,即负元素置0,非负元素置1,得到最终的由0,1元素组成的托普利兹结构测量矩阵Φ″。该矩阵具有计算复杂度低、存储空间少,结构简单,易于硬件实现的特点,并且重构效果良好。

    【专利说明】一种基于奇异值分解的托普利兹结构测量矩阵构造方法

    【技术领域】

    [0001] 本发明涉及图像压缩传感【技术领域】,特别涉及压缩感知领域中托普利兹结构测量 矩阵的一种优化构造方法。

    【背景技术】

    [0002] 在传统的信号处理过程中,为了避免信号失真,采样速率要满足奈奎斯特采样定 律。然而对图像、视频等宽带信号的获取,依照奈奎斯特采样定律进行采样会导致采样率太 高,硬件电路难以实现,并且由于采样数据量太大,因此极大地增加了存储和传输的代价; 同时由于其数据获取模式采用先采样再压缩的模式,既浪费传感元,又浪费时间和存储空 间。

    [0003] 由 Candes、Donoho 和 Tao 等人提出的压缩感知理论(Compressive Sensing, CS) 突破了传统奈奎斯特采样定律的限制,为图像采集和压缩提供了新的理论支持,压缩感知 理论指出:如果信号本身是稀疏的或在某个字典上可进行稀疏表示,那么就可以通过设计 一种测量矩阵将原始的高维信号投影到一个低维空间上,然后通过对投影到低维空间上得 到的少量的测量值求解一个非线性优化问题,就可以高概率或者精确的重构原始信号。压 缩感知最为突出的优点是可以减小采样数据,节省存储空间,将传统的数据采样和数据压 缩合二为一,大大降低了数据的获取时间和存取空间。

    [0004] 测量矩阵是CS理论中的一个至关重要的环节,它对信号采样和重构算法有着重 要的影响。为了保证随机投影后信号的大部分能量能够被保持,测量矩阵必须满足有限等 距性质(Restricted Isometry Property,RIP)。然而,在实际中该条件很难用来指导设计 测量矩阵,同时,RIP原则是充分条件,而不是必要条件,为降低矩阵设计的复杂度,Donoho 提出了测量矩阵的相关性判别理论作为RIP的等价条件。从矩阵元素的随机性和确定性两 方面可以将测量矩阵分为随机测量矩阵和确定性测量矩阵。确定性矩阵是通过已知部分信 息而构造成整个测量矩阵,如托普利兹结构矩阵和循环矩阵等,这类测量矩阵是采用特定 的结构化生成方式来生成,因此矩阵可以通过快速计算,降低复杂度,并且构造速度快。然 而,这些测量矩阵都相比较高斯随机矩阵在重建效果上存在差距,要求的测量数较多;随机 测量矩阵的每个元素都服从独立同分布,因此可以尽可能的保证测量矩阵列之间的非相关 性,这样就能使用较少的采样值来获得精确的重建,如高斯随机矩阵、稀疏投影矩阵、亚高 斯随机矩阵和贝努利矩阵等。但是,随机测量矩阵有一些固有的的缺点,如占用较大存储空 间、花费较大的计算量和时间复杂度,这些都不利于硬件实现。

    [0005] 目前,虽然随机测量矩阵整体上比确定性测量矩阵重建精度高,但是其本身固有 的不确定性决定了其硬件实现中的局限性。所以确定性测量矩阵是未来测量矩阵的主要研 究方向,然而,确定性测量矩阵还存在重建精度不高的缺点。由于托普利兹结构测量矩阵是 利用行向量通过循环移位生成整个矩阵,在实际应用中,这种循环移位易于硬件实现,并且 托普利兹结构测量矩阵是一种高度结构化的矩阵,矩阵的结构化使得可以通过快速计算, 降低计算复杂度。因此,本发明围绕托普利兹矩阵进行研究,通过对托普利兹矩阵进行奇异 值分解,并对该矩阵的奇异值进行优化处理,进而提高测量矩阵的列非相关性或列独立性, 从而提高其重构性能。目前,由于高斯随机矩阵、伯努利随机矩阵等随机矩阵与大多数的正 交基或者正交字典不相关,而且精确重构所需的测量数比较少,因此,此类随机矩阵非常适 合作为压缩感知理论中的测量矩阵。但是,这类随机矩阵存在以下瓶颈:(1)随机数的产生 对硬件要求很高;(2)压缩投影和信号重构过程需要进行存储和传输测量矩阵,这对系统 的要求很高;(3)随机矩阵只在统计意义下以很高的概率满足RIP和弱相干性,即不能保证 每个随机产生的矩阵都满足特定RIP或相干性条件,因而不能保证每次都精确的恢复原始 信号。由于上述随机测量矩阵在实际应用中存在以上缺点,因此确定性测量矩阵的研究对 于压缩感知理论的推广与应用尤其重要。然而,确定性测量矩阵相比高斯矩阵等随机测量 矩阵,在重建效果上存在差距,要求的测量数较多,同时对信号的稀疏度也有较高要求;实 际应用中的测量矩阵要求构造简单有效,压缩和重建效率都较高,因此设计易于硬件实现 的测量矩阵非常有意义,托普利兹测量矩阵的构造过程是用向量去生成整个矩阵,这个向 量生成整个矩阵的过程是通过循环移位来实现的,这种循环移位易于硬件实现,这也是托 普利兹矩阵被广泛研究的主要原因,同其他大多数确定性测量矩阵一样,托普利兹测量矩 阵还存在着在保证高重建精度的情况下,需要测量值的数目较多的缺点,而在很多实际应 用中测量值的获得非常昂贵的。因此,针对随机测量矩阵不易硬件实现和易于硬件实现的 托普利兹矩阵重构效果不理想的问题,本发明提出一种基于奇异值分解的托普利兹结构测 量矩阵设计方法。

    【发明内容】

    [0006] 针对以上现有技术中的不足,本发明的目的在于提供一种更好地提高感知效率和 降低计算复杂度,减少存储空间,并且矩阵元素由〇和1随机组成,结构简单稀疏,易于硬件 实现,重构性能好的托普利兹结构测量矩阵构造方法,本发明的技术方案如下:

    [0007] -种基于奇异值分解的托普利兹结构测量矩阵构造方法,其包括以下步骤:

    [0008] 101、测量得到的原始图像信号A,生成一个元素服从随机分布并且由0, 1组成的 行向量U = (Up u2,…,uN, uN+1,…,%+MH), N表示所要构造矩阵的列数,Μ表示矩阵的行数;

    [0009] 102、然后由步骤101中的行向量构造托普利兹结构测量矩阵Φ ;

    [0010] 103、接下来对该托普利兹结构测量矩阵Φ进行奇异值分解,并对奇异值进行优 化处理,得到新的测量矩阵Φ',

    [0011] 104、/对新构造的测量矩阵Φ'作负元素置0,非负元素置1的处理,得到最终的 由〇, 1元素组成的托普利兹结构测量矩阵Φ ",完成托普利兹结构测量矩阵Φ "的构造, 将步骤101测量得到的原始图像信号Α利用托普利兹结构测量矩阵Φ "投影到低维空间, 然后通过对投影到低维空间上得到的测量值,求解一个非线性优化方程,然后就重构原始 信号。

    [0012] 进一步的,步骤102中托普利兹结构测量矩阵Φ e Rmxn(M〈N),即

    [0013]

    【权利要求】

    1. 一种基于奇异值分解的托普利兹结构测量矩阵构造方法,其特征在于,包括以下步 骤: 101、 测量得到的原始图像信号A,生成一个元素服从随机分布并且由0, 1组成的行向 量

    ,N表示所要构造测量矩阵的列数,M表示矩阵的行数; 102、 然后由步骤101中的行向量构造托普利兹结构测量矩阵〇 ; 103、 接下来对该托普利兹结构测量矩阵〇进行奇异值分解,并对奇异值进行优化处 理,得到新的测量矩阵; 104、 对新构造的测量矩阵〇 '作负元素置0,非负元素置1的处理,得到最终的由0, 1 元素组成的托普利兹结构测量矩阵〇 ",完成托普利兹结构测量矩阵〇 "的构造,将步骤 101测量得到的原始图像信号A利用托普利兹结构测量矩阵O"投影到低维空间,然后通 过对投影到低维空间上得到的测量值,求解一个非线性优化方程,然后就重构原始信号。

    2. 根据权利要求1所述的基于奇异值分解的托普利兹结构测量矩阵构造方法,其特征 在于,步骤102中托普利兹结构测量矩阵OGRmxn (M〈N),即

    3. 根据权利要求2所述的一种基于奇异值分解的托普利兹结构测量矩阵构造方法,其 特征在于:

    ,OO是常数,K是稀疏度。

    4. 根据权利要求1所述的一种基于奇异值分解的托普利兹结构测量矩阵构造方法,其 特征在于,步骤103中对矩阵OGRmxn (M〈N)进行奇异值分解,得到

    其中,矩阵U、V分别为MXM,NXN的酉矩阵,满足

    为矩阵O的奇异值;设

    ,〇)>的特征值为

    ),贝Ij

    O

    5. 根据权利要求4所述的一种基于奇异值分解的托普利兹结构测量矩阵构造 方法,其特征在于,步骤103中对奇异值进行分解的步骤为: _

    ..

    ,故得

    ,令

    ,diag表示由矩阵①的 非零奇异值构成的对角矩阵,S'表示对矩阵O的非零奇异值进行优化处理后,得到的由新 的非零奇异值构成的对角矩阵,并根据公式构造新的测量矩阵

    3

    【文档编号】H03M7/30GK104242948SQ201410425392

    【公开日】2014年12月24日 申请日期:2014年8月26日 优先权日:2014年8月26日

    【发明者】王汝言, 金胜杰, 赵辉, 刘静, 王晓冰, 张鸿 申请人:重庆邮电大学

    更多相关内容
  • 测量矩阵是压缩感知中一个很重要的部分,为了减小测量矩阵与稀疏变换矩阵的互相干性,从而改善重建质量,本文首先通过测量矩阵和稀疏变换矩阵的乘积构造得到一个Gram矩阵,然后定义了一种基于Gram矩阵非对角线元素的整体...
  • 用来测试压缩感知中构造的测量矩阵的RIP
  • 常见的压缩感知中测量矩阵的构造,包含伯努利矩阵,循环矩阵等的matlab源码。亲测实用。
  • 关于混沌序列测量矩阵构造可以得到伪随机性很好的混沌序列测量矩阵,是实现压缩感知降维测量的方便工具
  • 压缩感知中几种典型测量矩阵的产生程序,MATLAB程序,用于研究测量矩阵
  • 介绍了一种在压缩感知框架内的简单测量矩阵构造算法(MMCA)。 在压缩感测中,测量矩阵和稀疏字典(基本)之间的较小相干性可以具有更好的信号重建性能。 随机测量矩阵(例如,高斯矩阵)已被广泛使用,因为它们与...
  • 介绍了一种在压缩感知框架内的简单测量矩阵构造算法(MMCA)。 在压缩感测中,测量矩阵和稀疏字典(基本)之间的较小相干性可以具有更好的信号重建性能。 随机测量矩阵(例如,高斯矩阵)已被广泛使用,因为它们与...
  • 用logistic混沌系统产生压缩感知中的测量矩阵,构造简单,效果良好。
  • 介绍了一种简单而有效的压缩感知(CS)框架内的测量矩阵构建算法(MMCA)。 在CS框架中,测量矩阵Phi和稀疏矩阵(基本)psi之间的较小相干性可以导致更好的信号重建性能。 在本文中,我们通过迭代采用收缩和交替投影...
  • 用logistic混沌系统和m序列构造压缩感知中测量矩阵的matlab仿真代码,构造简单,实用。
  • 测量矩阵是实现该创新点的关键步骤之一,其性能直接关系着信号能不能精确重构。利用行列式非零的对角矩阵的正交性,结合正交基线性表示理论,提出了一种新的更简单的测量矩阵的构造方法。通过实验仿真,验证了新矩阵...
  • 正交梯度测量矩阵优化方法
  • 用logistic混沌系统和m序列构造压缩感知中测量矩阵的matlab仿真代码,构造简单,实用。
  • 测量矩阵是压缩感知理论中的重要组成部分,其将直接影响原始信号的重构精度。针对常用测量矩阵重构精度较低的问题,构造一种基于马尔科夫链的随机测量矩阵。利用马尔科夫链的随机性生成M个随机数,将随机数按照规则...
  • 利用傅里叶矩阵构造压缩感知测量矩阵恢复重建概率
  • 压缩感知,确定性测量矩阵构造,matlab语言编程
  • 在压缩采样中,测量矩阵应该和表达字典有尽可能小的相干性,随机测量矩阵一直被使用是因为其和任何表达字典都有较小的相干性。提出一种基于梯度迭代最小化方法,作为格拉斯曼框架设计的一种变体,通过优化一个初始的...
  • 测量矩阵正是获取这些测量值的关键所在,寻求结构简单、性能稳定的测量矩阵一直是研究人员的目标。在介绍压缩感知测量矩阵的基础上,提出了广义轮换矩阵的改进方法,结合正交基线性表示的思想,利用广义轮换构造的...
  • 题目:压缩感知的常见测量矩阵下面首先给出十篇参考文献中有关测量矩阵的叙述,然后以一篇硕士论文中对七种常见测量矩阵的描述依据,给出了这七种常见测量矩阵的MATLAB实现代码,以为以后的研究提供一个参考,由于...

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

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

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

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

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

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

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

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

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

    1、高斯矩阵

    0818b9ca8b590ca3270a3433284dd417.png

    以下代码生成的高斯矩阵方差为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、伯努利矩阵

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    以下代码是按式(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.5

    Phi = randi([0,1],M,N);%If your MATLAB version is too low,please use randint instead

    Phi(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、部分哈达玛矩阵

    0818b9ca8b590ca3270a3433284dd417.png

    由于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 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

    4、部分傅里叶矩阵

    0818b9ca8b590ca3270a3433284dd417.png

    以下代码生成的是部分傅里叶矩阵,这里要提的一点是,有关“归一化”的概念在网上说法不一,一种说法是向量除以向量各项之和,另一种说法是向量除以向量的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 matrix

    RowIndex = randperm(N);

    Phi = Phi_t(RowIndex(1:M),:);%Select M rows randomly

    %normalization

    for ii = 1:N

    Phi(:,ii) = Phi(:,ii)/norm(Phi(:,ii));

    end

    end

    5、稀疏随机矩阵

    0818b9ca8b590ca3270a3433284dd417.png

    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

    % Phi -- The SparseRandom matrix

    %% Generate SparseRandom matrix

    Phi = zeros(M,N);

    for ii = 1:N

    ColIdx = randperm(M);

    Phi(ColIdx(1:d),ii) = 1;

    end

    end

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

    0818b9ca8b590ca3270a3433284dd417.png

    这里先给出托普利兹矩阵,文中说经过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)Bernoulli

    u = 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)Bernoulli

    u = 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函数的两个输入参数好好体会即可。

    展开全文
  • OFDM-LFM信号的雷达稀疏成像的测量矩阵优化新方法
  • 采用了以行变换为主的测量矩阵优化算法和过渡矩阵将压缩感知的测量矩阵和重构矩阵相分离,在测量阶段采用单像素相机的0-1稀疏矩阵,在重构阶段采用近似矩阵,这是区别于传统思路的测量数据和测量矩阵的事后优化方法...
  • 针对随机测量矩阵元素随机产生、不易于硬件实现的缺点,利用有限域上准循环低密度奇偶校验(QCLDPC)码奇偶校验矩阵的构造方法,设计了一种确定性的结构化稀疏测量矩阵。由于QC-LDPC码的信道编解码性能较好,故以此为基础...
  • 该文档介绍了压缩感知中,如何设计测量矩阵,以及相关的研究。
  • 观测矩阵的设计是压缩感知的第二步,在这里给出常用的测量矩阵matlab代码,供大家查找使用。


    前言

      观测矩阵的设计是压缩感知的第二步,在这里给出常用的测量矩阵matlab代码,供大家查找使用。代码内容参考自以下网站,并针对其中个别的代码进行了修改,想探究其原理的可进入此网站查找~

    https://blog.csdn.net/jbb0523/article/details/44700735


    一、测量矩阵是什么?

      测量矩阵用来使人们可以看到由仪器所获得的观测值 y y y。其具体表达式为: y = Φ x y=\varPhi x y=Φx其中, x x x是原始信号, y y y为观察的信号。从原始信号中可以观察到多少信号,就是由测量矩阵决定的,因此其会涉及到采样率的概念。通常的采样率概念定义为测量矩阵的行数/列数,即 M / N M/N M/N,大家有兴趣的可以查阅资料进行学习~

    二、常用的测量矩阵及其matlab代码

    1、随机高斯测量矩阵

    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、随机伯努利测量矩阵

    function [ Phi ] = BernoulliMtx( M,N )
    %BernoulliMtx Summary of this function goes here
    %   Generate Bernoulli matrix 
    %   M -- RowNumber
    %   N -- ColumnNumber
    %   Phi -- The Bernoulli matrix
    
        Phi = randi([0,1],M,N);%If your MATLAB version is too low,please use randint instead
        Phi(Phi==0) = -1;
        Phi = Phi/sqrt(M);    %按照公式来看应该有这句
    end
    

    3、部分哈达玛测量矩阵

    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 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
    

    4、部分傅里叶测量矩阵

    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 matrix
        RowIndex = randperm(N);
        Phi = Phi_t(RowIndex(1:M),:);%Select M rows randomly
        %normalization
        for ii = 1:N
            Phi(:,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:N
            ColIdx = randperm(M);
            Phi(ColIdx(1:d),ii) = 1;
        end
    end
    

    6、拓普利兹测量矩阵

    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)Bernoulli
        u = 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
    

    7、循环测量矩阵

    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)Bernoulli
        u = 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
    

    总结

      以上就是此节要展示的代码内容。自己在学习压缩感知的过程中查阅过很多资料,也测试过很多代码,这里的代码入股不亏。如果代码仍和其原理有所偏差,大家也可以根据原理自行进行修改~

    展开全文
  • 压缩感知例程,稀疏基为小波基,测量矩阵为哈达玛矩阵,重构算法为OMP算法,调试过可用。
  • 出一种用于压缩感知的测量矩阵设计方法。该方法结合对角矩阵和正交基线性表示原理, 采用线性结构化的方法构.造, 过程简单、速度快、稀疏度高、没有冗余, 适合硬件资源有限的传感器节点的实现。仿真结果表明, ...
  • 所构造的稀疏带状测量矩阵,通过将测量矩阵进行带状循环移位置零稀疏化,可大幅减少测量矩阵中非零元素数目,降低系统采样要求,节约硬件实现成本,使得压缩感知ISAR成像工程化更容易实现。最后通过仿真和微波暗室...
  • 构造测量矩阵,利用的是半张量积方法,是比较简单的程序

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,451
精华内容 21,380
关键字:

测量矩阵