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

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

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

③开始编程,用的matlab2018b。

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

View Code

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

(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长得差不多了。

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

转载于:https://www.cnblogs.com/zf007/p/11415981.html

[复现论文程序图]High Speed Continuous Variable Source-Independent Quantum Random Number Generation...相关推荐

  1. 复现论文DRL代码程序

    复现论文第一步(以DRL为例),download 代码 and then 创建环境. 1)git clone GitHub - foolwood/DRL: [arXiv22] Disentangled ...

  2. home credit default risk捷信消费金融违约风险模型复现(论文_毕业设计_作业)

    你能预测每个申请人偿还贷款的能力吗?由于信用记录不足或不存在,许多人难以获得贷款.而且,不幸的是,这些人经常被不可靠的贷方利用,例如高利贷,校园贷. 捷信努力为没有银行账户的人群扩大金融包容性.为了确 ...

  3. home credit default risk(捷信违约风险)机器学习模型复现(论文_毕业设计_作业)

    你能预测每个申请人偿还贷款的能力吗?由于信用记录不足或不存在,许多人难以获得贷款.而且,不幸的是,这些人经常被不可靠的贷方利用,例如高利贷,校园贷. 捷信努力为没有银行账户的人群扩大金融包容性.为了确 ...

  4. 复现计算机论文模型,深度学习模型复现难?看看这篇句子对模型的复现论文

    原标题:深度学习模型复现难?看看这篇句子对模型的复现论文 在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 ...

  5. SIGIR‘22 推荐系统论文之图网络篇

    2022推荐系统论文梳理系列 推荐系统相关顶会整理 IJCAI'22 推荐系统论文梳理 ICML/ICLR'22 推荐系统论文梳理 WWW'22 推荐系统论文之序列推荐篇 WWW'22 推荐系统论文之 ...

  6. matlab复现论文中的曲线图(坐标存入excal,然后导入matlab画图)

    首先找到你想复现的曲线图,然后运行以下代码,在运行之前先将曲线图的路径改好. 比如我要复现这张图: clc,clear; disp('提示:命令行窗口键入:ctrl+c,表示停止运行 '); im=i ...

  7. 【论文写作】论文实验结果图绘制细节

    本殿下在此前一直使用MATLAB进行论文的绘图,不得不说,MATLAB绘图功能着实强大.但是,由于MATLAB程序比较大,所以,每次启动起来不是很方便.直到接触到Python中matplotlib模块 ...

  8. 关注:诺奖得主被爆40多篇论文P图造假!涉及国内“杰青”

    来源:解螺旋.弗雷赛斯 诺奖得主也沦陷了! 截止2021年11月6日,Gregg L. Semenza教授针对其在Pubpeer被挂的52篇论文,进行了至少6篇文章的纠正,且撤回了1篇文章. 离谱的是 ...

  9. python简单代码画曲线图教程-用Python画论文折线图、曲线图?几个代码模板轻松搞定!...

    前言 这几天在搞论文图,唉说实话抠图这种东西真能逼死人.坐在电脑前抠上一天越看越丑,最后把自己丑哭了-- 到了画折线图分析的时候,在想用哪些工具的时候.首先否决了excel,读书人的事,怎么能用exc ...

  10. python画折线图代码-用Python画论文折线图、曲线图?几个代码模板轻松搞定!

    前言 这几天在搞论文图,唉说实话抠图这种东西真能逼死人.坐在电脑前抠上一天越看越丑,最后把自己丑哭了-- 到了画折线图分析的时候,在想用哪些工具的时候.首先否决了excel,读书人的事,怎么能用exc ...

最新文章

  1. 人工智能28个常见术语,别再说你不懂AI了!
  2. windows ffmpeg 的安装
  3. 使用 Visual Studio 编译 wget 为库文件
  4. TQ210——核心板和底板
  5. float和clear都是布局的属性
  6. java实现linux变量替换_linux java 配置 含环境变量 | 学步园
  7. [PyTorch] 基于Python和PyTorch的线性拟合
  8. 给云服务器上传文件,如何给云服务器上传文件
  9. Java 十大必读经典书籍推荐
  10. 中国工商注册企业全信息数据
  11. a指定许可服务器无效,错误的hostid与许可证服务器
  12. 灌篮高手微信登录是什么服务器,灌篮高手微信登录版本
  13. @Scripts “does not exist”
  14. HTML、css基础知识
  15. 第五讲 Matlab/Simulink入门——混合系统仿真实例
  16. C语言编程习题专项突破
  17. 一体化大威海的战略抉择
  18. python获取财务数据曝光_Python-股票-从网易财经获取主要财务指标数据
  19. 阜阳一中2021高考成绩查询,安徽阜阳“赫赫有名”的4所高中,成绩说话,2021谁能摘得桂冠?...
  20. bro流量分析(改名zeek)ips

热门文章

  1. 计算机CPU风扇的功能及作用,CPU和风扇之间涂的是什么东西
  2. #STM32 LCD12864编程即原理介绍
  3. 网站能使用微软雅黑字体吗?是否会构成侵权?微软雅黑有版本吗?
  4. 【无限互联】学员作品:搜狐新闻iOS客户端
  5. FreeBSD搭建Nginx+Apache24+php56+mysql56手把手一步步的笔记
  6. JAVA安卓植物大战僵尸主题四子棋游戏
  7. 全市场等权中位数_市场指数估值周报20200523
  8. 也谈谈内卷化、996和程序员的发展
  9. 什么是模式识别,模式识别概念的基本介绍
  10. linux redis-trib.rb,linux - redis-trib.rb 命令详解