matlab bchenc,MATLAB基础与实例进阶幻灯片

《MATLAB基础与实例进阶幻灯片》由会员分享,可在线阅读,更多相关《MATLAB基础与实例进阶幻灯片(39页珍藏版)》请在人人文库网上搜索。

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

2、nerator(随机整数发生器)的主要参数,M-PAM调制和解调器的主要参数,2,机,Page 7,1.脉冲幅度调制(PAM)信号,AWGN Channel(高斯白噪声信道)的主要参数,Discrete-Time Scatter Plot Scope(离散时间星座仪)的主要参数,2,机,Page 8,1.脉冲幅度调制(PAM)信号,Error Rate Calculation(误码率计算)的主要参数,2,机,Page 9,2.相位调制(PSK)信号,2,机,Page 10,2.相位调制(PSK)信号,M-PSK Modulator Baseband(M-PSK基带调制器)的主要参数,2,机,P。

3、age 11,3.频率调制信号,2,机,Page 12,3.频率调制信号,Bernoulli Binary Generator(伯努利二进制随机数产生器)的主要参数,M-FSK Modulator Baseband(MFSK基带调制器)的主要参数,2,机,Page 13,4.连续相位调制信号,2,机,Page 14,4.连续相位调制信号,GMSK Modulator Baseband(GMSK基带调制器)的主要参数,2,机,Page 15,14.3信道编码/译码及其仿真,14.3.1 线性分组码 14.3.2 循环码 14.3.3 卷积码,2,机,Page 16,1线性分组码,MATLAB中使。

4、用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可以实现线性分组码、循环码、汉明码的编码。,2,机,Page 17,1线性分组码,函数参数的含义如下: msg:信息序列,可以是二进制行或列向量,。

5、也可以是二进制矩阵,也可以是十进制行或列向量; n,k:分别为码长和信息分组长度; fmt:表示编码进制数,默认为二进制(binary); genmat:表示线性分组码的生成矩阵; genpoly:表示循环码的生成多项式,可以由函数cyclpoly(n,k)实现; prim_poly:表示采用汉明编码时的本原多项式,可以由函数gfprimdf(n-k)实现。,2,机,Page 18,1线性分组码,【例10-1】encode函数使用示例:采用三种不同的格式(二进制向量、二进制矩阵以及十进制向量)生成(7,4)汉明码。 clc;clear all;close all; m = 3; n = 2m-。

6、1; %码长 = 7 k = 2m-1-m; %信息分组长 =4 % 生成50个信息分组,每个分组k比特 msg1 = randint(50*k,1,0,1); % 列向量 msg2 = vec2mat(msg1,k); % 转换为k维列向量的矩阵 msg3 = bi2de(msg2); % 转换为十进制整数的行向量,2,机,Page 19,1线性分组码,% 生成50个码字,每个码字n比特 code1 = encode(msg1,n,k,hamming/binary); code2 = encode(msg2,n,k,hamming/binary); code3 = encode(msg3,n。

7、,k,hamming/decimal); % 判断三种方法生成的码字是否相同 if ( vec2mat(code1,n)=code2 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(100,n,0 1;.7 .3), 2); % 加噪声 newmsg = decode(n。

8、oisycode,n,k,cyclic); %译码 number,ratio = biterr(newmsg,msg); % 计算误码率 disp(The bit error rate is ,num2str(ratio),2,机,Page 22,2循环码,BCH码 bchenc函数的语法形式如下: code = bchenc(msg,n,k) code = bchenc(.,paritypos) 这两个函数可以用于生成 BCH码,其中msg的数据结构必须为Galois array。 与bchenc相对应的函数是bchdec,函数的语法形式如下: decoded = bchdec(code,n。

9、,k) decoded,cnumerr,ccode = bchdec(.) cnumerr:表示与code相对应的纠正的错误个数; ccode:表示经过错误纠正后的码字; decoded:表示返回的译码结果。,2,机,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); % 获得生成多项式及相应的纠错能。

10、力t t2 = t; code = bchenc(msg,n,k); % 编码 noisycode = code + randerr(nwords,n,1:t2); % 对每个码字加t2比特错误,2,机,Page 24,2循环码,newmsg,err,ccode = bchdec(noisycode,n,k); % 译码 if ccode=code disp(All errors were corrected.) end if newmsg=msg disp(The message was recovered perfectly.) end,2,机,Page 25,2循环码,【例10-5】RS。

11、码编译码仿真示例。 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) cle。

12、ar all;close all; % 编码数据比特 trel = poly2trellis(3,6 7); % 定义网格 msg = randi(0 1,1000,1); % 随机数据 code = 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);。

13、,2,机,Page 33,3卷积码,% 软判决译码,使用量化输入,采用3比特量化 x,qcode = quantiz(ucode,-.75 -.5 -.25 0 .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。

14、); 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 are: ,num2str(r1 r2 r3),2,机,Page 34,14.4典型数字通信仿真实例,14.4.1 2FSK信号在高斯白噪声信道的传输性能 14.4.2 TDMA信号收发系统仿真,2,机,Page 35,1 2FSK信号在高斯白噪声信道的传输性能,2,机,Page 36,1 2FSK信号在高斯白噪声信道的传。

15、输性能,脚本程序如下: clc;clear all;close all; EsN0=0:20; % 信噪比,单位为dB Err=zeros(1,length(EsN0); %输出的误比特率 FrequencySep = 24000; % 2FSK信号频率间隔 BitRate = 10000; % 信号源比特率 SimulationTime = 10; % 仿真时间 SamplePerSym = 2; % 每符号抽样点数 for i=1:length(EsN0) SNR = EsN0(i); sim(fskerr); % 运行仿真程序,变量保存在BitErrorRate中 Err(i)=mean(BitErrorRate); % 求出平均误比特率 end,2,机,Page 37,1 2FSK信号在高斯白噪声信道的传输性能,semilogy(EsN0,Err) grid on xlabel(SNR) ylabel(Bit Error Rate),2,机,Page 38,2 TDMA信号收发系统仿真,2,机,Page 39。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值