您好,欢迎访问三七文档
(设计报告自己独立完成,如有雷同,双方均为0分,请同学们自己保护好自己的设计报告,特此申明)。通信原理课程设计设计报告课题名称:专业班级:姓名:学号:起止时间:重庆交通大学信息科学与工程学院1目录一、课题内容二、设计目的三、设计要求四、实验条件五、系统设计1、通信系统的原理2.所设计子系统的原理六、详细设计与编码1.设计方案2.编程工具的选择3.编码与测试4.运行结果及分析七、设计心得八、参考文献……………………………….……………….222一、课题内容本课题是基于MATLAB的通信系统仿真—PCM系统仿真二、设计目的1、培养我综合得用多门课程知识的能力。2、培养我熟练掌握MATLAB,运用此工具进行通信系统仿真的能力。3、培养我查阅资料,解决问题的能力。4、加深我对通信系统各部分的理解。5、培养学生系统设计与系统开发的思想;三、设计要求1.独立完成自己的题目内容;2.对通信系统有整体的较深入的理解,深入理解自己仿真部分的原理的基础,画出对应的通信子系统的原理框图;3.提出仿真方案;4.完成仿真软件的编制;5.仿真软件的演示;6.提交详细的设计报告。四、实验条件计算机、Matlab软件3五、系统设计1、通信系统的原理(阐述整个通信系统原理,最后之处你主要负责哪一部分)通信的目的是传递消息,通信系统是一个以传递消息为目地的系统,通信系统的一般模型如下:图中,信源的作用是把待传输的消息转换成原始电信号,如电话系统中电话机可看成是信源。信源输出的信号称为基带信号。所谓基带信号是指没有经过调制(进行频谱搬移和变换)的原始电信号,其特点是信号频谱从零频附近开始,具有低通形式,。根据原始电信号的特征,基带信号可分为数字基带信号和模拟基带信号,相应地,信源也分为数字信源和模拟信源。发送设备的基本功能是将信源和信道匹配起来,即将信源产生的原始电信号(基带信号)变换成适合在信道中传输的信号。变换方式是多种多样的,在需要频谱搬移的场合,调制是最常见的变换方式;对传输数字信号来说,发送设备又常常包含信源编码和信道编码等。信道是指信号传输的通道,可以是有线的,也可以是无线的,甚至还可以包含某些设备。图中的噪声源,是信道中的所有噪声以及分散在通信系统中其它各处噪声的集合。在接收端,接收设备的功能与发送设备相反,即进行解调、译码、解码等。它的任务是从带有干扰的接收信号中恢复出相应的原始电信号来。信宿是将复原的原始电信号转换成相应的消息。我做的是通信系统中的一种系统:数字通信系统的仿真。其基本框图如下:抽我负责独立完成以上各部分。模拟信号抽样量化信源编码信道编码数字调制噪声信道模拟信号数字滤波器信道译码信源译码抽样判决42.所设计子系统的原理现在更详细说明以上数字通信系统的原理。(1)、模拟信号为原始的信原信号。(2)、抽样是将上述的时间和幅值都连续的模拟信号转换成时间离散幅值连续的信号。(3)、量化是将上述的时间离散幅值连续的抽样信号转换成时间离散幅值离散的信号。(4)、信源编码是将上述量化后的值编码成0、1比特流的形式,并且可以减少冗余,提高效率。(5)、信道纺码是为了提高传输可靠性。(6)、数字调制是将上述0、1比特流转换成适合在通信信道中传输的波形。(7)、信道是信号传输的通道,信号在信道中传输时经常会有噪声的干扰。(8)、数字滤波器是将调制并加有噪声的信号,去除噪声,并且解调后形成方波形式的信号。(9)、抽样判决是将方波形号转换成0、1比特流。(10)、信道译码是信道编码的反过程。(11)、信源译码是信道编曲码的反过程。(12)、最后还原成模拟信号。5六、详细设计与编码1.设计方案(可以画出编程的流程图,阐述设计思路等)经过我的思考,再加上查阅了大量资料后,有了以下编程设计思路。在主函数中,先产生一个模拟信号,再经过抽样后得到抽样值,将抽样值通过13拆线法转换成对应值,将转换后的值经过量化和编码后得到0、1比特流,再经过信道译码,再经过BPSK调制,再人为加入一些噪声,再通过数字滤波器将噪声和载波滤掉,取出直流分量,得到方波波形。再经过抽样判决后得到0、1比特流,再经过线性分组码译码,最后经过信源译码,再经过A侓公式反转成原始模拟信号,画出各阶段的波形。2.编程工具的选择(本次仿真使用的工具软件,阐述为什么使用该软件,该软件的特点)我这次选用的软件是MATLAB,因为这款软件的功能特很强大,学习方便,仿真容易实现。主函数通过编码子函数进行量化和编码BPSK子函数产生模拟信源并得到抽样信号通过A侓公式反转成原始模拟信号通过13拆线得到转换后的值线性分组码编码数字调制数字滤波器抽样判决信道译码6MATLAB具有以下几个特点:功能强大的数值运算功能强大的图形处理能力高级但简单的程序环境丰富的工具箱最重要的是MATLAB学习起来方便容易,以前有学C语言的基础,MATLAB与C语言有类似之处,编程流程大概差不多,但要注意的是MATLAB与C语言在程序代码上也有细微的差别,MATLAB是一种解释性语言,在写程序代码时容易方便,但是与C语言相比它的运算速度较慢,但功能强大。3.编码与测试(写出源代码,分析核心代码完成的功能)编程序代码过程:子函数1:functiony1=zhexian(x)x=x/max(x);z=sign(x);x=abs(x);fori=1:length(x)if((x(i)0)&(x(i)1/64))y(i)=16*x(i);elseif((x(i)=1/64)&(x(i)1/32))y(i)=x(i)*8+1/8;elseif((x(i)=1/32)&(x(i)1/16))y(i)=4*x(i)+2/8;elseif((x(i)=1/16)&(x(i)1/8))y(i)=2*x(i)+3/8;elseif((x(i)=1/8)&(x(i)1/4))y(i)=x(i)+1/2;elseif((x(i)=1/4)&(x(i)1/2))y(i)=1/2*x(i)+5/8;elseif((x(i)=1/2)&(x(i)=1))7y(i)=1/4*x(i)+3/4;end;end;end;end;end;end;end;end;y1=z.*y;end此子函数的功能是将抽样后得到的值用13拆线转换成对应的值。子函数2:functionbit=bianma(y4,n)m=2/n;fori=1:n+1q(i)=min(y4)+(i-1)*m;end%量化过程t=length(q);ttt=[];%存放将抽样信号量化后的值tt=[];e=1;tt(1)=-1;forx=2:length(q)tt(x)=(q(x-1)+q(x))/2;%存放第几个电平段的电平值endtt=[tt,max(y4)];b_duan=[];%存放电平段forx=1:length(y4)ify4(x)==q(t)b_duan(x)=length(tt);elseify4(x)==min(q)b_duan(x)=1;elsefory=1:t-1if(q(y)=y4(x))&&(y4(x)q(y+1))b_duan(x)=y+1;endendend8endendnu=ceil(log2(n));%编码code=zeros(length(y4),nu);fori=1:length(y4)forj=nu:-1:0if(fix(b_duan(i)/(2^j))==1)code(i,(nu-j+1))=1;b_duan(i)=b_duan(i)-2^j;elsecode(i,(nu-j+1))=0;endendendbit=[];fori=1:length(y4)bit=[bit,code(i,:)];end此函数的功能是将抽样后的值量化后进行自然二进制编码。第个值采用8位二进制编码。子函数3:functionbit2=xianxi(m)H=[0111100;1011010;1101001];G=[1000011;0100101;0010110;0001111];%生成矩阵C=rem(m*G,2);[c,z]=size(C);bit2=[];fori=1:cbit2=[bit2,C(i,[1:7])];9end此函数的功能是进行信道编码即:将每四位二进制后加三位监督位,比特流的总长度除以四余下的则不进行加监督位。子函数4:functionbit3=xianxiyima(gg)p=gg;R=[];S=[];fori=1:length(p)/7R(i,[1:7])=p((i-1)*7+1:i*7);endH=[0111100;1011010;1101001];[c,z]=size(R);S=rem(R*H',2);fori=1:c%伴随式的行次forj=1:7b=all(S(i,:)==H(:,j)');ifb==1R(i,j)=~R(i,j);break;endendendR(:,[5:7])=[];[c,z]=size(R);bit3=[];fori=1:cbit3=[bit3,R(i,[1:4])];end子函数5:functionbb=BPSK(bit)fs=30000;Ts=0.1;m=fs*Ts;%一个码无所占宽度High=ones(1,m);Low=zeros(1,m);10U=rem(length(bit),4);sheng=[bit(length(bit))-U+1:bit(length(bit))];w=300;%角频率fori=1:length(bit)/4decode(i,[1:4])=bit((i-1)*4+1:i*4);endbit2=xianxi(decode);%线性分组码编码Sign=[bit2,sheng];L=length(Sign);%信号长度st=zeros(1,m*L);sign1=zeros(1,m*L);t=0:1/fs:Ts*L-1/fs;fori=1:LifSign(i)==1sign1((i-1)*m+1:i*m)=High;elsesign1((i-1)*m+1:i*m)=Low;endendfori=1:LifSign(i)==1st((i-1)*m+1:i*m)=cos(2*pi*w*t((i-1)*m+1:i*m)+(pi/2));elsest((i-1)*m+1:i*m)=cos(2*pi*w*t((i-1)*m+1:i*m));endendst1=st;st1=st1+cos(3000*t);figureplot(t,sign1);axis([0,Ts*(L+1),-(1/2),3/2]);title('编码后的信号');gridfiguresubplot(2,1,1);plot(t,st);axis([0,Ts*(L+1),-3/2,3/2]);title('数字调制后的信号');gridsubplot(2,1,2);plot(t,st1);axis([0,Ts*(L+1)+1,-5/2,5/2]);title('加噪后的信号');grid11dt=st1.*cos(2*pi*w*t);figureplot(t,dt);axis([0,Ts*(L+1),-2,5/2]);title('与相干波相乘后的波形');grid[N,Wn]=buttord(2*pi*50,2*pi*100,3,25,'s');%临界频率采用角频率表示[b,a]=butter(N,Wn,'s');[bz,az]=impinvar(b,a,fs);%映射为数字的dt=filter(bz,az,dt);figureplot(t,dt);axis([0,Ts*(L+1),-3/2,3/2]);title('低通滤波后的波形');ss=dt;%存放抽样判决后的值bit1=[];tt=length(ss)/L;fori=tt/2:tt:length(ss)ifss(i)(1/4)ss((i-tt/2+1):(i+tt/2))=zeros(1,3000);bit1=[bit1,0];elsess((i-tt/2+1
本文标题:设计报告完成
链接地址:https://www.777doc.com/doc-2066263 .html