




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(设计报告自己独立完成,如有雷同,双方均为0分,请同学们自己保护好自己的设计报告,特此申明)。通信原理课程设计设计报告课题名称: 专业班级: 姓 名: 学 号: 起止时间: 信息科学与工程学院目 录一、课题内容二、设计目的三、设计要求四、实验条件五、系统设计1、通信系统的原理2. 所设计子系统的原理六、详细设计与编码1. 设计方案2. 编程工具的选择3. 编码与测试4. 运行结果及分析七、设计心得八、参考文献.22一、课题内容本课题是基于matlab的通信系统仿真 pcm系统仿真二、设计目的1、培养我综合得用多门课程知识的能力。2、培养我熟练掌握matlab,运用此工具进行通信系统仿真的能力。
2、3、培养我查阅资料,解决问题的能力。4、加深我对通信系统各部分的理解。5、培养学生系统设计与系统开发的思想;三、设计要求1.独立完成自己的题目内容;2. 对通信系统有整体的较深入的理解,深入理解自己仿真部分的原理的基础,画出对应的通信子系统的原理框图;3. 提出仿真方案;4. 完成仿真软件的编制;5. 仿真软件的演示;6. 提交详细的设计报告。四、实验条件 计算机、matlab软件五、系统设计1、通信系统的原理(阐述整个通信系统原理,最后之处你主要负责哪一部分)通信的目的是传递消息,通信系统是一个以传递消息为目地的系统,通信系统的一般模型如下: 图中,信源的作用是把待传输的消息转换成原始电信号
3、,如电话系统中电话机可看成是信源。信源输出的信号称为基带信号。所谓基带信号是指没有经过调制(进行频谱搬移和变换)的原始电信号,其特点是信号频谱从零频附近开始,具有低通形式,。根据原始电信号的特征,基带信号可分为数字基带信号和模拟基带信号,相应地,信源也分为数字信源和模拟信源。 发送设备的基本功能是将信源和信道匹配起来,即将信源产生的原始电信号(基带信号)变换成适合在信道中传输的信号。变换方式是多种多样的,在需要频谱搬移的场合,调制是最常见的变换方式;对传输数字信号来说,发送设备又常常包含信源编码和信道编码等。信道是指信号传输的通道,可以是有线的,也可以是无线的,甚至还可以包含某些设备。图中的噪
4、声源,是信道中的所有噪声以及分散在通信系统中其它各处噪声的集合。在接收端,接收设备的功能与发送设备相反,即进行解调、译码、解码等。它的任务是从带有干扰的接收信号中恢复出相应的原始电信号来。信宿是将复原的原始电信号转换成相应的消息。我做的是通信系统中的一种系统:数字通信系统的仿真。其基本框图如下:数字调制信源编码信道编码量化抽样模拟信号抽信道噪声数字滤波器模拟信号抽样判决信道译码信源译码 我负责独立完成以上各部分。2. 所设计子系统的原理现在更详细说明以上数字通信系统的原理。(1)、模拟信号为原始的信原信号。(2)、抽样是将上述的时间和幅值都连续的模拟信号转换成时间离散幅值连续的信号。(3)、量
5、化是将上述的时间离散幅值连续的抽样信号转换成时间离散幅值离散的信号。(4)、信源编码是将上述量化后的值编码成0、1比特流的形式,并且可以减少冗余,提高效率。(5)、信道纺码是为了提高传输可靠性。(6)、数字调制是将上述0、1比特流转换成适合在通信信道中传输的波形。(7)、信道是信号传输的通道,信号在信道中传输时经常会有噪声的干扰。(8)、数字滤波器是将调制并加有噪声的信号,去除噪声,并且解调后形成方波形式的信号。(9)、抽样判决是将方波形号转换成0、1比特流。(10)、信道译码是信道编码的反过程。(11)、信源译码是信道编曲码的反过程。(12)、最后还原成模拟信号。六、详细设计与编码1. 设计
6、方案(可以画出编程的流程图,阐述设计思路等) 经过我的思考,再加上查阅了大量资料后,有了以下编程设计思路。产生模拟信源并得到抽样信号线性分组码编码通过13拆线得到转换后的值 数字调制通过编码子函数进行量化和编码主函数数字滤波器bpsk子函数抽样判决通过a侓公式反转成原始模拟信号信道译码在主函数中,先产生一个模拟信号,再经过抽样后得到抽样值,将抽样值通过13拆线法转换成对应值,将转换后的值经过量化和编码后得到0、1比特流,再经过信道译码,再经过bpsk调制,再人为加入一些噪声,再通过数字滤波器将噪声和载波滤掉,取出直流分量,得到方波波形。再经过抽样判决后得到0、1比特流,再经过线性分组码译码,最
7、后经过信源译码,再经过a侓公式反转成原始模拟信号,画出各阶段的波形。2. 编程工具的选择(本次仿真使用的工具软件,阐述为什么使用该软件,该软件的特点)我这次选用的软件是matlab,因为这款软件的功能特很强大,学习方便,仿真容易实现。matlab具有以下几个特点: 功能强大的数值运算功能 强大的图形处理能力 高级但简单的程序环境 丰富的工具箱最重要的是matlab学习起来方便容易,以前有学c语言的基础,matlab与c语言有类似之处,编程流程大概差不多,但要注意的是matlab与c语言在程序代码上也有细微的差别,matlab是一种解释性语言,在写程序代码时容易方便,但是与c语言相比它的运算速度
8、较慢,但功能强大。3. 编码与测试(写出源代码,分析核心代码完成的功能)编程序代码过程:子函数1:function y1=zhexian(x)x=x/max(x);z=sign(x);x=abs(x);for i=1:length(x) if(x(i)0)&(x(i)=1/64)&(x(i)=1/32)&(x(i)=1/16)&(x(i)=1/8)&(x(i)=1/4)&(x(i)=1/2)&(x(i)=1) y(i)=1/4*x(i)+3/4; end; end; end; end; end; end; end;end;y1=z.*y;end此子函数的功能是将抽样后得到的值用13拆线转换成对
9、应的值。子函数2:function bit=bianma(y4,n)m=2/n;for i=1:n+1 q(i)=min(y4)+(i-1)*m;end%量化过程 t=length(q); ttt=; %存放将抽样信号量化后的值 tt=; e=1; tt(1)=-1; for x=2:length(q) tt(x)=(q(x-1)+q(x)/2; %存放第几个电平段的电平值 end tt=tt,max(y4); b_duan=; %存放电平段for x=1:length(y4) if y4(x)=q(t) b_duan(x)=length(tt); else if y4(x)=min(q) b
10、_duan(x)=1; else for y=1:t-1 if (q(y)=y4(x)& (y4(x)(1/4) ss(i-tt/2+1):(i+tt/2)=zeros ( 1,3000); bit1=bit1,0; else ss(i-tt/2+1):(i+tt/2)=ones ( 1,3000); bit1=bit1,1; endendfigureplot (t,ss,r-);axis( 0,ts*(l+1), -1/2,3/2 );title ( 信道译码信号 );gridbb=; u1=rem(length(bit1),7); l=length(bit1);sheng1=bit1(le
11、ngth(bit1)-u1+1:bit1(length(bit1);bit1(l-u1+1:bit1(l)=;bb=xianxiyima(bit1); %线性分组码译码;bb=bb,sheng1;此函数的功能是将信源编码后的0、1序列再经过信道编码(7,4)线性分组码编码,将信道编码后的信号进行bpsk调制,由于考虑到在信道中传输是会有噪声的影响,所以在仿真时我人为的加入一定的噪声。在接收端进行相干解调,用一个与调制信号同频的信号与接收到的信号(加入噪声后的已调信号)相乘,再用一个数字滤波器进行滤波,去掉了信号中的高频成份和噪声,取出直流分量,得到方波信号,对这个信号进行抽样判决将其转换成0、
12、1比特流后,再经过信道译码。子函数5:function a3=yima(y,n)m=2/n;for i=1:n+1 q(i)=(-1)+(i-1)*m;end tt=; tt(1)=-1; for x=2:length(q) tt(x)=(q(x-1)+q(x)/2; %存放第几个电平段的电平值 end tt=tt,1;nu=ceil(log2(n);decode=;for i=1:length(y)/(nu+1) decode(i,1:(nu+1)=y(i-1)*(nu+1) + 1 : i*(nu+1);endab= ; % 存放的十进制数,到tt中去找对应值 w,z=size(decod
13、e); for j=1:w l=nu; value=0; for i=0:l value=decode(j,i+1)*(2(l-i)+ value; end ab(j)=value; end decode; w; a3= ; % 存放信源译码值 for i=1:w a3(i)=tt(ab(i); end此函数的功能是将接收到的0、1比特流分为八位二进制一组一组的,再将每八位二进制转换为十进制数,再到每段中去寻到与发关端有相同约定段号值。即可恢复原信号的量化值。子函数6:function y5=ayi(y,a)for i=1:length(y)if(abs(y(i)=0)&(abs(y(i)=(
14、1/(1+log(a) y1(i)=y(i)*(1+log(a)/a;else if(abs(y(i)(1/(1+log(a) y1(i)=(1/a)*sign(y(i)*exp(abs(y(i)*(1+log(a)-1); endendendy5=y1;end此函数的功能是将恢复的量化值通过a律反转换公式得到对应的值,是用13拆线转换的反过程。因为在当a86.5时,可以用13折线用13条折线近似a律的平滑曲线,在实际工程中a律的平滑曲线不易实现,而用13折线法可以降低工程实现中的难度。主函数:clcclear allt=0:0.1:6*pi;a1=sin(t); %模拟信源figure(1)
15、plot(t,a1);title ( 原始模拟信号 );t1=0:2*pi/32:6*pi; %抽样a=sin(t1);figureplot(t1,a);stem(t1,a);title ( 抽样信号 );y4=zhexian(a) ; %13折线 n=256; %量化电平数;bitstream=bianma(y4,n);bit1=bpsk(bitstream);y2=yima(bit1,n);y5=ayi(y2,87.65);figureplot(y5);stem(y5,r)axis(0,100,-1,1.01)figureplot(y5,r);hold onplot(y5,.b);axis
16、(0,100,-1,1.01)主函数的功能是是产生模拟信号并且进行抽样得到抽样值,然后将各个子函数衔接到一块,形成一个比较完整的通信系统,进行仿真画出各个阶段重要的图形,以便观察和分析。调试过程: 将各个子程序和主程序都放入matlab的工作空间中,双击main.m文件后,点击debug run 运行程序。 在 这次通信系统仿真编程中,我遇到了很多问题,例如在利用13折线进行数值变转时,需要考虑归一化问题,并且考虑到在第一像限和第三像限的情况基本相同,只是符号相反,所以只需考虑一段,那么在进行运算是得先把原来的值的符号位保存,再在变换后的值上添加符号值。还有在对连续幅值进行量化时,我也犯了一些
17、思路上的混乱,导致我在调试的时候出现错误,但当我反复一遍遍检查,发现只是在取值端点上没有弄好,当我改后就好了。还有在编码时,一开始不知怎么的老是前几个数编出来只有六位,我又上那块去找原因,发现又是在取值边界上的问题,我改后这个问题也解决了。在进行bpsk调制时,出现了相位模糊的问题,我在抽样判决后,人为的进行取反,就得到了正确的0、1比特流。在信源译码的时候要注意的是,取的量化电平及值要和发送端事约定好,以便在接收到0、1比特流后能够正确译出量化值,在量化值恢复成原始抽样值时,我采用的是a律反解法,因为在我设计的程序中令a的值为87.65,此时的a律曲线和13拆线很接进,为了观查它们的近似度,
18、我在发送端和接收端分别用了13折线和a律公试。5.运行结果及分析先得到原始模拟信号如下图:将此模拟信号按每周期取32个点抽样,得到以下图形:将抽样后的量化值进行二进制编码,第八位二进制数表示一个量化值,将得到的二进制数进行信道编曲码,得到如下图形:经过bpsk调制后的信号和在调制后的信号中加入噪声有如下图形:(值得引起注意的是,我用0.1的宽度来表示一个比特,所以如果在0.1的整数倍的地方才能看到有0比特的相位表示用0相位,1比特的相位表示用pi/2)在接收端用一个与调制后的波同频的相干波与接收到的信号相乘后得到以下图形:经过数字低通滤波器滤除噪声和载波后的波形如下图:(值得引起注意的是在bp
19、sk调制中会出现相位模糊问题,在些处是通过在抽样判决时加以处理,使其能够正确译码输出) 通过信道译码后的图形如下:将信道译码后的信号,分为八位二进制位一组一组的,再将其恢复成十进制数,到对应段去找取值,即恢复原始信号的量化值,再将其值通过a律公式反解出原始信号的抽样值,画出如下图形:将上图用平滑的曲线边接起来,再标注上抽样点则得到如下图形:通过将原始信号与接收端得到的信号进行比较,可见信号恢复情况良好,只是在信号经过系统后,稍有些延时。七、设计心得通过这次实验,我收获不少,以通信原理更加了解,尤其是对数字通信系统更深刻了解了他的工作流程。在这次课程设计中,一开始的预期工作就是查资料,我一般通过
20、查阅课本书,和在网上查找一些相关资料,在这过程中我觉得做一个数字通信系统应该是我力所能及的,于是我又查阅了很多资料后,在头脑中慢慢程显出了数字通信系统的基本构架,然后在理清楚了基本框架后,我就开始一步步的设计子程序,然后编写一些测试的数据看是否可行,按照这样的进程,我整整在寝室待了两天,一直在想,一直在编程,错了又改,改了又编,一点点累积起来,最后终于形成了一个完整的程序。但是在编写了完整的主程序后,要将一个个子程序衔接起来,也出了一点点小差错,比如是数据不对,越过数组范围之类的问题,还有就是有一次我竟然画出了一些比特流,中间全零两边正常,但却恢复得挺好,我百思不得其解,一遍遍的看程序,最后发
21、现自己犯了个低级错误,即带错参数了。再有就是有一段时间我一运行程序,前几个图都画出来了,可就是接下来的图画不出来,而且matlab死机了,我检查了好多遍程序都不知道哪儿出错了,直到有一次我不管它,让它运行去,我去干别的一小会,等我回来时一看,在matlab里的command window里打印了好多好多的数,我这才愰然大悟我错在哪儿了,原来我忘记了我用数用错了,唉,这才知道如果我细心点该多好呀。还有就是在编程的时候一定要注意一些边界取值问题,不然也会出错。在整个通信系统仿真快要完成时,我对整个数字通信系统了解得很深刻,那体系结构牢牢记在我大脑里了。最后我就一遍遍检查每个子函数看看如何使之更加完善,在接收端和发送端只能通过经过信道传输进行信息的传递(不能通过函数值的传递方式来使接收端得到某些信息),并在接收端和发送端规定好一定的协议,通过协议和接收到的信号,才能完整的恢复原始信号。做完这个通信系统仿真后,我思考了一个问题,我这个程序在一开始的时候做了归一化处理,虽然在接收端恢复的信号的原始信号几乎一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高铁预制箱梁施工课件
- 济南市2024-2025学年七年级下学期语文期中测试试卷
- 济南市2025-2026学年八年级上学期语文月考模拟试卷
- 高速路政日常工作课件
- 电芯销售知识培训内容课件
- 电脑知识应用培训记录课件
- 高考改革课件
- SGLT-2 抑制剂作用机制试卷及答案
- 电网廉洁从业课件
- 广西河池市凤山县2022-2023学年九年级上学期期中化学试题(含答案)
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- 胰腺肿瘤影像学课件
- GB308-2002滚动轴承钢球
- 夹芯彩钢复合板吊顶施工方案
- 高效课堂讲座课件
- 有害物质污染源识别与评价表
- 餐具洗消保洁制度管理办法
- 齿轮的设计计算PPT学习教案
- 英语社团教案(共21页)
- 新编物理基础学王少杰(上、(下册))课后习题答案
- 电动转向管柱系统项目商业计划书范文参考
评论
0/150
提交评论