本人编的程序,利用所学数据链路层原理,本人设计一个滑动窗口协议并在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。
信道模型为8000bps全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度在240~256字节范围。
通过该实验,进一步巩固和深刻理解数据链路层的误码检测的CRC校验技术,以及滑动窗口的工作机理。
滑动窗口机制的两个主要目标:(1)实现有噪音信道环境下的无差错传输;(2)充分利用传输信道的带宽。
在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。
1
极化码串行抵消译码算法误码率matlab仿真平台,可配相信噪比,码长码率
2018/5/21 17:10:34 58KB successive cancellation
1
模仿数据链路层的gobackn协议/*该协议是搭载ack的回退n步协议*/#include#include"protocol.h"#definemax_seq7#defineflag126#defineESC100#definewait_time2700 //发送计时器等待的时间#defineack_wait_time280staticintphl_ready=0;unsignedcharbuf[max_seq+1][270];unsignedcharack[8];//发送空的ack帧unsignedcharin_buf[600],last_buf[520];//接收时的缓冲区;去掉冗余之后的缓冲区,为防备因误码两帧合并为一帧而定义了很大一个数组intnbuffered=0;//发送的帧数intbuf_size[max_seq+1];//记下以发送各帧的帧长intnext_frame_to_send=0;intframe_in_phl=0;//用于成帧intframe_expected=0;intack_expected=0;intbetween(inta,intb,intc){ if(((a<=b)&&(b<c))||((c<a)&&(a<=b))||((b<c)&&(c<a))) return1; elsereturn0;}//判断帧尾,防止出现误判escescflag为数据的情况intend_flag(intin_len){ intcount=0; inti; if(in_len=0;i--)//记录flag前的esc数目 count++; returncount%2;//若flag前的esc为偶数,则为帧尾}//成帧函数--数据帧voidsend_frame(char*my_buf,intlen){ intn; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //发送帧的帧号 for(n=0;n<len;n++) buf[frame_in_phl][n+2]=my_buf[n]; //将处理过的新帧赋值到缓冲区中 len=len+2; *(unsignedint*)(buf[frame_in_phl]+len)=crc32(buf[frame_in_phl],len); //在原始帧的基础上加检验和 buf_size[frame_in_phl]=len+4; //记录当前帧的长度,包括3个帧头,4个检验和 nbuffered=nbuffered+1; //缓冲区占用数加一 frame_in_phl=(frame_in_phl+1)%(max_seq+1);}//成帧函数--ack帧voidsend_ack() //ack帧的处理{ ack[0]=(frame_expected+max_seq)%(max_seq+1); ack[1]=max_seq+10; //ack帧的序号位,使ack[1]==frame_expected恒不成立 *(unsignedint*)(ack+2)=crc32(ack,2); //在原始帧的基础上加检验和}//主函数intmain(intargc,char**argv){intevent,arg,n,m,i,j,len=0,in_len=0; unsignedcharmy_buf[260]; intphl_wait=0;//在物理层中还没有被发送的帧protocol_init(argc,argv);enable_network_layer();for(;;){event=wait_for_event(&arg);switch(event){caseNETWORK_LAYER_READY:
2019/7/26 21:18:43 425KB go back n gobackn
1
国外比较经典的MATLAB关于QPSK调制、解调代码,每一模块都非常详细,程序书写较为规范,可作为初学者学习范例。
程序采用MONTE-CARLO仿真,且对误码率仿真和实现做了比较,对于想了解DQPSK、QPSK工作原理的技术开发人员,也有一定协助。
2019/3/10 9:20:26 5KB QPSK DQPSK MATLAB
1
基于MATLAB的直接序列扩频通信系统功能仿真分析研究基于Simulink的直接序列扩展频谱通信系统仿真研究基于MATLAB的扩频通信系统仿真研究扩频通信系统及MATLAB仿真直接序列扩频通信系统建模仿真分析直接序列扩频通信系统误码率的仿真分析
1
对于DDR源同步操作,必然要求DQS选通信号与DQ数据信号有一定建立时间tDS和保持时间tDH要求,否则会导致接收锁存信号错误,DDR4信号速率达到了3.2GT/s,单一比特位宽仅为312.5ps,时序裕度也变得越来越小,传统的测量时序的方式在短时间内的采集并找到tDS/tDH最差值,无法大概率体现由于ISI等确定性抖动带来的对时序恶化的贡献,也很难精确反映随机抖动Rj的影响。
在DDR4的眼图分析中就要考虑这些抖动因素,基于双狄拉克模型分解抖动和噪声的随机性和确定性成分,外推出基于一定误码率下的眼图张度。
JEDEC协会在规范中明确了在DDR4中测试误码率为1e-16的眼图轮廓,确保满足在Vcent周围Tdivw时间窗口和Vdivw幅度窗口范围内模板内禁入的要求。
2021/4/18 1:24:17 1.78MB DDR4 眼图
1
基于C言语的BPSK的调制与解调,在加性高斯白噪声的信道下实现,检查系统的误码率。
2020/2/24 23:27:56 8KB C语言 BPSK
1
DCSK的仿真代码以及相应的理论误码率分析。







2019/4/27 1:25:56 1KB DCSK 差分混沌键控 误码率 matlab
1
谢谢之前那位朋友提示,之前不完全,现在补充了遗漏的!要做Turbo,感觉是绕不开Dr.wuyufei的数学架构的,我在里面详细注释了。
本文作为学习用,很具有参考价值!本文在结果中详细列出了每次迭代的误码率,迭代次数可调,结果运行时间较长,这个很正常。
译码部分的log-map算法调通了,sova有代码,并没有调,下载的朋友们需要注意了!%**************Dr.wuyufei的典型Turbo系统主函数********************************%Thisscriptsimulatestheclassicalturboencoding-decodingsystem.%Itsimulatesparallelconcatenatedconvolutionalcodes.%Twocomponentrate1/2RSC(RecursiveSystematicConvolutional)componentencodersareassumed.%%Firstencoderisterminatedwithtailsbits.(Info+tail)bitsarescrambledandpassedto%thesecondencoder,whilesecondencoderisleftopenwithouttailbitsofitself.%%Randominformationbitsaremodulatedinto+1/-1,andtransmittedthroughaAWGNchannel.%Interleaversarerandomlygeneratedforeachframe.%Whileit'sUNECESSARYinourfirstversion!%%Log-MAPalgorithmwithoutquantizationorapproximationisused.%Bymakinguseofln(e^x+e^y)=max(x,y)+ln(1+e^(-abs(x-y))),%theLog-MAPcanbesimplifiedwithalook-uptableforthecorrectionfunction.%Ifuseapproximationln(e^x+e^y)=max(x,y),itbecomesMAX-Log-MAP.
2020/7/21 8:34:33 72KB turbo matlab仿真 dr.wuyufei 详细注释
1
在数字通信的教学和设计中,传统的方法主要是手工分析与电路板试验。
通信系统中所有变量相互之间是非线性的关系,大部分是较为繁琐的数字理论,容易使学生感到乏味和难以接受。
所以采用MATLAB语言及SIMULINK仿真环境作为工具,制造出了一个数字调制演示系统GUI设计方案。
开发的演示系统设计简单、结构一致,具有可视化、开放性、可扩展性、易于学习和维护等优点。
演示系统主要演示二进制振幅键控、移频键控和移相键控数字通信系统.在Simulink模块库中选取合适的数字通信仿真模块组成上述系统。
在GUI图形用户界面,按下一个按纽可以打开系统的Simulink模型图,编辑对话框可以修改系统的相应参数,按下另一个按纽可以对该数字通信系统进行仿真.仿真中可直观地观察到信号在通信系统各部分中的时域波形,和系统的误码率。
从而可以看出参数对系统误码率的影响,以及比较各个系统的优劣。
1
共 183 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡