基于Matlab的PCM串行传输系统仿真分析

2019-09-10 07:22吴冉刘登峰俊杰
赤峰学院学报·自然科学版 2019年2期

吴冉 刘登峰 俊杰 等

摘要:针对目前通信专业实验课程存在的问题,将Matlab引入实验教学,以PCM串行传输这个验证型实验为例,用Matlab编程、Simulink建模仿真、GUI图形界面3种形式分别实现.验证了脉冲编码调制的抽样、量化、编码、译码的过程以及对于编码和解码误差原因的分析.通过多方式的验证型教学,提高了学生的工程基础素质和动手能力.对于通信专业验证型实验的开展具有一定的借鉴意义.

关键词:PCM;Matlab;GUI;Simulink

中图分类号:TP914  文献标识码:A  文章编号:1673-260X(2019)02-0062-03

目前,南阳理工学院通信专业的实验项目大多是验证型,设计型和创新型的实验项目很少,学生的动手能力和创新能力得不到培养,验证型实验大部分也是通过传统的实验箱,学生按照实验指导书进行连线,再通过示波器进行观察,这种验证性的实验真正需要学生思考和动手的机会不多.实验结果受硬件局限性大,当实验波形效果不理想时,能调节和修改的地方很少,实验目的难以达到.为了提高学生的学习兴趣,为了弥补传统实验箱的缺点,为了提高教学质量,为了提高学生的创新能力,依托实验室,成立了以老师指导,学生动手的团队,在教师的指导下,本团队学生通过Matlab以编程,Simulink建模仿真,GUI图形界面3种形式分别实现PCM(脉冲编码调制)串行传输系统.3种方法的理论原理是一样的,只是实现方式不同,其基本原理如图1所示.在发送端通过对模拟信号抽样、量化、编码[1],得到PCM数字信号,这时信号便可以用数字通信方式传输,经信道传送到接收端的译码器,进而还原出抽样值,再经低通滤波器滤出模拟信号[2].其中,发送端的抽样、量化、编码,实现了模拟信号到数字信号的转换,即A/D变换[1,2],接收端的译码、滤波实现了数字信号到模拟信号的转换,即D/A变换[1,2].学生可以通过这3种方式分别实现PCM[3]串行传输,然后进行对比分析.用GUI[4]图形界面和Simulink搭建的通信仿真系统可以方便直观地展现信号的状态变化,使抽象的通信理论形象化,有助于学生对理论知识的理解[3-5].用Matlab编写程序代码可以培养学生的编程能力为以后的毕设和工作打下扎实的基础.

1 用Matlab编程仿真PCM串行传输

仿真时信源的幅度为1,频率为1000Hz,信号抽样频率为8000Hz,编码环节采用A律13折线编码[6-7].图2是用Matlab编程进行仿真得到的模拟信号、抽样信号和PCM输出信号,图3是经过译码器还原出来的抽样信号和原始模拟信号.仿真计算出量化误差为0.3222.

对比图1和图2可以看出模拟信号经PCM调制以后变成了数字信号,再经译码仍可还原出原始的模拟信号,因为不是理想抽样所以还原出来的抽样信号与原抽样信号有差异.

2 用Matlab中的Simulink仿真PCM串行传输

用Simulink进行建模的图形如图4所示.学生在仿真过程中首先需要建模,然后对每个模块进行参数设计,在建模的时候学生必须对PCM编译码的整个过程非常熟悉,知道要用到哪些模块,为啥要用到这些模块,每个模块的作用是什么;在对每个模块进行参数设计时,也要对整个实验原理非常清楚,如果参数设计不正确,实验结果也会有误.验证型实验是基础,通过多方式的质疑式的验证型教学,学生的工程基础素质和动手能力才能提高.学生通过这种方式做完验证型实验,才可以熟能生巧,进行下一步的设计型和创新型实验.

图4中信源为幅度为1,频率为200Hz的正弦波,抽样频率为8000Hz,PCM编码器编码后的数据用Frame Status Conwersion模块转换为帧存储格式,然后通过Buffer模块串行化输出,Buffer的大小设置为1.信道错误比特率设置为0.01,方便观察信道误码对PCM传输的影响.本仿真中显示的信道错误比特率为0.5962如图5所示.Buffer2模块的大小设置为8,实现PCM码(8个比特)的串并转换.用Reshape模块转换成一维数组后送给PCM译码器.

用Simulink仿真建模以后仿真出来的图形如图6和图7所示,图8是用實验箱对一个模拟信号(黄色)进行PCM编码从示波器上观察的PCM(蓝色)图形,图9是用实验箱将PCM信号进行译码还原成模拟信号(蓝色)与原模拟信号(黄色)进行对比.

图6从上到下依次是误码波形和PCM波形,图6的第二个图形(PCM)可以与图8的PCM(蓝色)进行对比分析,图7从上到下依次是译码输出的波形和原话音信号波形,可以与图9进行对比分析.其中图7种译码输出波形中出现了干扰,这是因为信道中错误比特在PCM编码字符串中的位置不同造成的,如果位于最高位,引起的干扰最大,如果位于最低位引起的干扰最轻.通过实验箱和Simulink的仿真对比,当出现错误时学生可以很清楚地知道是哪个环节引起的错误,学生对PCM编译码的原理的理解会更加透彻.他们的基本技能也得到了提升.

3 利用Matlab设计的PCM的GUI界面

图9是学生利用Matlab自己设计的PCM的GUI界面,输入信号有两种:随机信号和正弦波;抽样方式有3种:理想抽样,零阶保持和自然抽样;量化方式有2种:一种是根据量化值最接近原始值和均方量化误差最小这2种规则编写的算法;另一种是压缩扩张法;图9选择的是正弦信号,然后点击plot按钮,就画出来图中的正弦波,选Ideal Sampling,再点Sampling按钮就得到了采样以后的信号,量化选择Two rules and an algorithm,再点Quantize按钮就得到了量化以后的信号,均方量化误差MSE是0.322349,然后点Bitstream就得到了用0,1表示的PCM数字信号,如图10所示.

选择随机信号,零阶保持,压缩扩张法得到的图形如图11所示,图中G(x)表示的是压缩器.

4 结束语

验证型实验是设计型和创新型实验的基础,为了克服验证型实验的缺点,为了让学生通过验证型实验真正提高他们的动手能力和创新能力,本文依托实验室,成立了以老师指导,学生动手的团队,在教师的指导下,本团队学生通过Matlab以编程,Simulink建模仿真,GUI图形界面3种形式对脉冲编码调制系统过程进行了仿真对比分析,以探究和验证脉冲编码调制的抽样、量化、编码和解码的过程,加深学生对PCM串行传输系统的理解,对于PCM的实现和通信专业验证型实验的开展具有一定的借鉴意义.

参考文献:

〔1〕刘振霞,马志强,钱渊,李瑞欣.程控数字交换技术[M].西安:西安电子科技大学出版社,2013.9-11.

〔2〕张水英,徐伟强.通信原理及MATLAB/Simulink仿真[M].北京:人民邮电出版社,2012.146-149.

〔3〕张原,魏璐璐,王静.基于MATLAB的脉冲编码调制仿真[J].电脑知识与技术,2016,12(36),215-217.

〔4〕郭慧.基于PCM编码的模拟信号数字化实现[J].微型机与应用,2017(2):70-72.

〔5〕李红.基于Matlab的量化编码的研究[J].黑龙江科技信息,2010(25):83.

〔6〕赵守彬,李鸿刚.利用Matlab实现PCM编码的A律13折线法量化[J].科技信息,2009(36):547.

〔7〕冯微玮.基于MATLAB的PCM仿真[J].科技致富向导,2012(14):31-33.