MATLAB基础与实例进阶.ppt

上传人:小飞机 文档编号:5439064 上传时间:2023-07-07 格式:PPT 页数:39 大小:443KB
返回 下载 相关 举报
MATLAB基础与实例进阶.ppt_第1页
第1页 / 共39页
MATLAB基础与实例进阶.ppt_第2页
第2页 / 共39页
MATLAB基础与实例进阶.ppt_第3页
第3页 / 共39页
MATLAB基础与实例进阶.ppt_第4页
第4页 / 共39页
MATLAB基础与实例进阶.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《MATLAB基础与实例进阶.ppt》由会员分享,可在线阅读,更多相关《MATLAB基础与实例进阶.ppt(39页珍藏版)》请在三一办公上搜索。

1、2023/7/7,机械工业出版社,Page 1,第14章 MATLAB通信系统仿真,【学习目标】了解数字通信系统基本概念掌握数字调制/解调及其仿真掌握信道编码/译码及其仿真,2023/7/7,机械工业出版社,Page 2,第14章 MATLAB通信系统仿真,2023/7/7,机械工业出版社,Page 3,14.1数字通信系统基本概念,2023/7/7,机械工业出版社,Page 4,14.2数字调制/解调及其仿真,14.2.1 脉冲幅度调制(PAM)信号14.2.2 相位调制(PSK)信号14.2.3 频率调制信号14.2.4 连续相位调制信号,2023/7/7,机械工业出版社,Page 5,1

2、.脉冲幅度调制(PAM)信号,2023/7/7,机械工业出版社,Page 6,1.脉冲幅度调制(PAM)信号,Random Integer Generator(随机整数发生器)的主要参数,M-PAM调制和解调器的主要参数,2023/7/7,机械工业出版社,Page 7,1.脉冲幅度调制(PAM)信号,AWGN Channel(高斯白噪声信道)的主要参数,Discrete-Time Scatter Plot Scope(离散时间星座仪)的主要参数,2023/7/7,机械工业出版社,Page 8,1.脉冲幅度调制(PAM)信号,Error Rate Calculation(误码率计算)的主要参数,

3、2023/7/7,机械工业出版社,Page 9,2.相位调制(PSK)信号,2023/7/7,机械工业出版社,Page 10,2.相位调制(PSK)信号,M-PSK Modulator Baseband(M-PSK基带调制器)的主要参数,2023/7/7,机械工业出版社,Page 11,3.频率调制信号,2023/7/7,机械工业出版社,Page 12,3.频率调制信号,Bernoulli Binary Generator(伯努利二进制随机数产生器)的主要参数,M-FSK Modulator Baseband(MFSK基带调制器)的主要参数,2023/7/7,机械工业出版社,Page 13,4

4、.连续相位调制信号,2023/7/7,机械工业出版社,Page 14,4.连续相位调制信号,GMSK Modulator Baseband(GMSK基带调制器)的主要参数,2023/7/7,机械工业出版社,Page 15,14.3信道编码/译码及其仿真,14.3.1 线性分组码14.3.2 循环码14.3.3 卷积码,2023/7/7,机械工业出版社,Page 16,1线性分组码,MATLAB中使用encode、decode可以实现线性分组码的编译码。encode函数的语法形式如下:code=encode(msg,n,k,linear/fmt,genmat)code=encode(msg,n,

5、k,cyclic/fmt,genpoly)code=encode(msg,n,k,hamming/fmt,prim_poly)code=encode(msg,n,k)code,added=encode(.)使用encode可以实现线性分组码、循环码、汉明码的编码。,2023/7/7,机械工业出版社,Page 17,1线性分组码,函数参数的含义如下:msg:信息序列,可以是二进制行或列向量,也可以是二进制矩阵,也可以是十进制行或列向量;n,k:分别为码长和信息分组长度;fmt:表示编码进制数,默认为二进制(binary);genmat:表示线性分组码的生成矩阵;genpoly:表示循环码的生成多

6、项式,可以由函数cyclpoly(n,k)实现;prim_poly:表示采用汉明编码时的本原多项式,可以由函数gfprimdf(n-k)实现。,2023/7/7,机械工业出版社,Page 18,1线性分组码,【例10-1】encode函数使用示例:采用三种不同的格式(二进制向量、二进制矩阵以及十进制向量)生成(7,4)汉明码。clc;clear all;close all;m=3;n=2m-1;%码长=7k=2m-1-m;%信息分组长=4%生成50个信息分组,每个分组k比特msg1=randint(50*k,1,0,1);%列向量msg2=vec2mat(msg1,k);%转换为k维列向量的矩

7、阵msg3=bi2de(msg2);%转换为十进制整数的行向量,2023/7/7,机械工业出版社,Page 19,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(All three formats produced the same c

8、ontent.)end,2023/7/7,机械工业出版社,Page 20,2循环码,循环码BCH码里德-所罗门(RS)码,2023/7/7,机械工业出版社,Page 21,2循环码,【例encode和 decode函数使用示例:对(15,4)循环码进行编译码。clc;clear all;close all;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(

9、100,n,0 1;.7.3),2);%加噪声newmsg=decode(noisycode,n,k,cyclic);%译码number,ratio=biterr(newmsg,msg);%计算误码率disp(The bit error rate is,num2str(ratio),2023/7/7,机械工业出版社,Page 22,2循环码,BCH码bchenc函数的语法形式如下:code=bchenc(msg,n,k)code=bchenc(.,paritypos)这两个函数可以用于生成 BCH码,其中msg的数据结构必须为Galois array。与bchenc相对应的函数是bchdec,

10、函数的语法形式如下:decoded=bchdec(code,n,k)decoded,cnumerr,ccode=bchdec(.)cnumerr:表示与code相对应的纠正的错误个数;ccode:表示经过错误纠正后的码字;decoded:表示返回的译码结果。,2023/7/7,机械工业出版社,Page 23,2循环码,【例10-4】BCH码编译码仿真示例。clc;clear all;close all;m=4;n=2m-1;%码字长度k=5;%信息符号长度nwords=10;%编码个数msg=gf(randint(nwords,k);genpoly,t=bchgenpoly(n,k);%获得生

11、成多项式及相应的纠错能力tt2=t;code=bchenc(msg,n,k);%编码noisycode=code+randerr(nwords,n,1:t2);%对每个码字加t2比特错误,2023/7/7,机械工业出版社,Page 24,2循环码,newmsg,err,ccode=bchdec(noisycode,n,k);%译码if ccode=code disp(All errors were corrected.)endif newmsg=msg disp(The message was recovered perfectly.)end,2023/7/7,机械工业出版社,Page 25,

12、2循环码,【例10-5】RS码编译码仿真示例。m=3;%每符号比特数n=2m-1;k=3;%码字长度和信息长度t=(n-k)/2;%rs码的纠错能力nw=4;%码字个数msgw=gf(randint(nw,k,2m),m);%生成随机信息符号c=rsenc(msgw,n,k);%编码noise=(1+randint(nw,n,2m-1).*randerr(nw,n,t);cnoisy=c+noise;%加噪声dc,nerrs,corrcode=rsdec(cnoisy,n,k);%译码isequal(dc,msgw)&isequal(corrcode,c)%检测是否译码正确,2023/7/7,

13、机械工业出版社,Page 26,3卷积码,poly2trellis函数是将卷积码的多项式描述转换为网格描述。函数的语法形式如下:trellis=poly2trellis(ConstraintLength,CodeGenerator)trellis=poly2trellis(ConstraintLength,CodeGenerator,FeedbackConnection)具体参数的函数如下:ConstraintLength:表示k个输入比特的约束长度;CodeGenerator:表示卷积码的生成矩阵,使用八进制数表示,生成矩阵表示n个输出对应于k个输入的连接;FeedbackConnectio

14、n:表示反馈编码器的连接,使用八进制数表示;,2023/7/7,机械工业出版社,Page 27,3卷积码,trellis:函数的返回值是一个网格结构体,网格结构体包含的字段及含义如表所示,2023/7/7,机械工业出版社,Page 28,3卷积码,convenc函数的语法形式如下:code=convenc(msg,trellis)code=convenc(msg,trellis,puncpat)code=convenc(msg,trellis,.,init_state)code,final_state=convenc(.)其中各参数含义如下:msg:待编码的信息序列,为二进制向量。编码器的每个

15、输入符号包含log2(trellis.numInputSymbols)个比特;puncpat:表示打孔(puncture)图样,通过打孔可以构造删除卷积码,从而获得更高的码率;init_state:表示编码器的初始状态;final_state:表示编码结束后编码器的最终状态。,2023/7/7,机械工业出版社,Page 29,3卷积码,卷积码的译码采用维特比译码,vitdec函数的语法形式如下:decoded=vitdec(code,trellis,tblen,opmode,dectype)decoded=vitdec(code,trellis,tblen,opmode,soft,nsdec)

16、decoded=vitdec(code,trellis,tblen,opmode,dectype,puncpat)vitdec函数使用维特比算法进行译码,具体各参数含义如下:trellis:指定了该卷积码的网格图结构;tblen:表示回溯长度,对于 卷积码,tblen约为编码约束长度的5倍;opmode:表示译码器的操作模式。,2023/7/7,机械工业出版社,Page 30,3卷积码,卷积码的译码采用维特比译码,vitdec函数的语法形式如下:decoded=vitdec(code,trellis,tblen,opmode,dectype)decoded=vitdec(code,trelli

17、s,tblen,opmode,soft,nsdec)decoded=vitdec(code,trellis,tblen,opmode,dectype,puncpat)vitdec函数使用维特比算法进行译码,具体各参数含义如下:trellis:指定了该卷积码的网格图结构;tblen:表示回溯长度,对于 卷积码,tblen约为编码约束长度的5倍;opmode:表示译码器的操作模式。,2023/7/7,机械工业出版社,Page 31,3卷积码,vitdec函数有三种操作模式:cont:假定编码器开始于全0状态,译码器从最优路径回溯,延迟tblen个符号后得到译码输出;term:假定编码器开始和结束状

18、态都为全0状态,译码器从全0状态开始回溯译码,该模式没有延时;trunc:假定编码器开始于全0状态,译码器从最优路径回溯,该模式没有延时。dectype:表示维特比译码的判决模式:unquant:未量化输入,码字包含实值输入;hard:采用硬判决算法;soft:采用软判决算法;nsdec:软判决译码算法中的量化比特数。,2023/7/7,机械工业出版社,Page 32,3卷积码,【例10-7】卷积码的编译码仿真示例。clc;clear all;close all;%编码数据比特trel=poly2trellis(3,6 7);%定义网格msg=randi(0 1,1000,1);%随机数据co

19、de=convenc(msg,trel);%卷积编码tblen=5;%回溯长度%映射 0 比特为1.0,1 比特为-1.0,同时加高斯白噪声ucode=real(awgn(1-2*code,3,measured);hcode=ucode0;%硬判决译码,转换为二进制decoded1=vitdec(hcode,trel,tblen,cont,hard);,2023/7/7,机械工业出版社,Page 33,3卷积码,%软判决译码,使用量化输入,采用3比特量化 x,qcode=quantiz(ucode,-.75-.5-.25 0.25.5.75,7:-1:0);decoded2=vitdec(qc

20、ode,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(decoded2(tblen+1:end),msg(1:end-tblen);n3,r3=biterr(decoded3(tblen+1:end),msg(1:end-tblen);disp(The bit error rates

21、are:,num2str(r1 r2 r3),2023/7/7,机械工业出版社,Page 34,14.4典型数字通信仿真实例,14.4.1 2FSK信号在高斯白噪声信道的传输性能14.4.2 TDMA信号收发系统仿真,2023/7/7,机械工业出版社,Page 35,1 2FSK信号在高斯白噪声信道的传输性能,2023/7/7,机械工业出版社,Page 36,1 2FSK信号在高斯白噪声信道的传输性能,脚本程序如下:clc;clear all;close all;EsN0=0:20;%信噪比,单位为dBErr=zeros(1,length(EsN0);%输出的误比特率FrequencySep=

22、24000;%2FSK信号频率间隔BitRate=10000;%信号源比特率SimulationTime=10;%仿真时间SamplePerSym=2;%每符号抽样点数for i=1:length(EsN0)SNR=EsN0(i);sim(fskerr);%运行仿真程序,变量保存在BitErrorRate中 Err(i)=mean(BitErrorRate);%求出平均误比特率end,2023/7/7,机械工业出版社,Page 37,1 2FSK信号在高斯白噪声信道的传输性能,semilogy(EsN0,Err)grid onxlabel(SNR)ylabel(Bit Error Rate),2023/7/7,机械工业出版社,Page 38,2 TDMA信号收发系统仿真,2023/7/7,机械工业出版社,Page 39,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号