最近看了一篇文章《Image quality of compressive single-pixel imaging using different Hadamard orderings》,不同的哈达玛排列方式可以实现更低采样率的重建。

文章验证了这四种哈达玛排列形式在低采样率下的重建结果,(b)和(d)其实是一种排列形式,只是分别表示低频和高频。下图展示结果:

验证结果是在低采样率的条件下C的重建效果最好,b次之,最原始的哈达玛排列效果更差一些。b和c其实也是在之前的两篇文章 1-《An Improved Hadamard Measurement Matrix Based on Walsh Code For Compressive Sensing》和 2-《Super sub-Nyquist single-pixel imaging by means of cake-cutting Hadamard basis sort》中介绍的两种方法。

哈达玛矩阵在matlab里可以通过函数 hadamard 直接生成。walsh矩阵和’切蛋糕‘(cake-cutting)矩阵其实都可以在原始哈达玛矩阵的基础上调换行顺序得到。关于walsh-hadamard矩阵的生成,网上只是能找到关于理论的部分,很复杂。在文章 1 里边作者提供了生成沃尔什矩阵的简单方法:

就是先根据所要生成矩阵的大小,确定格雷码位数,要生成的walsh矩阵的每一行, 要把格雷码倒序排列,转换成十进制数,那么哈达玛矩阵的这一行就是对应walsh矩阵的行。 按文章中的例子,生成8×8大小的walsh矩阵,对应格雷码位数为3, 那么walsh矩阵的第一行,对应格雷码(001),倒序排列之后为(100)对应十进制的 4 ,那么walsh矩阵的第一行就是同样大小哈达玛矩阵的第4 行,依次类推即可。下边为matlab程序:

function w=walsh(m)
N=log2(m);
x=hadamard(m);
walsh=zeros(m);
graycode=gen_gray_code(N);
nh1=zeros(m,N);for i=1:mq=graycode(i,:);nh=0;for j=N:-1:1nh1(i,j) =q(j)*2^(j-1);endnh=sum(nh1(i,:));walsh(i,:)=x(nh+1,:);end
w=walsh;
end

其中的有一个生成格雷码的函数:

function gray_code=gen_gray_code(N)
sub_gray=[0;1];
for n=2:Ntop_gray=[zeros(1,2^(n-1))' sub_gray];bottom_gray=[ones(1,2^(n-1))' sub_gray];bottom_gray=bottom_gray(end:-1:1,:);sub_gray=[top_gray;bottom_gray];
end
gray_code=sub_gray;
end

第二篇文章介绍的‘切蛋糕’哈达玛矩阵,作者发现,如果哈达玛矩阵中包含的连接区域(蛋糕块)越少,其对应的测量值可能更高,因此会包含更多的信息。所以作者的思路是 先把大的哈达玛矩阵的每一行拿出来重新排列为方阵,再根据每一个方阵所包含连接区域的多少由小到大进行排列,根据这个顺序将哈达玛矩阵的每一行重新排列即可得到cake-cutting哈达玛矩阵了。

下边是程序:

function ch=cchdm(m)
N=log2(m);
x=hadamard(m);
a=sqrt(m);b=a;
cchdmm=zeros(m);
for i=1:mrow=reshape(x(i,:),[a,b]);num1=0;num2=0;for j=1:a-1if row(1,j)~= row(1,j+1);num1=num1+1;endif row(j,1)~=row(j+1,1)num2=num2+1;endnum(i)=(num1+1)*(num2+1);  end
end[B,index]=sort(num);for k=1:mcchdmm(k,:)=x(index(k),:);
end
ch=cchdmm;
end

一般哈达玛矩阵、沃尔什矩阵及CC哈达玛矩阵的生成相关推荐

  1. 矩阵论习题:设A,B为投影矩阵,证明A+B仍为投影矩阵当且仅当AB=BA=0。

    题目: 设A,B为投影矩阵,证明A+B仍为投影矩阵当且仅当AB=BA=0. 证明: 因为:A,B为投影矩阵 则:A²=A,B²=B.(A+B)²=A²+B²+AB+BA=A+B+AB+BA 若:AB= ...

  2. python实现动态规划求解给定矩阵的和最大的子数组(矩阵中数字正负均存在)

    本篇博文比较简单没有太多实际意义,只是为了练习一下,动态规划我并不熟悉,也是刚处于学习的阶段. 问题: 给定一个指定的矩阵,维数小于1000,在矩阵的所有子数组中寻找具有最大和的子数组求和输出. 思路 ...

  3. c++矩阵类_Python线性代数学习笔记——矩阵的基本运算和基本性质,实现矩阵的基本运算...

    当学习完矩阵的定义以后,我们来学习矩阵的基本运算,与基本性质 矩阵的基本运算:矩阵的加法,每一个对应元素相加,对应结果的矩阵 例子:矩阵A和矩阵B表示的是同学上学期和下学期的课程的成绩,两个矩阵相加就 ...

  4. 线性代数:第三章 矩阵的初等变换与线性方程组(1)矩阵的初等变换 矩阵的秩

    第一节 矩阵的初等变换 一. 数学概念 等价关系具有的性质: (i)  反身性 A~A; (ii) 对称性 若A~B,则B~A; (iii)  传递性 若A~B, B~C,则A~C; 二. 重点,难 ...

  5. python矩阵旋转函数_Python3算法之十:矩阵旋转

    关注微信公众号"酸痛鱼",获得更多最新最全的文章. 本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的. 建议您在PC浏览器中阅读本文,以获得更好的 ...

  6. c++ 二维矩阵 转vector_Python线性代数学习笔记——矩阵的基本运算和基本性质,实现矩阵的基本运算...

    当学习完矩阵的定义以后,我们来学习矩阵的基本运算,与基本性质 矩阵的基本运算:矩阵的加法,每一个对应元素相加,对应结果的矩阵 例子:矩阵A和矩阵B表示的是同学上学期和下学期的课程的成绩,两个矩阵相加就 ...

  7. 矩阵相乘的strassen算法_矩阵乘法的Strassen算法+动态规划算法(矩阵链相乘和硬币问题)...

    矩阵乘法的Strassen 这个算法就是在矩阵乘法中采用分治法,能够有效的提高算法的效率. 先来看看咱们在高等代数中学的普通矩阵的乘法 两个矩阵相乘 上边这种普通求解方法的复杂度为: O(n3) 也称 ...

  8. 信息学奥赛一本通 1967:【14NOIP普及组】螺旋矩阵 | 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵

    [题目链接] ybt 1967:[14NOIP普及组]螺旋矩阵 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵 类似考题: 洛谷 P1014 [NOIP1999 普及组] Cantor 表 ...

  9. 信息学奥赛一本通 1119:矩阵交换行 | OpenJudge NOI 1.8 01 矩阵交换行

    [题目链接] ybt 1119:矩阵交换行 OpenJudge NOI 1.8 01:矩阵交换行 [题目考点] 1. 二维数组 2. 交换两个int型整数 使用<iostream>中的sw ...

  10. numpy中的*(矩阵对应位置元素相乘)和np.dot(矩阵执行矩阵乘法运算)

    注意矩阵乘法运算中的"*"和"np.dot()"是不一样的. "*"的意思是给定一个大小为(4,3)的矩阵A和一个大小为(4,3)的矩阵B, ...

最新文章

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
  2. WebRTC音频预处理单元APM的整体编译及使用
  3. JUC并发编程二 并发架构--线程运行原理
  4. redis 保存 array list 区别_Redis科普篇
  5. 如何在 Linux 上使用 Vundle 管理 Vim 插件
  6. 基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现
  7. 马斯克提出以430亿收购推特 推特考虑用毒丸来阻止其增持股份
  8. 一个代码都不用敲的可视化大屏,一口气把工具和模板都送给你
  9. 与继承相关的一些重构(一)
  10. [Python] 对 Python 装饰器的理解心得
  11. ansys19.0安装破解教程(图文详解)
  12. 防火墙阻止了IE服务器未响应,ie防火墙如何禁用
  13. 教你撸一个网页聊天室
  14. python histogram bins_5种方法教你用Python玩转histogram直方图
  15. android 自定义星级评分控件
  16. CCF考试——201312-5I’m stuck!
  17. 恒源云(GPUSHARE)_Teacher Forcing训练小技巧来啦~
  18. 工作人员做好项目协调服务器,项目团队协作做好三件事
  19. php英文月份,月份英文、月份英文的縮寫│English Learning線上免費英文學習網、線上英文...
  20. ubuntu下依靠guvcview使用摄像头

热门文章

  1. 补遗篇之单行道标志const
  2. 如何求一个平面区域中心点问题--编程实现
  3. centos 6.8 请教笔记本上的虚拟机如何配置无线网络 桥接联网
  4. 唐代:李白《将进酒》《行路难》《蜀道难》《送友人》
  5. Centos8安装wordpress
  6. 两道2016年美国高中数学竞赛题
  7. 齐齐哈尔鹤城计算机学校,齐齐哈尔市鹤城高级中学
  8. GEE学习笔记 七十七:GEE学习方法简介
  9. 搜狗输入法双拼 linux,Ubuntu搜狗输入法设置双拼
  10. 多模光纤与单模光纤熔接及用哪种光模块的问题。