通信系统的设计与仿真.doc_第1页
通信系统的设计与仿真.doc_第2页
通信系统的设计与仿真.doc_第3页
通信系统的设计与仿真.doc_第4页
通信系统的设计与仿真.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学学科基础课群综合训练报告 目 录摘 要IABSTRACTII1 设计任务12实验原理及方案22.1增量调制22.2 miller码32.3循环码42.4 PSK92.5衰落信道103 实验结果及分析114 小结19参考文献20附录21 摘 要本次课程设计模拟了一个通信系统,包括了增量调制,基带码的编译码,信道码的编译码,及衰落信道的设计。其中基带码采用miller码,信道码采用(7,3)循环码,衰落信道采用了rayleigh信道。通过matlab仿真,完成整个系统各环节以及整个系统的仿真,最终在接收端近似地再现输入(信源),计算失真度,并且分析原因重点分析了增量调制的量化噪声的产生原因及处理办法。关键词:matlab,增量调制,miller,循环码,rayleigh ABSTRACTThe curriculum design a communication system simulation, including the delta modulation the baseband code encoding and decoding, the channel code encoding and decoding, and the fading channel design. Baseband codes miller code, channel code (7,3) cyclic code rayleigh fading channel with a channel.Matlab simulation, the completion of the entire system as well as the simulation of the entire system, and ultimately receiving end approximately reproduce the input (source), calculated distortion, and analyze the reasons for focusing on the causes and the approach of the analysis of the quantization noise delta modulation .Keywords: matlab, delta modulation, miller, cyclic codes, rayleigh1 设计任务利用仿真软件(如Matlab或SystemView),或硬件实验系统平台上设计完成一个典型的通信系统(如图1.1所示)。图1.1 典型的通信系统完成整个系统各环节以及整个系统的仿真,最终在接收端或者精确或者近似地再现输入(信源),计算失真度,并且分析原因。2实验原理及方案2.1增量调制 增量调制是由PCM发展而来的模拟信号数字化的一种编码方式,它是PCM的一种特例。增量调制编码基本原理是指用一位编码,这一位码不是表示信号抽样值的大小,而是表示抽样幅度的增量特性,即采用一位二进制数码“1”或“0”来表示信号在抽样时刻的值相对于前一个抽样时刻的值是增大还是减小,增大则输出“1”码,减小则输出“0”码。输出的“1”,“0”只是表示信号相对于前一个时刻的增减,不表示信号的绝对值。 增量调制最主要的特点就是它所产生的二进制代码表示模拟信号前后两个抽样值的差别(增加、还是减少)而不是代表抽样值本身的大小,因此把它称为增量调制。在增量调制系统的发端调制后的二进制代码1和0只表示信号这一个抽样时刻相对于前一个抽样时刻是增加(用1码)还是减少(用0码)。收端译码器每收到一个1码,译码器的输出相对于前一个时刻的值上升一个量化阶,而收到一个0码,译码器的输出相对于前一个时刻的值下降一个量化阶。增量调制(DM)是DPCM的一种简化形式。在增量调制方式下,采用1比特量化器,即用1位二进制码传输样值的增量信息,预测器是一个单位延迟器,延迟一个采样时间间隔。预测滤波器的分子系数向量是0,1,分母系数为1。当前样值与预测器输出的前一样值相比较,如果其差值大于零,则发1码,如果小于零则发0码。其编码原理图2.1编码部分 图2.2解码部分 增量调制系统框图如图2.1所示,其中量化器是一个零值比较器,根据输入的电平极性,输出为 ,预测器是一个单位延迟器,其输出为前一个采样时刻的解码样值,编码器也是一个零值比较器,若其输入为负值,则编码输出为0,否则输出为1。解码器将输入1,0符号转换为 ,然后与预测值相加后得出解码样值输出,同时也作为预测器的输入。2.2 miller码Miller码也称延迟调制码,是一种变形双向码。其编码规则:对原始符号“1”码元起始不跃变,中心点出现跃变来表示,即用10或01表示。对原始符号“0”则分成单个“0”还是连续“0”予以不同处理;单个“0”时,保持0前的电平不变,即在码元边界处电平不跃变,在码元中间点电平也不跃变;对于连续“0”,则使连续两个“0”的边界处发生电平跃变。用matlab设计程序时,用f记录1的出现,d来记录上个码元。进入循环时,先判断码元是否为“1”,若是,根据f来相应的译成“01”或“10”,若不是,则由f和d共同决定“00”和“11”。解调时,将码元两两分组,两码元相异的一组译成“1”码元,相同的则译成“0”码元。2.3循环码1、循环码编译码原理与特点设C使某线性分组码的码字集合,如果对任,它的循环移位也属于C,则称该码为循环码。该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找到各种简单使用的译码办法。如果一个线性码具有以下的属性,则称为循环码:如果n元组是子空间S的一个码字,则经过循环移位得到的也同样是S中的一个码字;或者,一般来说,经过j次循环移位后得到的也是S中的一个码字。循环码的编码系统是建立在比特组基础上的,即字节,而不是单个的0和1,因此它是非二进制BCH码,这使得它处理突发错误的能力特别强。码长: 信息段: (t为纠错符号数)监督段: 最小码段: 最小距离为d的本原RS码的生成多项式为:g(x)=(x-)(x-2)(x-3)(x-d-2)信息元多项式为:m(x)=m0+m1x+m2x2+mk-1xk-1 循环码特点有:1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。2)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。3)码字的循环特性,循环码中任一许用码经过牡环移位后,所得到的码组仍然是许用码组。对所有的i=0,1,2,k-1,用生成多项式g(x)除,有: 式中是余式,表示为: 因此,是g(x)的倍式,即是码多项式,由此得到系统形式的生成矩阵为: 它是一个kn阶的矩阵。同样,由G=0可以得到系统形式的一致校验矩阵为: 已知(7,4)循环码的生成多项式和校验多项式分别为:,。写得其生成矩阵和校验矩阵分别为: 2、编码原理:有信息码构成信息多项式,其中最高幂次为k-1;用乘以信息多项式m(x),得到的,最高幂次为n-1,该过程相当于把信息码(,)移位到了码字德前k个信息位,其后是r个全为零的监督位;用g(x)除得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于相加,得到的多项式必为一码多项式。 1)有信息码构成信息多项式m(x)=mk-1xk-1+m0,其中高幂次为k-1。2)用xn-k乘上信息多项式m(x),得最高幂次为n-1,做移位。3)用g(x)除xn-km(x)和到余式r(x)。编码过程流程图: 图2.3 循环码编码流程图3、译码原理:1) 有接收到的y(x)计算伴了随式s(x)。2) 根据伴随式s(x)找出对应的估值错误图样。3) 计算c(x)=y(x)+e(x),得估计码字。若c(x)= c(x),则译码正确,否则错误。由于g(x) 的次数为n - k 次,g(x) 除E(x) 后得余式(即伴随式)的最高次数为n-k-1次,故S(x) 共有2n-k 个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,4)循环码的S(x) 共有2(7-4) = 8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误。解码过程流程图:初始化否由R(x)确定S(x):S(x)=0,无误码误码由S(x)确定错误图样E(x)纠错存储c(x) 图2.4 循环码解码流程图4、纠错能力:由于循环码是一种线性分组码,所以其纠检错能力与线性分组码相当。而线性分组码的最小距离可用来衡量码的抗干扰能力,那么一个码的最小距离就与它的纠检错能力有关。定理: 对于任一个线性分组码,若要在码字内(1) 检测个错误,要求码的最小距离;(2) 纠正个错误,要求码的最小距离;(3) 纠正个错误同时检测个错误,则要求;循环码的译码分检错译码与纠错译码两类。在无记忆信道上,对码字c,差错图案和接收向量的多项式描述为 定义的伴随多项式为 由于所以 由此可见,则一定有差错产生,或说满足的差错图样产生,它满足。循环码的检错译码即是计算并判断是否为 encode函数 功能:编码函数 语法:code=encode(msg,N,K,method,opt)说明:用method指定的方法完成纠错编码。其中msg代表信息码元,是一个K列矩阵,N是编码后的码字长度;K是信息位的长度;opt是有些编码方式需要的参数。 decode函数 功能:译码函数 语法:msg=decode(code,N,K,method,opt1,opt2,opt3,opt4); 说明:这个函数对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同。它对接收到的码字,按method指定的方式进行译码;opt1,opt4是可选项的参数。 cyclpoly函数 功能:生成循环码的生成多项式 语法:p=cyclpoly(N,K) p=cyclpoly(N,K,fd_flag)说明:从p=cyclpoly(N,K)中可找到一个给定码长N和信息位长度K生成多项式p,注意不是任意给定一个多项式都可以作为生成多项式。 2.4 PSK二进制相移键控信号(2PSK)是载波相位随调制信号“1”或“0”改变的一种数字调制方式,通常用相位0或来分别表示“1”或“0”。若是持续时间为的基带脉冲,载波信号为,为二进制数字序列,则2PSK信号的时域表达式为12: 其中的统计特性为: 2PSK信号的调制一般有两种方法,一种是模拟调制法,另一种是键控法。图2-2和图2-3分别给出了2PSK信号的模拟调制原理框图和键控法产生2PSK信号的原理图17。图2-4则给出了模拟调制法产生的2PSK信号的时域波形图。 图2.5 2PSK信号的模拟调制原理框图 图2.6 2PSK信号的键控法调制原理框图 2.5衰落信道瑞利分布是一个均值为0,方差为2的平稳窄带高斯过程,其包络的一维分布瑞利衰落是瑞利分布。 瑞利分布是最常见的用于描述平坦衰落信号接收包络或独立多径分量接受包络统计时变特性的一种分布类型。两个正交高斯噪声信号之和的包络服从瑞利分布。瑞利衰落能有效描述存在能够大量散射无线电信号的障碍物的无线传播环境。若传播环境中存在足够多的散射,则冲激信号到达接收机后表现为大量统计独立的随机变量的叠加,根据中心极限定理,则这一无线信道的冲激响应将是一个高斯过程。如果这一散射信道中不存在主要的信号分量,通常这一条件是指不存在直射信号(LOS),则这一过程的均值为0,且相位服从0 到2 的均匀分布。即,信道响应的能量或包络服从瑞利衰落利分布。设随机变量R,其中22 = E(R2)。若信道中存在一主要分量,例如直射信号(LOS),则信道响应的包络服从莱斯分布,对应的信道模型为莱斯衰落信道。 通常将信道增益以等效基带信号表示,即用一复数表示信道的幅度和相位特性由此瑞利衰落即可由这一复数表示,它的实部和虚部服从于零均值的独立同分布高斯过程。用matlab自带函数rayleighchan来实现衰落信道的模拟。 CHAN = RAYLEIGHCHAN(TS, FD)来创建一个平坦频率的瑞利衰落信道。Ts是输入信号的采样时间,单位为秒。Fd是最大的多普勒频移,单位为hz。通过Y = FILTER(CHAN, X)使信号X通过衰落信道chan。3 实验结果及分析图3.1 原信号 图3.2 增量调制信号 图3.3 miller编码 图3.4 循环码编码 图3.5 psk调制信号 图3.6 psk解调信号图3.7 循环码解码信号图3.8 miller码解码信号图3.9 输出信号与原信号 图3.10 改变参数后的输出信号由图3.9和3.10的对比可发现,后者还原的更理想,其中3.9的参数设置为采样间隔Ts=10-3,量化阶距=0.4,而3.10的参数设置为采样间隔Ts=10-4,量化阶距=0.06 。结果失真度分别为0.0508和0.0024(采用均方误差表示失真度),这也验证了直观上的感觉。由参数可知采样间隔越小,失真度越小,可是量化阶距并非越小越好。由增量调制原理可知,译码器恢复的信号与编码器输入模拟信号的波形近似,但是存在失真。这种失真可称为量化噪声。由于编码、译码时用阶梯波形去近似表示模拟信号波形,阶梯本身的电压突跳会产生失真,这是增量调制的一般量化噪声,不可避免的;若信号上升的斜率超过阶梯波的最大可能斜率,则阶梯波的上升速度赶不上信号的上升速度,就发生了过载量化噪声。图3.11 出现过载量化噪声如图所示,模拟波形的上升速度明显高于阶梯波的上升,产生过载量化噪声,此时参数仅将图3.10的改为0,04,失真度就增至为0.0246,这也验证了量化阶距并非越小越好,一个阶梯台阶的斜率k=/Ts ,它也就是阶梯波的最大可能斜率,或称为译码器的最大跟踪斜率。所以,为了避免发生过载量化噪声,必须使/Ts够大,满足信号的斜率不会超过这个值。另一方面,值直接和基本量化噪声的大小有关,若取值太大,势必增大基本量化噪声。所以,用增大fs,即减小Ts的办法,才能保证基本量化噪声和过载量化噪声两者都不超过要求。 对于衰落信道而言,多普勒频移为0.09时,传输的数字信号第17位出错。多普勒效应就是当发射源与接收体之间存在相对运动时,接收体接收的发射源发射信息的频率与发射源发射信息频率不相同,这种现象称为多普勒效应,接收频率与发射频率之差称为多普勒频移。因而每次出错的地方不固定,符合实际情况。codeout = Columns 1 through 13 1 1 1 1 0 0 0 1 0 0 0 1 0 Columns 14 through 21 0 1 0 0 0 1 1 1xm = Columns 1 through 13 1 1 1 1 0 0 0 1 0 0 0 1 0 Columns 14 through 21 0 1 0 1 0 1 1 1 将多普勒频移fp调至小于0.05后,译码就基本上不出现错误的情况。codeout = Columns 1 through 13 1 1 1 1 0 0 0 1 0 0 0 1 0 Columns 14 through 21 0 1 0 0 0 1 1 1xm = Columns 1 through 13 1 1 1 1 0 0 0 1 0 0 0 1 0 Columns 14 through 21 0 1 0 0 0 1 1 1 在上述无误差结果的参数都未变化时,去掉循环码的编译码部分,出现如下所示的结果,最后一位出错。codeout = Columns 1 through 13 1 1 1 1 0 0 0 1 0 0 0 1 0 Columns 14 through 21 0 1 0 0 0 1 1 1xm = Columns 1 through 13 1 1 1 1 0 0 0 1 0 0 0 1 0 Columns 14 through 21 0 1 0 0 0 1 1 0 这个结果也验证的循环码的纠错功能,由于采用(7,3)码,监督码元数目为4个,故能纠正一位错码。4 小结 在此次课程设计中,我充分体会到了熟练运用相关软件的重要性,同时学到了许多东西,也认识到了许多道理以及和同组同学的沟通配合能力,做实验的时候自己把书看了好几遍,收集了很多资料,增强了自己对知识的理解。通过课程设计,我得到了很大的收获。再次把很多知识温习了一遍,可谓“温故而知新”,将这些知识串联起来时,更是需要注重细节。通过对程序的设计,我进一步熟悉了MATLAB开发环境,对MATLAB的一些具体操作和应用有了更深入的了解。如:有要求的正弦信号的产生,基本图形的绘制和各种的函数的使用等。同时,这次设计我对数字信号处理和通信原理课本上学到的知识点有了更深入的理解和掌握。比如对信号的调制和解调过程有了更深层的理解,学会了如何使用MATLAB对信号进行psk调制和解调。通过这个过程更是锻炼了我冷静分析问题解决问题的能力。 这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于迎刃而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!参考文献1 刘泉 通信电子线路 武汉理工大学出版社 2004年9月2 樊昌信 曹丽娜,通信原理第六版,国防工业出版社,20073 董振海,精通MATLAB 7 编程与数据库应用,电子工业出版社,20074 陈怀琛,MATLAB在电子信息课程中的应用(第二版),电子工业出版社,2006附录主程序 %Main.mclc;clear all;close all;%增量调制Ts=1e-4; %采样间隔t=0:Ts:200*Ts; %仿真时间序列t1=0:401;ta=201*Ts;tm=1:202;x=sin(2*pi*50*t)+0.5*sin(2*pi*100*t)+0.25*sin(2*pi*150*t); %信号delta=0.04; %量化阶距D(1+length(t)=0; %预测器初始状态for k=1:length(t) e(k)=x(k)-D(k); %误差信号 e_q(k)=delta*(2*(e(k)=0)-1); %量化器输出 D(k+1)=e_q(k)+D(k); %延迟器状态更新 codeout(k)=(e_q(k)0); %编码输出endfigure(1);plot(t,x);axis(0 200*Ts,-2 2);title(输入信号)figure(2);stairs(t,codeout);axis(0 200*Ts,-2 2);title(增量调制信号) %解码端 mil=Miller_code(codeout);figure(3);stairs(t1,mil);axis(0 41 ,-1 2);title(miller码编码) %循环码m = 4; n = 7; %定义码长k = 3; %信息位长%msg = randint(k*4,1,2); %随机提取信号,引起一致地分布的任意整数矩阵 p=cyclpoly(n,k); %循环码生成多项式,n=7,k=3code = encode(mil,n,k,cyclic,p); %编码函数,对信号进行差错编码figure(4)stairs(code);axis(0 97,-0.5 1.5);title(循环码编码)%recode=decode(code,n,k,cyclic,p); %对信号进行译码,对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同subplot(2,2,3)stem(recode)title(译码器输出信号)% %psk调制 fc=5120;fd=1024;fs=10240;psk1=dmod(code,fc,fd,fs,psk,2); %PSK调制 figure(5)subplot(2,1,1)plot(psk1); axis(0 200,-2 2); title(psk调制信号) %绘制调制后的波形图 %信道%z1=randn(1,length(psk1);z2=randn(1,length(psk1);for i=1:length(psk1)n1(i)=sqrt(abs(z1(i).2+abs(z2(i).2);endn1=0.1*n1;yout=psk1+n1;%fp=0;%假设无多普勒频移chan=rayleighchan(ta,fp);%瑞利衰落信道yout=filter(chan,psk1);%信号通过瑞利衰落信道for i=1:length(yout) if real(yout(i)=0 yout(i)=abs(yout(i); else yout(i)=-abs(yout(i); endendsubplot(2,1,2)plot(yout);% axis(0 200,-2 2); title(经过衰落信道的psk信号) %psk解码psk2=ddemod(yout,fc,fd,fs,psk,2);figure(7);stairs(psk2);axis(0 97,-0.5 1.5);title(psk解调信号) %循环码解码recode=d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论