版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第14章MATLAB通信系统仿真【学习目标】了解数字通信系统基本概念掌握数字调制/解调及其仿真掌握信道编码/译码及其仿真2024/1/221精选2021版课件第14章MATLAB通信系统仿真数字通信系统基本概念14.1数字调制/解调及其仿真14.2信道编码/译码及其仿真14.3典型数字通信仿真实例14.42024/1/222精选2021版课件14.1数字通信系统基本概念2024/1/223精选2021版课件14.2数字调制/解调及其仿真14.2.1脉冲幅度调制(PAM)信号14.2.2相位调制(PSK)信号14.2.3频率调制信号14.2.4连续相位调制信号2024/1/224精选2021版课件1.脉冲幅度调制(PAM)信号2024/1/225精选2021版课件1.脉冲幅度调制(PAM)信号参数名称参数值M-arynumber(M维数)4Initialseed(初始化种子)37Sampletime(采样时间)0.01RandomIntegerGenerator(随机整数发生器)的主要参数M-PAM调制和解调器的主要参数参数名称参数值M-arynumber(M维数)4Minimumdistance(最小距离)2Constellationordering(星座顺序)Binary2024/1/226精选2021版课件1.脉冲幅度调制(PAM)信号AWGNChannel(高斯白噪声信道)的主要参数Discrete-TimeScatterPlotScope(离散时间星座仪)的主要参数参数名称参数值Initialseed(初始化种子)67Es/No(dB)(信噪比)25Symbolperiod(符号周期)1参数名称参数值Samplespersymbol(每符号采样)1Offset(samples)(偏置)0Pointsdisplayed(显示点数)1000Newpointsperdisplay(每次显示的新迹)5002024/1/227精选2021版课件1.脉冲幅度调制(PAM)信号ErrorRateCalculation(误码率计算)的主要参数参数名称参数值Receivedelay(接收延迟)0Computationdelay(计算延迟)0Computationmode(计算模式)EntireframeOutputdata(输出数据)port2024/1/228精选2021版课件2.相位调制(PSK)信号2024/1/229精选2021版课件2.相位调制(PSK)信号M-PSKModulatorBaseband(M-PSK基带调制器)的主要参数参数名称参数值M-arynumber(M维数)8Phaseoffset(rad)(相位偏差)pi/8Constellationordering(星座顺序)BinaryInputtype(输入类型)Integer2024/1/2210精选2021版课件3.频率调制信号2024/1/2211精选2021版课件3.频率调制信号
BernoulliBinaryGenerator(伯努利二进制随机数产生器)的主要参数参数名称参数值Probabilityofazero(0出现的概率)0.5Initialseed(初始化种子)61Sampletime(采样时间)0.1Frame-basedoutput(基于帧输出)使能Samplesperframe(每帧采样数)10M-FSKModulatorBaseband(MFSK基带调制器)的主要参数参数名称参数值M-arynumber(M维数)4Inputtype(输入类型)BitSymbolsetordering(符号顺序)BinaryFrequencyseparation(Hz)(频率间隔)10Phasecontinuity(相位连续性)DiscontinuousSamplespersymbol(每符号采样数)162024/1/2212精选2021版课件4.连续相位调制信号2024/1/2213精选2021版课件4.连续相位调制信号GMSKModulatorBaseband(GMSK基带调制器)的主要参数参数名称参数值Inputtype(输入类型)BitBTproduct(BT乘积)0.3Pulselength(symbolintervals)(符号间隔)3Symbolprehistory(符号前史)1Phaseoffset(rad)(相位偏置)0Samplespersymbol(每符号采样数)162024/1/2214精选2021版课件14.3信道编码/译码及其仿真14.3.1线性分组码14.3.2循环码14.3.3卷积码2024/1/2215精选2021版课件1.线性分组码MATLAB中使用encode、decode可以实现线性分组码的编译码。encode函数的语法形式如下:code=encode(msg,n,k,'linear/fmt',genmat)code=encode(msg,n,k,'cyclic/fmt',genpoly)code=encode(msg,n,k,'hamming/fmt',prim_poly)code=encode(msg,n,k)[code,added]=encode(...)使用encode可以实现线性分组码、循环码、汉明码的编码。2024/1/2216精选2021版课件1.线性分组码函数参数的含义如下:msg:信息序列,可以是二进制行或列向量,也可以是二进制矩阵,也可以是十进制行或列向量;n,k:分别为码长和信息分组长度;fmt':表示编码进制数,默认为二进制(binary);genmat:表示线性分组码的生成矩阵;genpoly:表示循环码的生成多项式,可以由函数cyclpoly(n,k)实现;prim_poly:表示采用汉明编码时的本原多项式,可以由函数gfprimdf(n-k)实现。2024/1/2217精选2021版课件1.线性分组码【例10-1】encode函数使用示例:采用三种不同的格式(二进制向量、二进制矩阵以及十进制向量)生成(7,4)汉明码。clc;clearall;closeall;m=3;n=2^m-1;%码长=7k=2^m-1-m;%信息分组长=4%生成50个信息分组,每个分组k比特msg1=randint(50*k,1,[0,1]);%列向量msg2=vec2mat(msg1,k);%转换为k维列向量的矩阵msg3=bi2de(msg2)';%转换为十进制整数的行向量2024/1/2218精选2021版课件1.线性分组码%生成50个码字,每个码字n比特code1=encode(msg1,n,k,'hamming/binary');code2=encode(msg2,n,k,'hamming/binary');code3=encode(msg3,n,k,'hamming/decimal');%判断三种方法生成的码字是否相同if(vec2mat(code1,n)==code2&de2bi(code3',n)==code2)disp('Allthreeformatsproducedthesamecontent.')end2024/1/2219精选2021版课件2.循环码循环码BCH码里德-所罗门(RS)码2024/1/2220精选2021版课件2.循环码【例encode和
decode函数使用示例:对(15,4)循环码进行编译码。clc;clearall;closeall;n=15;k=4;genpoly=cyclpoly(n,k,'max');%构造循环码多项式msg=randint(100,k,[0,1]);%100个信息分组code=encode(msg,n,k,'cyclic/binary',genpoly);noisycode=rem(code+randerr(100,n,[01;.7.3]),2);%加噪声newmsg=decode(noisycode,n,k,'cyclic');%译码[number,ratio]=biterr(newmsg,msg);%计算误码率disp(['Thebiterrorrateis',num2str(ratio)])2024/1/2221精选2021版课件2.循环码BCH码bchenc函数的语法形式如下:code=bchenc(msg,n,k)code=bchenc(...,paritypos)这两个函数可以用于生成
BCH码,其中msg的数据结构必须为Galoisarray。与bchenc相对应的函数是bchdec,函数的语法形式如下:decoded=bchdec(code,n,k)[decoded,cnumerr,ccode]=bchdec(...)cnumerr:表示与code相对应的纠正的错误个数;ccode:表示经过错误纠正后的码字;decoded:表示返回的译码结果。2024/1/2222精选2021版课件2.循环码【例10-4】BCH码编译码仿真示例。clc;clearall;closeall;m=4;n=2^m-1;%码字长度k=5;%信息符号长度nwords=10;%编码个数msg=gf(randint(nwords,k));[genpoly,t]=bchgenpoly(n,k);%获得生成多项式及相应的纠错能力tt2=t;code=bchenc(msg,n,k);%编码noisycode=code+randerr(nwords,n,1:t2);%对每个码字加t2比特错误2024/1/2223精选2021版课件2.循环码[newmsg,err,ccode]=bchdec(noisycode,n,k);%译码ifccode==codedisp('Allerrorswerecorrected.')endifnewmsg==msgdisp('Themessagewasrecoveredperfectly.')end2024/1/2224精选2021版课件2.循环码【例10-5】RS码编译码仿真示例。m=3;%每符号比特数n=2^m-1;k=3;%码字长度和信息长度t=(n-k)/2;%rs码的纠错能力nw=4;%码字个数msgw=gf(randint(nw,k,2^m),m);%生成随机信息符号c=rsenc(msgw,n,k);%编码noise=(1+randint(nw,n,2^m-1)).*randerr(nw,n,t);cnoisy=c+noise;%加噪声[dc,nerrs,corrcode]=rsdec(cnoisy,n,k);%译码isequal(dc,msgw)&isequal(corrcode,c)%检测是否译码正确2024/1/2225精选2021版课件3.卷积码poly2trellis函数是将卷积码的多项式描述转换为网格描述。函数的语法形式如下:trellis=poly2trellis(ConstraintLength,CodeGenerator)trellis=poly2trellis(ConstraintLength,CodeGenerator,FeedbackConnection)具体参数的函数如下:ConstraintLength:表示k个输入比特的约束长度;CodeGenerator:表示卷积码的生成矩阵,使用八进制数表示,生成矩阵表示n个输出对应于k个输入的连接;FeedbackConnection:表示反馈编码器的连接,使用八进制数表示;2024/1/2226精选2021版课件3.卷积码trellis:函数的返回值是一个网格结构体,网格结构体包含的字段及含义如表所示网格结构体字段维数含义numInputSymbols标量输入到编码器的符号个数:
numOutputsymbols标量编码器输出的符号个数:
numStates标量编码器状态数nextStatesnumStates矩阵当前状态在当前输入下的下一状态outputsnumStates矩阵当前状态在当前输入下的输出2024/1/2227精选2021版课件3.卷积码convenc函数的语法形式如下:code=convenc(msg,trellis)code=convenc(msg,trellis,puncpat)code=convenc(msg,trellis,...,init_state)[code,final_state]=convenc(...)其中各参数含义如下:msg:待编码的信息序列,为二进制向量。编码器的每个输入符号包含log2(trellis.numInputSymbols)个比特;puncpat:表示打孔(puncture)图样,通过打孔可以构造删除卷积码,从而获得更高的码率;init_state:表示编码器的初始状态;final_state:表示编码结束后编码器的最终状态。2024/1/2228精选2021版课件3.卷积码卷积码的译码采用维特比译码,vitdec函数的语法形式如下:decoded=vitdec(code,trellis,tblen,opmode,dectype)decoded=vitdec(code,trellis,tblen,opmode,'soft',nsdec)decoded=vitdec(code,trellis,tblen,opmode,dectype,puncpat)vitdec函数使用维特比算法进行译码,具体各参数含义如下:trellis:指定了该卷积码的网格图结构;tblen:表示回溯长度,对于
卷积码,tblen约为编码约束长度的5倍;opmode:表示译码器的操作模式。2024/1/2229精选2021版课件3.卷积码卷积码的译码采用维特比译码,vitdec函数的语法形式如下:decoded=vitdec(code,trellis,tblen,opmode,dectype)decoded=vitdec(code,trellis,tblen,opmode,'soft',nsdec)decoded=vitdec(code,trellis,tblen,opmode,dectype,puncpat)vitdec函数使用维特比算法进行译码,具体各参数含义如下:trellis:指定了该卷积码的网格图结构;tblen:表示回溯长度,对于
卷积码,tblen约为编码约束长度的5倍;opmode:表示译码器的操作模式。2024/1/2230精选2021版课件3.卷积码vitdec函数有三种操作模式: 'cont':假定编码器开始于全0状态,译码器从最优路径回溯,延迟tblen个符号后得到译码输出; 'term':假定编码器开始和结束状态都为全0状态,译码器从全0状态开始回溯译码,该模式没有延时; 'trunc':假定编码器开始于全0状态,译码器从最优路径回溯,该模式没有延时。dectype:表示维特比译码的判决模式:'unquant':未量化输入,码字包含实值输入;'hard':采用硬判决算法;'soft':采用软判决算法;nsdec:软判决译码算法中的量化比特数。2024/1/2231精选2021版课件3.卷积码【例10-7】卷积码的编译码仿真示例。clc;clearall;closeall;%编码数据比特trel=poly2trellis(3,[67]);%定义网格msg=randi([01],1000,1);%随机数据code=convenc(msg,trel);%卷积编码tblen=5;%回溯长度%映射"0"比特为1.0,"1"比特为-1.0,同时加高斯白噪声ucode=real(awgn(1-2*code,3,'measured'));hcode=ucode<0;%硬判决译码,转换为二进制decoded1=vitdec(hcode,trel,tblen,'cont','hard');2024/1/2232精选2021版课件3.卷积码%软判决译码,使用量化输入,采用3比特量化[x,qcode]=quantiz(ucode,[-.75-.5-.250.25.5.75],7:-1:0);decoded2=vitdec(qcode',trel,tblen,'cont','soft',3);decoded3=vitdec(ucode,trel,tblen,'cont','unquant');%软判决译码,使用非量化输入%计算误比特率,译码器输出延迟tblen个符号[n1,r1]=biterr(double(decoded1(tblen+1:end)),msg(1:end-tblen));[n2,r2]=biterr(d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳物派遣合同
- 塘渣购买合同样本
- 商家经营合同范本
- 服装品牌商加盟连锁购销合同
- 大米质量守护
- 寿山石购销合同模板
- 稻作飞防技术合同
- 房屋买卖合同样本格式模板
- 铁矿烧结矿批量采购合同
- 图书印刷购销协议
- 国开2024秋《形势与政策》专题测验1-5参考答案
- 职业教育国家在线课程申报书
- 2025届高考语文复习:小说情节概括+课件
- 137案例黑色三分钟生死一瞬间事故案例文字版
- 期中测试卷(试题)-2024-2025学年人教版数学六年级上册
- 2024年“农业经理人”职业技能大赛考试题库500题(含答案)
- 西方近现代建筑史智慧树知到期末考试答案章节答案2024年天津大学
- (高清版)TDT 1055-2019 第三次全国国土调查技术规程
- 维护社会稳定规定
- 2024年河北承德热力集团招聘笔试参考题库含答案解析
- 软件测试项目课件04黑盒测试
评论
0/150
提交评论