ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:131.68KB ,
资源ID:27541126      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27541126.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信号量化编码附加全部程序.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

信号量化编码附加全部程序.docx

1、信号量化编码附加全部程序 课 程 设 计 报 告 课程名称 通信原理 课题名称 信号量化,编码 专 业 通信工程 班 级 1301 学 号 201303020102 姓 名 谢* 指导教师 胡倩 彭祯 韩宁 2016 年 1 月 15 日13级通信工程专业“通信原理”课程设计任务书一、课题名称 基带通信过程仿真二、课程设计内容本课题使用Matlab仿真软件,利用Matlab集成环境下的M文件编写程序来模拟和仿真简单的通信过程,主要包括采样量化编码、信道编码、信道解码、数模转换输出,最后集成各个模块。最后根据输出的相应信号的时域波形和频域波形或仿真结果,来判断通信的质量,并分析误差存在的原因。三

2、、课程设计目的(1)综合应用Matlab编程与系统仿真、信号与系统、现代通信原理等多门课程知识,建立通信系统的整体概念;(2)培养系统设计与系统开发的思想;(3)培养利用软件进行通信仿真的能力;(4)熟悉Matlab文件中M文件的使用方法,包括函数、原理和使用的方法。四、设计要求 (1)8-9个同学一组,在Matlab环境下完成对通信系统各部分仿真程序的设计与调试,对通信过程整体有较深入的理解;(2)组员深入理解自己仿真部分的原理的基础,提出仿真方案,画出对应的子系统的原理框图;(3)完成仿真程序的编制,运行仿真程序;(4)组长负责各模块的集成,并对本组系统总结。(5)完成课设报告,程序分组打

3、包。五、分组安排 学号末两位%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)其他时间自己在寝室或图书馆查找资料、代码设计、完成课设报告 目 录 一.数字通信系统的简

4、介 1二. 类似A率的13折线编码原理 3三.13折线法的PCM解码流程图 43.1 编码原理 43.2 编码流程图 5四.用MATLAB进行解码仿真 6五.心得体会 7六.附录 8七.评分表 10基带通信系统信号量化,编码一.数字通信系统的简介数字通信系统是利用数字信号来传递信息的通信系统,它不同于模拟通信系统。它同模拟通信系统相比,具有以下一些优点: 抗干扰能力强,且噪声不累计。 传输差错可控。 便于用现代数字信号处理技术对数字信息进行处理、变换、储存。 易于集成,使通信设备微型化,重量减轻。 易于加密处理,且保密性好。但它也存在一定的缺点就是可能需要较大的传输带宽。至今,数字通信技术一直

5、受重视。其系统模型如下图所示。数字通信涉及的技术问题很多,其中主要有信源编码与译码、信道编码与译码、数字调制与解调、同步及加密与解密等。图1 数字通信系统模型(1)信源编码与译码信源编码有两个基本功能:一是提高信息传输的有效性,即通过某种压缩编码技术设法减少码元数目以降低码元速率。二是完成数模转换,即当信息源给出的是模拟信号时,信源编码器将其转换为数字信号,以实现模拟信号的数字传输。信源译码是信源编码的逆过程。(2)信道编码与译码信道编码的作用是进行差错控制。数字信号在传输过程中会受到噪声等影响而发生差错。为了减小差错,信道编码器对传输的信息码元按一定的规则加入保护成分(监督码元),组成所谓的

6、“抗干扰编码”。接收端的信道译码按相应的逆规则进行解码,从中发现错误或纠正错误,提高通信系统的可靠性。(3)加密与解密在需要实现保密通信的场合,为了保证所传信息的安全。人为的将传输的数字序列扰乱,即加上密码,这种处理过程叫做加密。在接收端利用与发送端处理过程相反的过程对收到的数字序列进行解密,恢复原来的信息。(4)数字调制与解调数字调制是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的通信号。基本的数字调制方式有振幅键控、频移键控、绝对相移键控、相对(差分)相移键控。在接收端可以采用相干解调或非相干解调还原数字基带号。(5)同步同步是使发收两端的信号在时间上保持步调一致,是保证数字通信

7、系统有序、准确、可靠工作的前提条件。在按照同步的功能不同,分为载波同步、位同步、帧同步和网同步。同步单元也是系统的组成部分。所谓抽样,就是根据奈奎斯特采样定理对模拟信号进行采样,使其时域离散化,但此时信号仍是模拟信号,这个抽样后的信号必须经过量化才能变成数字信号。信号的量化,分为均匀量化和非均匀量化,量化方式不同,但原理相同。下图为量化的原理示意图: 图2 量化过程量化完之后要将信号进行编码,在这里一般采用脉冲编码调制(PCM)。然而在实际的基带传输系统中,并不是所有的基带波形都适合在信道传输,例如,含有直流和低频分量的单极性基带波形就不适合在低频传输特性差的信道中传输,因为这有可能造成严重的

8、畸变。所以,在信道中要选择合适的传输码,将PCM基带信号按某种码形规则编译好的过程就是信道编码过程,信号传输码形有很多种类型,例如:AMI码,HDB3码,双相码,差分双相码,CMI码等等(本次课程设计选用HDB3码)。相反,信道解码就是将上一步信道编码好的信号无失真的还原成基带信号。最后信号的数模转换,也就是PCM的解调过程,将编码好的数字基带信号还原成采样后的模拟信号的过程。 二. 类似A率的13折线编码原理由于A率表示式是一条连续的平滑曲线,用电子线路很难准确的实现。所以要采用13折线近似A率的特性来实现。如下图:图3 对称输入13折线压缩特性图中横坐标x在01区间中分为不均匀的八段。1/

9、21间的线段称为第8段;1/41/2间的线段称为7段;1/81/4间的线段称为第6段;以此类推,直到01/128间的线段称为第1段。图中纵坐标y则均匀地划分作8段。将与这8段相应的坐标点(x,y)相连,就得到一条折线。由图可见,除第一段和第二段外,其他各段折线的斜率都不相同。斜率如下表:表1各段折线的斜率折线段号12345678斜率161684211/21/4x的取值应该还有负的一半。就是说,在坐标系的第三象限还有对原点奇对称的另一半曲线,在图3中第一象限中的第一段和第二段斜率相同,所以过程一条直线。同样,在第三象限中的第一段和第二段折线的斜率也相同,并且和第一象限中的斜率相同。所以,这四段折

10、线构成了一条直线。因此,在这正负两个象限中的完整压缩曲线共有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是否大于等于2flag,如果是,则Ci=1,反之Ci=0。此外,在判断完Ci的值后还要记得将flag进行相应的变化,如:C2=1时,flag

11、因变为9,继而C3=1时,flag要变为10。依次循环三次之后既可以得出段落码。flag = 7; for i = 2:4 %段落码 if i_s = 2flag %判断C2 code(i) = 1; if i = 3 flag = flag+1; else flag = flag+2; end else code(i) = 0; if i = 3 flag = flag-1; else flag = flag-2; end end end 段内码:段内码的结果需要根据段落码来确定该段的其实电平start以及该段的量化间隔delta。根据这两个值可以算出每次与Is比较的Iw。即第一次比较的Iw

12、=start+8*delta。判断Is是否大于等于Iw,如果是则Ci=1,否则Ci=0。 level = 8; %级别初始化 changeLevel = 8; %级别变化初始化 for i = 5:8 i_w = start + level*delta ; %第一段的为start+8*delta if i_s = i_w %比较i_s和i_w来判断段内码 code(i) = 1; changeLevel = changeLevel/2; level = level + changeLevel;%判断哪一级 else code(i) = 0; changeLevel = changeLevel/

13、2; level = level - changeLevel; end end整理并输出:将编出来的8位码按顺序插入到最终的序列endCode中,最后把endCode传出给主函数进行下步操作。3.2 编码流程图 NNNYN图4 13折线PCM解码流程图四.用MATLAB进行解码仿真若将原基带信号为y=sinx其进行13折线PCM编码结果如下:即11111001 图5 幅度为1的0.62的PCM解码仿真结果y的原信号图如下:图5 y=sinx的原信号图对y编码后在解码的图如下:图6 经过PCM解码后的信号图五.心得体会 本次课程设计的题目刚下达的时候,我有点迷茫不知道怎么开始做,在任务分配中我做

14、的是第二个,就是量化、编码的部分,这个部分我开始并不清楚,以为量化和编码是可以分开单独进行的。也尝试过想讲信号量化,在对信号进行编码,可是我写了一点代码后发现这种方法行不通,也是因为这个波折让我跟深刻的直到量化和编码最好不要分开来写,同时,在这个过程中,我渐渐的熟悉了matlab这门语言的魅力,便开始喜欢上了编写matlab程序代码。经过一番思想整理后,在信号量化、编码部分我采用的是近似A率的13折线法编码,通过书上的例题,我更加明白了13折线法对信号编码的规则,于是我便开始了我的“写代码之旅”。书上的例题是对一个抽样值进行编码,变成8位的二进制数,我便按照书上的方法,先能够编出一个数的编码。

15、所以,在最开始我的程序没有整理输出这一部分。等到我正确编写出一个数值的编码后我在开始对所有抽样值得编码进行最后的的整理,整理到一个数组里以便PCM解码。在编码过程中,我最纠结的地方是如何改变和Is比较的那个数,经过仔细推敲后,我发现这些用于和Is比较的数都是有规律的,比如段落码最先和Is比较的是27,如果大于它就和29比较,如果还大于就和210比较。所以我将2的指数定义为flag,在第一次比较后对flag进行加2或减2,第二次比较就对flag进行加1或减1,这样一来就可以将段落码编出来;有了段落码的编写经验,在段内码编码中我采用了类似的方式用level来代表段内区间,并在段内码编写里将leve

16、l进行相应的变化。在写完自己的部分后,我便开始帮助同组的人编写并指导,这次课设做完后,我感觉自己对数字基带系统有了更深入的了解,让我对它的兴趣更加浓厚六.附录:function A,code1 = A13PCM(y)%函数功能: 将抽样脉冲幅度进行编码%参数:传入y为信号函数序列,输出code1为编码后的0 1序列,A为y的幅度code1 = zeros(1,8*length(y)A = max(abs(y); %算出信号的最大幅度for k = 1:length(y) i_s = abs(y(k)/A)*2048; %将抽样值化为量化单位 i_s = round(i_s); code = z

17、eros(1,8); %建一个8位的数组 code(1) = (sign(y(k) = 0);%级性码C1 0也算符号为正 flag = 7; for i = 2:4 %段落码 if i_s = 2flag %判断C2 code(i) = 1; if i = 3 flag = flag+1; else flag = flag+2; end else code(i) = 0; if i = 3 flag = flag-1; else flag = flag-2; end endend %下面判断段内码 phase = code(2)*4+code(3)*2+code(4)+1; %段落码换成10

18、进制 if phase = 2 delta = 2(phase-2); %计算量化间隔 start = 2(phase+2); %该段的段落起始电平 else delta = 1; start = 0; end level = 8; %级别初始化 changeLevel = 8; %级别变化初始化 for i = 5:8 i_w = start + level*delta ; %第一段的为start+8*delta if i_s = i_w %比较i_s和i_w来判断段内码 code(i) = 1; changeLevel = changeLevel/2; level = level + ch

19、angeLevel;%判断哪一级 else code(i) = 0; changeLevel = changeLevel/2; level = level - changeLevel; end end for j = 1:8 code1(j+8*(k-1) = code(j); %整合编码 endend七.评分表计算机与通信学院课程设计评分表课程名称: 通信原理 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期: 附加:HDB3编码程序:function endCode = HDB3encode(code)%

20、函数功能: HDB3编码%参数: code为输入原序列,endCode为输出HDB3码的序列code = 1,code;%先将序列首位添加一个符号位%B00V中,V的符号满足两个条件: % 1、V与前一个V符号相反 % 2、V与前一个非0值符号相同,B用于协调count = 0; %计数器初始化flag = 1; %第一次联零的标志 symbolCode = 1; %code的符号V = code(1); %V的符号初始化for j = 1:length(code) if code(j) = 0 count = count + 1; else code(j) = symbolCode*code

21、(j); symbolCode = -1*symbolCode; if flag = 1 %还没有出现第一次连0 V = code(j); end count = 0; end if count = 4 %检测到4个0 count = 0; %计数清零 code(j) = V; %加V if V = code(j-4) %V与前一个非0值符号不同 if flag = 0 code(j-3) = V; %用B来协调 end end flag = 0; %连零标志失效 V = -code(j); %记录V下次的符号 symbolCode = V; %记录下一个1的符号 endendendCode

22、= code(2:length(code); %去除首位HDB3解码程序:function endCode = HDB3decode(code)%函数功能: HDB3解码%参数: 传入编码信号code,解码成endCode输出endCode = code;symbol = 1;for i = 1:length(endCode) if endCode(i) = 0 %判断它和前一个非零数是不是相同 if symbol = endCode(i) if i-3 = 1 endCode(i-3) = 0; end endCode(i) = 0; else symbol = endCode(i); en

23、d endendfor i = 1:length(endCode) %消去符号 if endCode(i) = 0 endCode(i) = 1; endend信道PCM解码:function signal = Decode(A,code)%函数功能: PCM译码%参数: 传入已编码信号code和原信号序列y,解码成为signal返回signal_len = length(code)/8;signal = zeros(1,signal_len); %创建返回数组sp = 0,16,32,64,128,256,512,1024; %段落起点值spmin = 1,1,2,4,8,16,32,64;

24、 %最小量化间隔for i = 1:signal_len symbol = 1; %符号初始化 phase = 1; %段落值初始化 phase_in = 0; %段内值初始化 for j = 1:8 %一维数组的j 对应 j+(i-1)*8 if j = 1 %级性码 if code(j+(i-1)*8) = 0 %如果级性码为0 symbol = -1; %符号记录(负号) end end if j = 2&j 4&j = 8 %段内码转化为10进制数 phase_in = code(j+(i-1)*8)*2(8-j)+phase_in; end end %循环完后将值计算并给出 temp

25、 = sp(phase) + spmin(phase)*(phase_in + 0.5); temp = symbol * temp / 2048; %去归一化和信号还原 signal(i) = A*temp; end主函数:clear all;close all;f = 200; %采样频率n = 0:1/f:1-1/f; %采样间隔y = 2*sin(2*pi*n); %输入信号A,code = A13PCM(y); %量化编码PCMcode1 = HDB3encode(code); %HDB3编码code2 = HDB3decode(code1); %HDB3解码signal = Dec

26、ode(A,code2); %PCM解码%下面作图figureplot(n,y,r); %原信号图title(原信号图);figuresubplot(311);stairs(code); %PCM编码图title(PCM编码图);axis(1,50,-1,2);subplot(312);stairs(code1); %HDB3编码图title(HDB3编码图);axis(1,50,-2,2);subplot(313);stairs(code2); %PCM解码图title(PCM解码图);axis(1,50,-1,2);figurestairs(n,signal); %PCM解码信号图title(PCM解码信号图);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1