其中,A是压缩系数,y是归一化的压缩器输出电压,x为归一化的压缩器输入电压。
图1-5A律对数压缩特性
1.2.413折线
实际中,A压缩律通常采用13折线来近似,十三折线如图1-6所示,图中先把x轴的[0,1]区间分为8个不均匀段。
图1-613折线示意图
其具体分法如下:
将区间[0,1]一分为二,其中点为1/2,取区间[0,1/2]作为第八段;
将剩下的区间[0,1/2]再一分为二,其中点为1/4,取区间[1/4,1/2]作为第七段;
将剩下的区间[0,1/4]再一分为二,其中点为1/8,取区间[1/8,1/4]作为第六段;
将剩下的区间[0,1/8]再一分为二,其中点为1/16,取区间[1/16,1/8]作为第五段;
将剩下的区间[0,1/16]再一分为二,其中点为1/32,取区间[1/32,1/16]作为第四段;
将剩下的区间[0,1/32]再一分为二,其中点为1/64,取区间[1/64,1/32]作为第三段;
将剩下的区间[0,1/64]再一分为二,其中点为1/128,取区间[1/128,1/64]作为第二段;
最后剩下的区间[0,1/128]作为第一段。
然后将y轴的[0,1]区间均匀的分成八段,从第一段到第八段分别为[0,1/8]、[1/8,2/8]、[2/8,3/8]、[3/8,4/8]、[4/8,5/8]、[5/8,6/8]、[6/8,7/8]、[7/8,1]分别与x轴的八段一一对应。
1.3脉冲编码调制(PCM)
若信源输出的是模拟信号,如机传送的语音信号等,要使其在数字信道中传输,必须在发送端将模拟信号转换成数字信号即进行A/D变换,在接收端要进行D/A变换。
对语音信号最典型的数字编码就是脉冲编码调制(PCM)。
脉冲编码调制,就是将模拟信号的抽样量化值转换成二进制码组的过程。
图1-7给出了脉冲编码调制的示意图。
(a)抽样脉冲(b)PCM抽样
(c)PCM量化(d)PCM编码
图1-7脉冲编码调制示意图
PCM系统的原理方框图如图1-8所示,输入的模拟信号m(t)经抽样、量化、编码后变换成数字信号,经信道传送到接收端的译码器,由译码器还原出抽样值,再经过低通滤波器滤出模拟信号。
其中,量化与编码的组合成为A/D变换器;而译码与低通滤波的组合成为D/A变换。
图1-8PCM通信系统方框图
1.4差分脉冲编码调制(DPCM)
PCM体制需要用64kb/s的速率传输1路数字信号,而传输1路模拟信号仅占用3kHz带宽。
相比之下,传输PCM信号占用更大的带宽。
为了降低数字信号的比特率,改进的方法之一是采用预测编码方法。
DPCM是广泛应用的一种预测方法。
DPCM与预测编码类似,只是它有一个量化步骤。
量化步骤和PCM中的量化步骤类似,可以是均匀量化,也可以是非均匀量化。
在预测编码中每个抽样值不是独立地编码,而是先根据前几个抽样值计算出一个预测值,再取当前抽样值和预测值之差。
将此差值编码并传输。
此差值称为预测误差。
话音信号等连续变化的信号,其相邻抽样值之间有一定的相关性,这个相关性使信号中含有冗余信息。
由于抽样值及其预测值之间有较强的相关性,即抽样值和其预测值非常接近,使此预测误差的可能取值围比抽样值的变化围小。
对于有些信号(例如图像信号),由于信号的瞬时斜率比较大,很容易引起过载。
因此,不能用简单增量调制进行编码。
除此之外,这类信号也没有像话音信号那种音节特性,因而也不能采用像音节压扩那样的方法,只能采用瞬时压扩的方法。
但瞬时压扩实现起来比较困难,因此,对于这类瞬时斜率比较大的信号,通常采用一种综合了增量调制和脉冲编码调制两者特点的调制方法进行编码,这种编码方式被简称为脉码增量调制,或称差值脉码调制,用DPCM表示。
2Matlab/Simulink的简介
MATLAB是矩阵实验室(Matrix Laboratory)的简称。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
当前流行的MATLAB5.3/Simulink3.0包括拥有数百个部函数的主包和三十几种工具包(Toolbox)。
工具包又可以分为功能性工具包和学科工具包。
功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。
学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以使用。
MATLAB有着强大的功能,可以用来进行多种工作,具体如下:
数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理技术、数字信号处理技术、通讯系统设计与仿真、财务与金融工程等。
MATLAB的应用围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱扩展了MATLAB环境,可以解决这些应用领域特定类型的问题。
Simulink是Matlab软件下的一个附加组件,是一个用来对动态系统进行建模、仿真和分析的MATLAB软件包。
支持连续、离散以及两者混合的线性和非线性系统,同时它也支持具有不同部分拥有不同采样率的多种采样速率的仿真系统。
在其下提供了丰富的仿真模块。
其主要功能是实现动态系统建模、仿真与分析,可以预先对系统进行仿真分析,按仿真的最佳效果来调试及整定控制系统的参数。
Simulink仿真与分析的主要步骤按先后顺序为:
从模块库中选择所需要的基本功能模块,建立结构图模型,设置仿真参数,进行动态仿真并观看输出结果,针对输出结果进行分析和比较。
Simulink模块库提供了丰富的描述系统特性的典型环节,有信号源模块库(Source),接收模块库(Sinks),连续系统模块库(Continuous),离散系统模块库(Discrete),非连续系统模块库(SignalRouting),信号属性模块库(SignalAttributes),数学运算模块库(MathOperations),逻辑和位操作库(LogicandBitOperations)等等,此外还有一些特定学科仿真的工具箱。
Simulink为用户提供了一个图形化的用户界面(GUI)。
对于用方框图表示的系统,通过图形界面,利用鼠标单击和拖拉方式,建立系统模型就像用铅笔在纸上绘制系统的方框图一样简单,它与用微分方程和差分方程建模的传统仿真软件包相比,具有更直观、更方便、更灵活的优点。
不但实现了可视化的动态仿真,也实现了与MATLAB、C或者FORTRAN语言,甚至和硬件之间的数据传递,大大扩展了它的功能。
本次设计选择用Simulink而不是直接用Matlab编程,一定程度上减小了设计难度,而且设计效果更加直观。
在库函数中可以找到相应的滤波器,乘法器等等,而且可以通过参数设置,近似的实现实际中的效果,因此能够更好地反映实际通信系统的情况。
3基于Simulink的模拟信号数字化传输的设计与仿真分析
3.1抽样过程的设计与仿真分析
基于Matlab抽样过程的设计图如图3-1所示:
图3-1抽样过程的原理电路图
根据抽样定理的容,对抽样过程进行设计,用正弦波作为原始输入信号,频率设置为10Hz,抽样脉冲的频率设置为30Hz,使得抽样频率大于基带信号最高频率的二倍。
然后再通过一个低通滤波器,设置带宽为10Hz,从而滤除其他信号无失真的得到原始输入信号。
抽样过程示波器显示的图形如图3-2所示:
图3-2抽样过程波形图
在波形图中,第一个波形是原始正弦输入信号,第二个波形为抽样脉冲,第三个波形是抽样之后的波形,第四个波形为恢复之后的波形。
由于抽样频率大于基带信号最高频率的二倍,所以能够无失真的恢复出原始信号。
如果使正弦信号频率增大,或者降低抽样脉冲的频率,使其不满足无失真抽样的条件,最后输出的波形也不能无失真的恢复原始的正弦信号。
应该注意的一点是:
抽样频率并不是越高越好。
只要能满足抽样频率大于奈奎斯特频率,并留有一定的防卫带即可。
3.2量化过程的设计与仿真分析
基于Matlab量化过程的设计图如图3-3所示:
图3-3量化过程设计图
设计图中各模块参数的一系列设置如图3-4所示:
图3-4SignalGeneration参数设置图
LookupTable进行设置如图3-5所示,对单一斜率的原信号进行压缩,使其出现多个频率,以便于更好地量化。
图3-5LookupTable参数设置图
对量化器参数进行设置如图3-6所示,对信号进行量化,分为八个量化间隔。
图3-6Quantizer参数设置图
LookupTable1进行设置如图3-7所示,把各段的斜率进行详细设置,[-1,-1/2,-1/4,-1/8,-1/16,-1/32,-1/64,-1/128,1/128,1/64,1/32,1/16,1/8,1/4,1/2,1]。
图3-7LookupTable1参数设置图
图3-8Scope的仿真波形
设计图中示波器Scope的仿真波形如图3-8所示:
显示波形中,第一个波形显示的是原始波形,第二个波形是经过压缩之后的波形,压缩之后不再是斜率单一的直线,而是A律压缩波形。
设计图中示波器Scope1的仿真波形如图3-9所示:
图3-9Scope1的仿真波形
显示波形中,第一个波形显示的是进行自然量化之后的波形,第二个波形是经过压缩之后再量化的波形,近似于13折线的波形。
3.3PCM编译码系统设计与仿真分析
3.3.1PCM编码器设计
PCM编码器的设计如图3-10所示:
图3-10PCM编码器原理电路图
PCM编码器设计图中各模块的参数设置如下。
继电器设置如图3-11所示,在两个常数中选出一个作为输出。
图3-11Relay参数设置图
限制信号变化围,设置Saturation的参数,如图3-12所示:
图3-12Saturation参数设置图
图3-13输入输出绝对值设置图
A律压缩器进行相应的设置,如图3-14所示,对输入信号进行A律压缩。
图3-14A律压缩器参数设置
量化器设置,以指定的时间间隔离散化输入,如图3-15所示:
图3-15量化器参数设置图
增益设置,即将模块的输入乘以一个数值,如图3-16所示:
图3-16增益参数设置
图3-17比特输出参数设置图
比特输出设置输出为7bit,如图3-17所示:
混合设置,将几条输入连线组合成一条向量连线,如图3-18所示:
图3-18Mux参数设置图
3.3.2PCM解码器设计
PCM解码器的设计如图3-19所示:
图3-19PCM编码器设计图
Demux的输出设置为8,Mux的输出设置为7,起解混作用,将向量信号分解为多个信号。
其他模块的参数设置同编码器部分参数的设置相同。
3.3.3有干扰信号的PCM编码与解码
为了验证PCM编译码系统的特性,设计了一个有干扰的编译码过程。
有干扰信号的PCM编码与解码设计图如图3-20所示:
图3-20有干扰信号的PCM编码与解码设计图
部分的模块参数设置如下:
对输入信号进行设置,使其产生一个正弦波。
图3-21SineWave参数设置图
对Zero-Oder-Hold设置,实现一个采样周期的零阶保持,如图3-22所示:
图3-22Zero-Oder-Hold参数设置图
把数据打成帧格式,对一下模块进行设置,如图3-23所示:
图3-23FrameConversion参数设置图
对缓冲器进行设置,如图3-24所示:
图3-24Buffer参数设置图
二进制对称信道设置,如图3-25所示:
图3-25BinarySymmetric参数设置图
对缓冲器进行设置,如图3-26所示:
图3-26Buffer1参数设置图
对数据设置,将一列数据变成矩阵,如图3-27所示:
图3-27Reshape参数设置图
总体参数也需要进行设置,如图3-28所示:
图3-28总体参数设置图
设计图中示波器Scope的显示波形如图3-29、3-30所示:
图3-29示波器Scope1的显示波形
第一个波形是经过二进制对称信道的波形,第二个波形为经过信道以前的波形,由此可以看出,经过一个二进制对称信道以后,一部分波被衰减掉。
图3-30示波器Scope的显示波形
波形显示中第一个波形为经过PCM编码和解码之后的波形,第二个波形为原始波形的锯齿状波形。
经过两个波形的对比可以发现,加入干扰之后恢复出来的波形与原始波形有一定的误差,但是仍然能够看出PCM编译码器的作用。
3.4DPCM编译码系统的设计与仿真分析
DPCM编译码的设计图如图3-31所示:
图3-31DPCM编译码的设计图
对设计图中的部分模块进行设置。
首先对输入信号进行设置,使得产生一个正弦波,如图3-32所示:
图3-32输入信号参数设置图
对DPCM编码模块设置,此模块的作用就是对信号进行差分脉冲编码调制,如图3-33所示:
图3-33DPCM编码模块的参数设置图
对DPCM解码模块设置,此模块的作用就是对经过差分脉冲编码调制的信号进行解码,如图3-34所示:
图3-34DPCM译码模块的参数设置图
设计图中的示波器显示如图3-35所示:
图3-35示波器Scope的显示波形
示波器中显示的第一个波形为原始正弦锯齿状信号,第二个波形为经过DPCM编码系统之后的效果,第三个波形为DPCM译码系统之后的波形,由此可以看出经过编译码之后的波形与原始波形相比还是有一定误差的。
但是定性的分析,DPCM编译码系统的性能要优于PCM编译码系统。
4总结
通过本次课程设计我较系统地掌握了有关PCM脉冲编码调制的设计思路和设计方法,主要对MATLAB的仿真方法与开发环境等有了一定的了解并对其进行测试和应用。
掌握了利用MATLAB集成环境下的Simulink仿真平台,完成对脉冲编码调制系统的建模与仿真分析的基本方法。
以前对PCM编码的了解只是理论层面上的,通过这次课程设计加深了对理论知识的理解,并对其在实际中的应用有了一定的了解。
在课程设计刚开始的时候,由于对MATLAB的使用不太熟悉觉得无从下手使课程设计进展困难。
为此,我借助网络、图书等资源一步一步熟悉MATLAB,并在熟练的同学的帮助下,渐渐摸索找到了方法。
我认识到在以后的学习过程中要时刻保持着刻苦钻研的精神和坚持不懈的毅力。
本此课程设计的成功离不开自