摘要本文是关于一个数字语音通信系统的设计与实现,首先介绍数字通信系统的基本原理,然后分别从信源编码、信道编码和数字调制与解调三个方面介绍本系统的设计与实现,最后通过Matlab程序分模块仿真,完成通信系统的实现。本系统信源编码中脉冲编码调制采用非均匀量化,A律压缩13折线法编码,非均匀量可以得到较高的信噪比并且非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。信道编码采用循环码,循环码的编码和解码设备都不太复杂,而且纠错的能力较强。在数字调制中采取了二进制频移键控调制方式,此方法利用数字基带信号控制在波的频率来传送信息,解调时用了相干解调,方法简便,容易实现。关键字:信源编码与译码信道编码与译码数字调制与解调1.背景介绍随着数字通信系统的发展,语言通信已成为人们日常生活的一部分,手机,电话和网络语音通信等已经逐渐深入人们的日常生活,通信技术是信息技术中极重要的组成部分。从广义说,各种信息的传递均可称之为通信。但由于现代信息的内容极为广泛,因而人们并不把所有信息传递纳入通信的范围。通常只把语音、文字、数据、图像等信息的传递和传播称为通信。面向公众的单向通信,如报纸、广播、电视便不包括在内。但这种单向传播方式,由于通信技术的发展,也在发生变化。现代通信技术的主要内容及发展方向,是以光纤通信为主体调卫星通信、无线电通信为辅助的宽带化、综合化(有的称数字化)、个人化、智能化的通信网络技术。本设计基于数字通信系统设计的基本原理,通过信源编码与译码,信道编码与译码以及数字调制与解调等模块的设计以实现语音通信。2.数字通信系统基本原理2.1数字通信系统的模型图1数字通信系统的模型2.2信息源它的作用是把各种消息转换为原始电信号,信源分为模拟信源和数字信源。本文的输入信号采用模拟信源,通过A/D转换把输入的模拟信号转换为数字信号,模拟信号转化为数字信号包括三个步骤:抽样、量化和编码。模拟信号首先被抽样。通常抽样是按照等时间间隔进行的,虽然在理论上并不是必须如此的。模拟信号被抽样后,成为抽样信号,它在时间上是离散的,但是其取值仍然是连续的,所以是离散模拟信号。第二步是量化。量化的结果使抽样信号变成量化信号,其取值是离散的。故量化信号已是数字信号了,它可以看成是多进制的数字脉冲信号。第三步是编码。第一步:抽样的定理。设一个连续模拟信号m(t)中的最高频率Hf且带宽受到限制时,则以间隔时间为1/2HTf的周期性冲击脉冲对它抽样时,信号不发生混叠,即奈奎斯特的定理。第二步:量化。模拟信号的抽样值为m(KT),其中T是抽样周期,k是整数。量化原理公式:,()qimkTqi-1i当mm(kT)m,在非均匀量化时,量化间隔是随信号抽样值的不同而变化的。信号抽样值小时,量化间隔也小;信号抽样值大时,量化间隔也大。非均匀量化的实现方法通常是在进行量化之前,先将信号抽样值压缩,再进行均匀量化。其压缩是用一个非线性电路将输入电压x变换成输出电压y:()xyf信息源信源编码器信道编码器数字调制器信道数字解调器信道译码器信源译码器受信者噪声源第三步:脉冲编码调制。通常把从模拟信号抽样、量化,直到变换成为二进制符号的过程,称为脉冲编码调制。2.3信源编码与译码它的基本功能一是提高信息传输的有效性,即通过某种数据压缩技术设法减少码元数目和降低码元速率。码元速率决定传输所占的带宽,而传输带宽反映了通信的有效性。二是完成模/数(A/D)转换,即当信息源给出的是模拟信号时,信源编码器将其转换成数字信号,以实现模拟信号的数字化传输。信源译码是信源编码的逆过程。2.4信道编码与译码信道编码的目的是增强数字信号的抗干扰能力。数字信号是信道传输时受到噪声等影响后将会引起差错。为了减小差错,信道编码器对传输的信息码元按一定的规则加入保护成分(监督元),组成所谓的“抗干扰编码”。接收端的信道译码器按相应的逆规则进行解码,从中发现错误或纠正错误,提高通信系统的可靠性。2.6数字调制与解调二进制频移键控,是用载波的频率来携带二进制信息的调制方式。也就是说,0值对应一个频率f1,1对应另一个频率f2。二进制频移键控可以采用模拟信号调频电路来实现;但更容易实现的方法是键控法。由于二进制频移键控已调信号可以看作两个不同载波的幅度键控已调信号之和,它的频带宽度是两倍的基带信号宽度(B)和|f2-f1|之和,2FSK键控法理论框图如图所示。选择开关载波1输出二进制信息载波2图22FSK调制器2FSK的解调有很多方法,本系统采用相干解调,原理图3如图所示图32FSK非相干解调3.脉冲编码调制3.1脉冲编码调制脉冲编码调制(pulsecodemodulation,PCM)是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的编码系统。PCM的编码原理比较直观和简单,下图为PCM系统的原理框图:PCM通信系统方框图图中,输入的模拟信号m(t)经抽样、量化、编码后变成了数字信号(PCM信号),经信道传输到达接收端,由译码器恢复出抽样值序列,再由低通滤波器滤出模拟基带信号m(t)。通常,将量化与编码的组合称为模/数变换器(A/D变换器);而译码与低通滤波的组合称为数/模变换器(D/A变换器)。前者完成由模拟信号到数字信号的变换,后者则相反,即完成数字信号到模拟信号的变换。PCM在通信系统中完成将语音信号数字化功能,它的实现主要包括三个步带通滤波器带通滤波器相乘器相乘器低通滤波器低通滤波器抽样判决器Cosω1tCosω2tω1ω2抽样脉冲输出输入骤完成:抽样、量化、编码。分别完成时间上离散、幅度上离散、及量化信号的二进制表示。根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和μ律方式,我国采用了A律方式,由于A律压缩实现复杂,常使用13折线法编码,采用非均匀量化PCM编码。3.2PCM编码原理3.2.1抽样所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。它的抽样速率的下限是由抽样定理确定的。3.2.2量化量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。如下图所示,量化器输出L个量化值ky,k=1,2,3,…,L。ky常称为重建电平或量化电平。当量化器输入信号幅度x落在kx与1kx之间时,量化器输出电平为ky。这个量化过程可以表达为:1(),1,2,3,,kkkyQxQxxxykL这里kx称为分层电平或判决阈值。通常kkkxx1称为量化间隔。模拟信号的量化分为均匀量化和非均匀量化。(a).均匀量化:用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的量化间隔。为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。为了克服这个不足,就出现了非均匀量化的方法。模拟入yx量化器量化值(b).非均匀量化:非均匀量化是根据信号的不同区间来确定量化间隔的。对于信号取值小的区间,其量化间隔v也小;反之,量化间隔就大。它与均匀量化相比,有两个突出的优点。首先,当输入量化器的信号具有非均匀分布的概率密度(实际中常常是这样)时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的量化信噪比。实际中,非均匀量化的实际方法通常是将抽样值通过压缩再进行均匀量化。通常使用的压缩器中,大多采用对数式压缩。广泛采用的两种对数压缩律是压缩律和A压缩律。美国采用压缩律,我国和欧洲各国均采用A压缩律,所谓A压缩律也就是压缩器具有如下特性的压缩律:AXAAxy10,ln1,11,ln1ln1XAAAxy。由于A律压缩实现复杂,常使用13折线法编码,压扩特性图如下图所示:A律函数13折线压扩特性图这样,它基本上保持了连续压扩特性曲线的优点,又便于用数字电路实现,本设计中所用到的PCM编码正是采用这种压扩特性来进行编码的。y0818283848586871x012816.6016.3014.15179.7193.3198.111按折线分段时的x012816413211618141211段落12345678斜率161684212141表113折线时的x值与计算x值的比较表1中第二行的值是根据时计算得到的,第三行的值是13折线分段时的值。可见,13折线各段落的分界点与曲线十分逼近,同时按2的幂次分割有利于数字化。3.2.3.编码所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。在现有的编码方法中,若按编码的速度来分,大致可分为两大类:低速编码和高速编码。通信中一般都采用第二类。编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。下面结合13折线的量化来加以说明。段落序号段落码量化级段内码8111151111141110711013110112110061011110111010105100910018100040117011160110301050101401002001300112001010001000100000表2段落码表3段内码在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。具体的做法是:用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。其它四位表示段内码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。这样处理的结果,8个段落被划分成27=128个量化级。段落码和8个段落之间的关系如表2所示;段内码与16个量化级之间的关系见表3。3.3PCM脉冲编码调制的仿真3.3.1PCM抽样的仿真PCM抽样的MATLAB程序设计按如下步骤进行:(1)确定输入的模拟信号为sa(200t);(2)根据输入的模拟信号,确定抽样频率,对输入信号进行抽样,并将正常抽样和会产生失真的抽样进行对比,对抽样定理加以验证;(3)编写程序,画出满足采样定理和不满足的时、频域图形。MATLAB源程序:functionsample()t0=10;%定义时间长度ts=0.001;fs=1/ts;t=[-t0/2:ts:t0/2];%定义时间序列df=0.5;%定义频率分辨率x=sin(200*t);m=x./(200*t+eps);w=t0/(2*ts)+1;%确定t=0的点m(w)=1;%修正t=0点的信号值m=m.*m;[M,mn,dfy]=fft_seq(m,ts,df);%傅立叶变换M=M/fs;f=[0:dfy:dfy*length(mn)-dfy]-fs/2;%定义频率序列figure(1)subplot(2,1,1);plot(t,m);xlabel('时间');ylabel('幅值');title('原始信号(fh=200/2piHz)的波形');axis([-0.15,0.15,0,1.5]);subplot(2,1,2);plot(f,abs(fftshift(M)));xlabel('频率');ylabel('幅值');axis([-500,500,0,0.03]);title('原始信号的频谱');t0=10;%信号持续的时间ts1=0.005;%满足