数字通信系统matlab仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
题目:基于MATLAB的通信系统仿真
———信道编码对通信系统性能的影响
专业:通信工程
姓名:XXX
学号:0730xxxx
基于MATLAB 的通信系统仿真
———信道编码对通信系统性能的影响 摘要:简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB 仿真有无信道编码条件下对通信系统性能的影响及信道编码在不同信道下对通信系统性能的影响,如AWGN 信道和深衰落信道。
关键词:信道编码、分组码、MATLAB 仿真、性能
一、引言
提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。1948年,信息论的奠基人C.E.Shannon 在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理.他指出:对任何信道,只要信息传输速率R 不大于信道容量C, 就一定存在这样的编码方法:在采用最大似然译码时,其误码率可以任意小.该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法.在信道编码定理中,香农提出了实现最佳编码的三个基本条件 :(1 )采用随机编译码方式 ; (2 )编码长度L→∞ , 即分组的码组长度无限 ; (3)译码采用最佳的最大似然译码算法。【1】
二、信道编码理论
1、信道编码的目的
在数字通信系统中由于信道内存在加性噪声及信道传输特性不理想等容易造成码间串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。为了确保系统的误比特率指标通常采用信道编码。信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。
2、信道编码的实质
信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。举例而言,欲传输k 位信息,经过编码得到长为n(n>k)的码字,则增加了 n - k = r 位多余码元,我们定义 R = k / n 为编码效率。【2】
3、 信道编码公式
令信息速率为f b ,经过编码以后的速率为f t ,定义:R =f b /f t 为编码率。则对于任何一个信道,总存在一个截止速率R 0,只要R -nR0,其中C R 为某个常数, n 为编码的约束长度。 对于等概二进码、AWGN 信道,有: )1(log 100/20N E R b e R -+-=121ln 1)1(00 0-=-R b R N E 三、线性分组码的编译码原理 1、 线性分组码的基本概念 一个[n ,k ]线性分组码, 是把信息划成k 个码元为一段(称为信息组), 通过编码器变成长为n 个 码元的一组, 作为[n , k ]线性分组码的一个码字。 若每位码元的取值有q 种(q 为素数幂), 则共有q k 个码字。 n 长的数组共有q n 组, 在二进制情况下, 有2 n 个数组。 显然, q n 个n 维数组(n 重)组成一个GF(q )上的n 维线性空间。 如果q k (或2k ) 个码字集合构成了一个k 维线性子空间, 则称它是一个[n ,k ]线性分组码。即将k 维k 重信息空间的元素线性映射到n 维n 重矢量空间(接收矢量/收码) 的k 维n 重子空间(码空间)。如下图为[7,3]码 2、生成矩阵和校验矩阵 生成矩阵: []⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡==0110001101001011001001111000 Q G k I G 称为生成矩阵,因为可以用它产生整个码组A ,即有 [][]G 34560123456a a a a a a a a a a a A == 生成矩阵的性质:具有[I k Q ]形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A 中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。 矩阵G 的各行也必须是线性无关的。如果已有k 个线性无关的码组,则可以将其用来作为生成矩阵G ,并由它生成其余码组。【3】 监督矩阵: []r PI H =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=001101101011011001110 监督矩阵可用来校验和纠错。 四、MATLAB仿真源程序及说明 采用模块化编程,力求把每个功能独立成各个模块,让程序更清晰。首先介绍各个子程序及其实现的基本功能。 运行环境为Matlab7.0版本 通信过程的每个模块写成子程序函数: Channelcoding 为信道编码函数 Channeldecoding 为信道解码纠错子函数 Interwaving 为交积子函数 Deinterwaving 为解交积子函数 addfade为向信道加入衰落参数的子函数 awgn 为库函数,向信源加高斯白噪声 pskmod 为库函数,用于信号调制,输出为复数 pskdemod 为库函数,用于信号解调 脚本文件:file1:信道编码对通信系统性能的影响,有无信道编码的影响 file2:在周期性深衰落的信道条件下,交织对通信系统性能的影响 file3:在交织条件下,不同时长的周期性深衰落对系统性能影响的比较 信道编码子程序: %信道编码子函数,sym为编码码流,G为生成矩阵,k为编码方式的长度,如(7,4)码的4 function bitcoded=channelcoding(sym,G,k) A=vec2mat(sym,k); U=A*G; U=mod(U,2); bitcoded=reshape(U',1,[]); 信道解码子程序: function bitdecoded=channeldecoding(recode,Etab,Smatrix,H,n,k) % 前向纠错函数,实现纠错功能 % bidecoded为纠错后返回的比特流 % recode为输入的比特流 % E为错误图样表,S为对应的伴随式表 % H为监督矩阵,n,k为码的类型,如(7,4)码,n=7,k=4 row=length(recode)/n; %行数 E=zeros(row,n); %错误图样 RM=zeros(row,n); %纠错之后的矩阵