课程设计报告课程名称通信原理课题名称信号量化,编码专业通信工程班级1301学号201303020102姓名谢**指导教师胡倩彭祯韩宁2016年1月15日13级通信工程专业“通信原理”课程设计任务书一、课题名称基带通信过程仿真二、课程设计内容本课题使用Matlab仿真软件,利用Matlab集成环境下的M文件编写程序来模拟和仿真简单的通信过程,主要包括采样量化编码、信道编码、信道解码、数模转换输出,最后集成各个模块。最后根据输出的相应信号的时域波形和频域波形或仿真结果,来判断通信的质量,并分析误差存在的原因。三、课程设计目的(1)综合应用《Matlab编程与系统仿真》、《信号与系统》、《现代通信原理》等多门课程知识,建立通信系统的整体概念;(2)培养系统设计与系统开发的思想;(3)培养利用软件进行通信仿真的能力;(4)熟悉Matlab文件中M文件的使用方法,包括函数、原理和使用的方法。四、设计要求(1)8-9个同学一组,在Matlab环境下完成对通信系统各部分仿真程序的设计与调试,对通信过程整体有较深入的理解;(2)组员深入理解自己仿真部分的原理的基础,提出仿真方案,画出对应的子系统的原理框图;(3)完成仿真程序的编制,运行仿真程序;(4)组长负责各模块的集成,并对本组系统总结。(5)完成课设报告,程序分组打包。五、分组安排学号末两位%8=1,信号抽样学号末两位%8=2,3,信号量化,编码学号末两位%8=4,信道编码(HDB3)学号末两位%8=5,信道解码学号末两位%8=6,7,信号数模转换学号末两位%8=0,各模块仿真结果分析,集成各模块1-8号,9-16号,17-24号,25-32号一组,33,34,35号每个人跟一个组。每组选出一个组长。六、时间安排(1)上机时间:十八周:礼拜一:上午礼拜二:下午礼拜三:下午礼拜四:下午礼拜五:上午十九周:礼拜一:下午礼拜二:下午(2)其他时间自己在寝室或图书馆查找资料、代码设计、完成课设报告目录一.数字通信系统的简介....................................1二.类似A率的13折线编码原理............................3三.13折线法的PCM解码流程图..............................43.1编码原理..........................................43.2编码流程图........................................6四.用MATLAB进行解码仿真.................................7五.心得体会..............................................8六.附录..................................................9七.评分表...............................................11基带通信系统——信号量化,编码一.数字通信系统的简介数字通信系统是利用数字信号来传递信息的通信系统,它不同于模拟通信系统。它同模拟通信系统相比,具有以下一些优点:①抗干扰能力强,且噪声不累计。②传输差错可控。③便于用现代数字信号处理技术对数字信息进行处理、变换、储存。④易于集成,使通信设备微型化,重量减轻。⑤易于加密处理,且保密性好。但它也存在一定的缺点就是可能需要较大的传输带宽。至今,数字通信技术一直受重视。其系统模型如下图所示。数字通信涉及的技术问题很多,其中主要有信源编码与译码、信道编码与译码、数字调制与解调、同步及加密与解密等。图1数字通信系统模型(1)信源编码与译码信源编码有两个基本功能:一是提高信息传输的有效性,即通过某种压缩编码技术设法减少码元数目以降低码元速率。二是完成数模转换,即当信息源给出的是模拟信号时,信源编码器将其转换为数字信号,以实现模拟信号的数字传输。信源译码是信源编码的逆过程。(2)信道编码与译码信道编码的作用是进行差错控制。数字信号在传输过程中会受到噪声等影响而发生差错。为了减小差错,信道编码器对传输的信息码元按一定的规则加入保护成分(监督码元),组成所谓的“抗干扰编码”。接收端的信道译码按相应的逆规则进行解码,从中发现错误或纠正错误,提高通信系统的可靠性。信源信源编码信道数字调制信道编码加密噪声源数字解调信道译码解密信源译码信宿(3)加密与解密在需要实现保密通信的场合,为了保证所传信息的安全。人为的将传输的数字序列扰乱,即加上密码,这种处理过程叫做加密。在接收端利用与发送端处理过程相反的过程对收到的数字序列进行解密,恢复原来的信息。(4)数字调制与解调数字调制是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的通信号。基本的数字调制方式有振幅键控、频移键控、绝对相移键控、相对(差分)相移键控。在接收端可以采用相干解调或非相干解调还原数字基带号。(5)同步同步是使发收两端的信号在时间上保持步调一致,是保证数字通信系统有序、准确、可靠工作的前提条件。在按照同步的功能不同,分为载波同步、位同步、帧同步和网同步。同步单元也是系统的组成部分。所谓抽样,就是根据奈奎斯特采样定理对模拟信号进行采样,使其时域离散化,但此时信号仍是模拟信号,这个抽样后的信号必须经过量化才能变成数字信号。信号的量化,分为均匀量化和非均匀量化,量化方式不同,但原理相同。下图为量化的原理示意图:图2量化过程-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81量化完之后要将信号进行编码,在这里一般采用脉冲编码调制(PCM)。然而在实际的基带传输系统中,并不是所有的基带波形都适合在信道传输,例如,含有直流和低频分量的单极性基带波形就不适合在低频传输特性差的信道中传输,因为这有可能造成严重的畸变。所以,在信道中要选择合适的传输码,将PCM基带信号按某种码形规则编译好的过程就是信道编码过程,信号传输码形有很多种类型,例如:AMI码,HDB3码,双相码,差分双相码,CMI码等等(本次课程设计选用HDB3码)。相反,信道解码就是将上一步信道编码好的信号无失真的还原成基带信号。最后信号的数模转换,也就是PCM的解调过程,将编码好的数字基带信号还原成采样后的模拟信号的过程。二.类似A率的13折线编码原理由于A率表示式是一条连续的平滑曲线,用电子线路很难准确的实现。所以要采用13折线近似A率的特性来实现。如下图:图3对称输入13折线压缩特性图中横坐标x在0~1区间中分为不均匀的八段。1/2~1间的线段称为第8段;1/4~1/2间的线段称为7段;1/8~1/4间的线段称为第6段;以此类推,直到0~1/128间的线段称为第1段。图中纵坐标y则均匀地划分作8段。将与这8段相应的坐标点(x,y)相连,就得到一条折线。由图可见,除第一段和第二段外,其他各段折线的斜率都不相同。斜率如下表:表1各段折线的斜率折线段号12345678斜率161684211/21/4x的取值应该还有负的一半。就是说,在坐标系的第三象限还有对原点奇对称的另一半曲线,在图3中第一象限中的第一段和第二段斜率相同,所以过程一条直线。同样,在第三象限中的第一段和第二段折线的斜率也相同,并且和第一象限中的斜率相同。所以,这四段折线构成了一条直线。因此,在这正负两个象限中的完整压缩曲线共有13段折线,故称13折线压缩特性。三.13折线的PCM解码流程图3.1编码原理13折线的PCM编码是将一个抽样值编码成为8位二进制数。这八位数又分为极性码C1,段落码C2、C3、C4,段落码C5、C6、C7、C8。所以代码可以分为三段来写:在将抽样值归一化为Is后进行如下过程极性码C1:根据抽样值得符号判断,如果抽样是y(k)=0则C1=1,反之C1=0。段落码:先定义一个flag=7,判断Is是否大于等于2^flag,如果是,则Ci=1,反之Ci=0。此外,在判断完Ci的值后还要记得将flag进行相应的变化,如:C2=1时,flag因变为9,继而C3=1时,flag要变为10。依次循环三次之后既可以得出段落码。flag=7;fori=2:4%段落码ifi_s=2^flag%判断C2code(i)=1;ifi==3flag=flag+1;elseflag=flag+2;endelsecode(i)=0;ifi==3flag=flag-1;elseflag=flag-2;endendend段内码:段内码的结果需要根据段落码来确定该段的其实电平start以及该段的量化间隔delta。根据这两个值可以算出每次与Is比较的Iw。即第一次比较的Iw=start+8*delta。判断Is是否大于等于Iw,如果是则Ci=1,否则Ci=0。level=8;%级别初始化changeLevel=8;%级别变化初始化fori=5:8i_w=start+level*delta;%第一段的为start+8*deltaifi_s=i_w%比较i_s和i_w来判断段内码code(i)=1;changeLevel=changeLevel/2;level=level+changeLevel;%判断哪一级elsecode(i)=0;changeLevel=changeLevel/2;level=level-changeLevel;endend整理并输出:将编出来的8位码按顺序插入到最终的序列endCode中,最后把endCode传出给主函数进行下步操作。开始输入一个抽样值将值归一化Is=0结束C1=1C1=0flag=7,i=1Is=2^flagCi=1Ci=0flag改变算出其段的起始电平和量化间隔根据起始电平和间隔算出IwIs=IwC1=1C1=0量化区间改变i++1=i=8整合并输出2=i=45=i=8YYYYYNNNNNY3.2编码流程图图413折线PCM解码流程图12345678-0.500.511.50.62的PCM编码四.用MATLAB进行解码仿真若将原基带信号为y=sinx其进行13折线PCM编码结果如下:即11111001图5幅度为1的0.62的PCM解码仿真结果y的原信号图如下:图5y=sinx的原信号图00.10.20.30.40.50.60.70.80.91-2-1.5-1-0.500.511.52原信号图00.10.20.30.40.50.60.70.80.91-2-1.5-1-0.500.511.52PCM解码信号图对y编码后在解码的图如下:图6经过PCM解码后的信号图五.心得体会本次课程设计的题目刚下达的时候,我有点迷茫不知道怎么开始做,在任务分配中我做的是第二个,就是量化、编码的部分,这个部分我开始并不清楚,以为量化和编码是可以分开单独进行的。也尝试过想讲信号量化,在对信号进行编码,可是我写了一点代码后发现这种方法行不通,也是因为这个波折让我跟深刻的直到量化和编码最好不要分开来写,同时,在这个过程中,我渐渐的熟悉了matlab这门语言的魅力,便开始喜欢上了编写matlab程序代码。经过一番思想整理后,在信号量化、编码部分我采用的是近似A率的13折线法编码,通过书上的例题,我更加明白了13折线法对信号编码的规则,于是我便开始了我的“写代码之旅”。书上的例题是对一个抽样值进行编码,变成8位的二进制数,我便按照书上的方法,先能够编出一个数的编码。所以,在最开始我的程序没有整理输出这一部分。等到我正确编写出一个数值的编码后我在开始对所有抽样值得编码进行最后的的整理,整理到一个数组里以便PCM解码。在编码过程中,我最纠结的地方是如何改变和Is比较的那个数,经过仔细推敲后,我发现这些用于和Is比较的数都是有规律的,比如段落码最先和Is比较的是2^7,如果大于它就和2^9比较,如果还大于就和2^10比较。所以我将2的指数定义为flag,在第一次比较后对flag进行加2或减2,第二次比较就对flag进行