欢迎来到天天文库
浏览记录
ID:40560580
大小:41.50 KB
页数:11页
时间:2019-08-04
《Matlab仿真DF和AF源程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、版权所有,如转载,请注明出处。说明: 该程序是使用Matlab仿真协同通信的DF(解码转发)基本性能,基本模型S-R-D三个节点,接收端使用MRC(最大比合并)。固定DF由于SR信道的错误,其性能受到限制,在大SNR情况下不能获得有效分集。而当SR距离足够近的时候,可能获得一定的分集增益。 该程序也可以作为学习Matlab通信仿真的入门实例。使用的基本函数: 随机数函数:randrandn 文件操作:fopenfprintffclose 时间函数:datestr(now) 画图函数
2、:semilogy legend axis 通信基本概念和函数: 瑞利信道及其产生 高斯噪声的产生 蒙特卡罗仿真 MRC最大比合并 程序一:DF_SNR_SR_distance.m主程序%writtenbyxiyong826025/08/2009%thiscodeisforfixedDFperformanceevaluation,comparethediffirentSRdistance%该仿真用来评估不同的SR距离下的固定DF转发性能%forS-R-Dthreenodes%t
3、heSDandRDchannelisRayleighfading,andtheaverageSNRisvaried.clearall;%thetimesofMonteCarlo %蒙特卡罗仿真的次数Monte_MAX=10^(7);%thelengthofdataframeM2=10^(0);MIN_SNR=0;MAX_SNR=30;INTERVAL=2;%功率划分因子,在协同情况下,为了保证总的功率一定,每个节点使用1/2的功率发送POW_DIV=1/2;%openanewrecordfile%打开一个新的
4、文件,如果文件已经存在,那么清除以前的内容fid=fopen('record.txt','w');fprintf(fid,'%%%s',datestr(now));fclose(fid);%settheSDdistanceandRDdistance%设置SD距离和RD的距离,归一化为1sd_distance=1;rd_distance=1;%变化不同的SR距离sr_distances=[0.1,0.5,0.7,0.9];%使用循环的方式仿真不同的SR距离性能forsr_INDEX=1:2 %通
5、过sr_INDEX变量获得真正的SR距离 sr_distance=sr_distances(sr_INDEX); %snrcount这个变量用来对下面的SNR循环进行计数 snrcount=0; %变化SNR循环 forSNR=MIN_SNR:INTERVAL:MAX_SNR sig=10^(SNR/10); %justdisplaysomethingonthescreen. %仅仅是在计算机上显示一些信息,因为仿真往
6、往很漫长,只是想知道仿真到哪里了^.^ datestr(now) M2 SNR snrcount=snrcount+1; %用来对错误的bit计数 err_num_dsd=0; err_num_coop=0; fortries=0:Monte_MAX %flagindicateifthecooperateisused,if1,u
7、secooperation,elsedirecttranisperferred. %一个标志,表明是否转发 tx_coop=1; %generatethesourceBPSKsignal,0,1 %产生一个长度为M2的0,1随机数 X1=rand(1,M2)>0.5; %generatethesourceBPSKsignal,+1,-1 %产
8、生一个长度为M2的BPSK随机信号 Xs=X1*2-1; %generatethesource-relaychannel,thechannelkeepconstantinaframe %产生SR信道,假设信道在一帧内保持不变 CH_sr=xy_RayleighCH(1)/(sr_distance)^2;
此文档下载收益归作者所有