这次的任务是复现该文章的图2(C),过程如下。

①翻译了整篇文章,断断续续,花了3-4天时间。

②阅读文章,并且记录下每个符号的意义,记在单独的1个word文档里。

③开始编程,用的matlab2018b。

  1. clc;clear
  2. %%这个文件,是最终版本,
  3. %% 此版块内,n=,N110,间隔为1
  4. %%(i+0.5)*deierka)这一行,中的i有问题,已经用平移量解决.
  5. %%
  6. kesai=0.1; %过量噪声
  7. seigema=sqrt(+kesai);
  8. b_lim=*seigema; % a_lim用于后面计算S的过程里,就是区间长度的1半,根据文章来的。
  9. length=; %产生随机数组的次数,即100
  10. for n=:: %外层循环是n的循环,n是零差检测精度
  11. i_min=-^(n-);i_max=^(n-)-;
  12. PingYi=-i_min; %为了把角标变为正数,所用的平移量。比如要把-87平移成116,那么平移量就是1-(-)=
  13. for N=0.1:0.1: % 内层循环是N的循环,N采样范围
  14. deierka=N/^(n-); m=; %是间隔,m用于计算后面的a_ba
  15. %%这一块在计算PH
  16. for i=:i_max-i_min+
  17. a(i)=-N+(i-)*deierka; %deierka就是步进间隔
  18. end
  19. for i=:i_max-i_min+
  20. if i==
  21. P(i)=(/)*erfc((N-0.5*deierka)/(sqrt()*seigema));
  22. elseif i>&&i<i_max-i_min+
  23. P(i)=(/)*erf(((i-PingYi+0.5)*deierka)/(sqrt()*seigema))-(/)*erf(((i-PingYi-0.5)*deierka)/(sqrt()*seigema));
  24. elseif i==i_max-i_min+
  25. P(i)=(/)*erfc((N-1.5*deierka)/(sqrt()*seigema));
  26. end
  27. end
  28. index=int8(*N);
  29. H(index)=; R(index)= %清零操作
  30. for i=:i_max-i_min+
  31. diedai=P(i)*log2(P(i))
  32. if P(i)==
  33. diedai=;
  34. end
  35. H(index)=H(index)-diedai;
  36. end
  37. %% 这一块在计算S(aE)
  38. b_min_buf=; b_max_buf=; b_ba_buf=;
  39. buffer1=; buffer2= % 两个buffer用于计算式子C.3中的两个求和
  40. for k=:length
  41. b=-b_lim+*b_lim*rand(,);
  42. b_min_buf=b_min_buf+min(b); b_max_buf=b_max_buf+max(b);
  43. b_ba_buf=b_ba_buf+mean(b);
  44. end
  45. b_min=b_min_buf/length; b_max=b_max_buf/length;
  46. b_ba=mean(a);
  47. for i=:i_max-i_min %不从1开始。另外,倒数第二个是结尾
  48. if a(i)<=b_ba
  49. buffer1=buffer1+P(i)*(a(i)-b_ba-0.5*deierka)^;
  50. else
  51. buffer2=buffer2+P(i)*(a(i)-b_ba+0.5*deierka)^;
  52. end
  53. end
  54. Vx_ba(index)= P()*(b_min-b_ba)^+P(i_max-i_min+)*(b_max-b_ba)^+buffer1+buffer2;
  55. S(index)=((Vx_ba(index)+)/)*log2((Vx_ba(index)+)/)-((Vx_ba(index)-)/)*log2((Vx_ba(index)-)/);
  56. % 这一块在计算R
  57. R(index)=H(index)-S(index);
  58.  
  59. end
  60. t=0.1:0.1:;
  61. if n==
  62. plot(t,R,'r*');
  63. end
  64. if n==
  65. plot(t,R,'*');
  66. end
  67. if n==
  68. plot(t,R,'d');
  69. end
  70. if n==
  71. plot(t,R,'p');
  72. end
  73. legend('n=4','n=8','n=12','n=16');
  74. xlim([,]);ylim([,]);
  75. xlabel('Sample range');
  76. ylabel('R_dis(ai:E');
  77. hold on
  78. end
  79. grid

④在码代码的过程中,有以下几个要注意的地方:

(1)图2C的横坐标是从1到10,不是0到10。

(2)文章里的i是可以取负数的,比如n=4时,i就是从-8到7,但是matlab中的数组下标必须是正的,所以在用式子(10)的时候,需要平移,使得i为正数。

(3)matlab在计算A=P*log2(P)这种时,如果P=0,那么A=NaN,正无穷。因此我的代码里在计算P(也就是文章里的H时,我让,if P(i)=0,则迭代量等于0),如果不这么做,那么H会等于正无穷,

这个问题困扰了我很久,解决它之前,当n=8,N=9时,我的H就等于正无穷,而n=8,N=8时,我的H就等于1个有限值。

(4)注意代码里的b_lim到底取几倍的seigema,这个影响挺大的,我最后卡了很久,终于是发现,就是b_lim在影响我的曲线,一调对了b_lim,我的曲线就跟图2C长得差不多了。

⑤ 原文,翻译,术语符号集合,还有程序,我已经上传至百度云。

[复现论文程序图]High Speed Continuous Variable Source-Independent Quantum Random Number Generation的更多相关文章

  1. 【转帖】远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)

    远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm) https://zhuanlan.zhihu.com/p/310 ...

  2. Variable|quantitative variables|continuous variable|discrete variable|qualitative variables| observation|data set

    2.1Variables and Data Variable:某物或某人的某一特征和其他个体不同. quantitative variables:定量变量either discrete (可以被数)o ...

  3. 论文解读(MPNN)Neural Message Passing for Quantum Chemistry

    论文标题:DEEP GRAPH INFOMAX 论文方向:  论文来源:ICML 2017 论文链接:https://arxiv.org/abs/1704.01212 论文代码: 1 介绍 本文的目标 ...

  4. 论文结果图:matplotlib和seaborn实现

    在论文中,可视化结果往往很重要,毕竟文字太抽象,需要图片向审稿人直观的展现出我们的结果.我也写了俩篇论文和一篇专利的申请,其中也有一些画图的程序,因此记录,防止以后忘了.由于篇幅原因,文章就不贴代码, ...

  5. word论文之图和表目录制作

    https://jingyan.baidu.com/article/91f5db1b3c539f1c7e05e341.html?qq-pf-to=pcqq.c2c 1.目标: (1)图目录. (2)表 ...

  6. 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)

    在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计.绘图的程序常常是跑在服务器上的,可是服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,于是这些统计 ...

  7. 论文笔记之:Speed Up Tracking by Ignoring Features

    Speed Up Tracking by Ignoring Features CVPR 2014 Abstract:本文提出一种特征选择的算法,来实现用最"精简"的特征以进行目标跟 ...

  8. Matlab调用遗传工具箱复现论文模型求解部分

    原文转载自:https://blog.csdn.net/robert_chen1988/article/details/52431594 论文来源: https://www.sciencedirect ...

  9. sql server2016安装程序图

    今天终于有时间安装SQL Server2016正式版,下载那个安装包都用了一个星期 安装包可以从这里下载: http://www.itellyou.cn/ https://msdn.microsoft ...

随机推荐

  1. 渗透系统虚拟机----win7(渗透工具包)

    今天把自己用的win7渗透虚拟机和渗透工具脚本整合到一起备份传网盘了: D:\渗透工具包>dir 驱动器 D 中的卷是 DATA 卷的序列号是 0D74-084B D:\渗透工具包 的目录 // ...

  2. CSRF漏洞实战靶场笔记

    记录下自己写的CSRF漏洞靶场的write up,包括了大部分的CSRF实战场景,做个笔记. 0x01 无防护GET类型csrf(伪造添加成员请求) 这一关没有任何csrf访问措施 首先我们登录tes ...

  3. PHP绕过disable_function限制(一)

    测试环境 php 5.4.5 0x01 利用系统组件绕过 1.window com组件(php 5.4)(高版本扩展要自己添加) (COM组件它最早的设计意图是,跨语言实现程序组件的复用.) 测试: ...

  4. js随机生成验证码以及随机颜色

    Javascript通过Math.random()随机生成验证码. 代码如下: <!DOCTYPE html><html> <head> <meta char ...

  5. STL的vector略解

    本文部分内容参考于这儿. vector 的基础知识,上文已经阐述地很详尽了.笔者谨给出 vector 的声明及其常用函数. 代码抬头需包含 #include<vector> using n ...

  6. [专题练习] Part1 搜索

    本文中的链接有的是题解有的是题目链接,已经搞混了... 一.DFS(深度优先搜索) 过于水略过. 二.BFS(广度优先搜索) 同上. 三.记忆化 记忆化搜索,就是我们的状态会重复利用,为了防止状态的重 ...

  7. 【教程】基于Ubuntu系统的PyTorch虚拟环境配置

    目录 一.PyTorch虚拟环境配置 二.PyTorch虚拟环境使用 三.常用命令 Editor: Veagau Time: 2019/10/17 一.PyTorch虚拟环境配置 该部分操作均在终端( ...

  8. ESP8266开发之旅 基础篇⑥ Ticker——ESP8266定时库

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  9. 【MongoDB详细使用教程】四、python操作MongoDB

    目录 1.安装pymongo 2.连接数据库 3.操作数据库 3.1.查 3.2.增 3.3.改 3.4.删 使用第三方库pymongo来实现python对MongoDB的操作 pymongo官方文档 ...

  10. Mysql数据库(六)视图

    一.视图是由数据库中的一个表或多个表导出的虚拟表.其作用是方便用户对数据的操作. 1.视图的概念 2.视图的作用 二.创建视图 创建视图是指在已经存在的数据表上建立视图.视图可以建立在一张表中,也可以 ...