Abstract
Combinedwiththesampling,quantization,codingtheoryofPCM,usingMATLABsoftwareprogrammingandgraphics,thecompletionofthepulsecodemodulation(PCM>modelingandsimulationanalysissystem.Thebasicmethodistoestablishthemodelofcommunicationsystemoflearningthroughtheuseofcomputerandbasicskills,learningbymeansofsimulationofcommunicationsystemofbasictheoryandbasicalgorithmareverified.Thebasicmethodofusingcommunicationsystemsimulationsoftwaretolearnoftheexisting,tosolvecommunicationproblemsusingMatlabsoftware.
Keywords:
pulsecodemodulation(PCM>withuniformandnon-uniformquantizationinMATLABsimulation
1背景知识
1.1PCM原理及仿真
脉冲编码调制就是把一个时间,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。
脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程。
1.1.1脉冲编码调制
脉冲编码调制(pulsecodemodulation,PCM是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的编码系统。
PCM的
实现主要包括三个步骤完成:
抽样、量化、编码。
分别完成时间上离散、幅度上离散、及量化信号的二进制表示。
根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和卩律方式,我国采用了A律方式,因为A律压缩实现复杂,常使用13折线法编码,下图为PCMS统的原理框图:
图中,输入的模拟信号m(t>经抽样、量化、编码后变成了数字信号(PCM信号〉,经信道传输到达接收端,由译码器恢复出抽样值序列,再由低通滤波器滤出模拟基带信号m(t>。
通常,将量化与编码的组合称为模/数变换器vA/D变换器〉;而译码与低通滤波的组合称为数/模变换器(D/A变换器〉。
前者完成由模拟信号到数字信号的变换,后者则相反,即完成数字信号到模拟信号的变换。
PCM在通信系统中完成将语音信号数字化功能,它的实现主要包括三个步骤完成:
抽样、量化、编码。
分别完成时间上离散、幅度上离散、及量化信号的二进制表示。
根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和卩律方式,我国采用了A律方式,因为A律压缩实现复杂,常使用13折线法编码,采用非均匀量化PCMS码。
1.1.2PCM编码原理
1>抽样
所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。
该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。
它的抽样速率的下限是由抽样定理确定的。
在一个频带限制在<0,fh)内的时间连续信号f<t),如果以1/2fh的时间间隔对它进行抽样,那么根据这些抽样值就能完全恢复原信号。
或者说,如果一个连续信号f<t)的频谱中最高频率不超过fh,当抽样频率fS>2fh时,抽样后的信号就包含原
连续的全部信息。
抽样定理在实际应用中应注意在抽样前后模拟信号进行滤波,把高于二分之一抽样频率的频率滤掉。
这是抽样中必不可少的步骤。
2>量化
量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。
从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。
一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。
如下图所示,量化器输出L个量化值,k=1,2,3,…,L。
常称为重建电平或量化电平。
当量化器输入信号幅度x落在与之间时,量化器输出电平为」。
这个量化过程可以表达为:
!
1日1I,
量化值
图1-1
模拟信号的量化分为均匀量化和非均匀量化。
均匀量化:
用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的量化间隔。
为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。
但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。
为了克服这个不足,就出现了非均匀量化的方法。
非均匀量化:
非均匀量化是根据信号的不同区间来确定量化间隔的。
对于信号取值小的区间,其量化间隔1-也小;反之,量化间隔就大。
它与均匀量化相比,有两个突出
的优点。
首先,当输入量化器的信号具有非均匀分布的概率密度<实际中常常是这样)
时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量
化时,量化噪声功率的均方根值基本上与信号抽样值成比例。
因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的量化信噪比。
实际中,非均匀量化的实际方法通常是将抽样值通过压缩再进行均匀量化。
通常使
用的压缩器中,大多采用对数式压缩。
广泛采用的两种对数压缩律是压缩律和A压缩律
。
美国采用压缩律,我国和欧洲各国均采用A压缩律,所谓A压缩律也就是压缩器具有如下特性的压缩律:
因为A律压缩实现复杂,常使用13折线法编码,压扩特性图如下图所示:
L32
64
图1-2A律函数13折线压扩特性图
这样,它基本上保持了连续压扩特性曲线的优点,又便于用数字电路实现,本设计中所用到的PCM编码正是采用这种压扩特性来进行编码的。
表1-113折线时的值与计算」值的比较
0
X
i
*
i
1
0
0
0
叫
E
]
]
□
1
按折线
分段时的3
0
0
0
1
3
1
段落
1
2
3
4
5
6
7
8
斜率
16
16
8
4
2
1
E
—
0
表1中第二行的值是根据时计算得到的,第三行的值是13折线分段时的值。
可见,13折线各段落的分界点与曲线十分逼近,同时按2的幕次分割有利于数字化。
3>编码
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。
当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。
在现有的编码方法中,若按编码的速度来分,大致可分为两大类:
低速编码和高速编码。
通信中一般都采用第二类。
编码器的种类大体上可以归结为三类:
逐次比较型、折叠级联型、混合型。
在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。
下面结合13折线的量化来加以说明。
表1-2段落码表1-3段内码
0
0000
PCM编译码器的实现可以借鉴单片PCM编码器集成芯片,如:
TP3067ACD22357
等。
单芯片工作时只需给出外围的时序电路即可实现,考虑到实现细节,仿真时将PCM
编译码器分为编码器和译码器模块分别实现,在13折线法中,无论输入信号是正是负,
均按8段折线<8个段落)进行编码。
若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位<第二位至第八位)则表示抽样量化值的
绝对大小。
具体的做法是:
用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。
其它四位表示段内码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。
这样处理的结果,8个段落被划分成27=128个量化级。
段落码和8个段落之间的关系如表2所示;段内码与16个量化级之间的关系见表3。
4)译码
PCMt码器是实现PCMS码的逆系统。
其中各模块功能如下:
D/A转换器:
用来实现与A/D转换相反的过程,实现数字量转化为模拟量,从而达到译码最基本的要求,也就是最起码的步骤。
瞬时扩张器:
实现与瞬时压缩器相反的功能,因为采用A律压缩,扩张也必须采用A律
瞬时扩张器。
低通滤波器:
因为采样脉冲不可能是理想冲激函数会引入孔径失真,量化时也会带来量化噪声,及信号再生时引入的定时抖动失真,需要对再生信号进行幅度及相位的补偿,同时滤除高频分量,在这里使用与编码模块中相同的低通滤波器。
2M文件仿真
程序如下:
clear。
t=-0.1:
0.001:
0.1
。
%
该参数用于画原信号图形
f=sin(3*pi*90*t>+cos(3*pi*37*t>
。
%原函数,由t的取值可得f有201个值
subplot(3,1,1>
%matlab
矩阵区域设置
plot(t,f>。
%
画出米原函数序列图
title('原信号'>
xlabel('时间t(s>'>。
T=1/500。
%抽样周期,500是抽样频率,可以调整抽样频率
gs=-0.1:
T:
0.1。
fg=sin(2*pi*60*gs>+cos(2*pi*25*gs>。
%对信号进行以T周期抽样
subplot(3,1,2>
stem(gs,fg>%画图
title('采样信号'>。
xlabel('时间t(s>'>;
2-1
clearall。
closeall。
%建立原信号
T=0.002。
%取时间间隔为0.01
t=-0.1:
T:
0.1。
%时域间隔dt为间隔从0到10画图
xt=sin(3*pi*90*t>+cos(3*pi*37*t>。
%xt方程%采样:
时间连续信号变为时间离散模拟信号
fs=800。
%抽样fs>=2fc,每秒钟内的抽样点数目将等于或大于2fc个
sdt=1/fs。
%频域采样间隔0.002
t1=-0.1:
sdt:
0.1。
%以sdt为间隔从-0.1到0.1画图
st=sin(2*pi*60*t1>+cos(2*pi*25*t1>。
%离散的抽样函数
figure(1>。
subplot(3,1,1>。
plot(t1,st>。
title('原始信号'>
gridonsubplot(3,1,2>。
stem(t1,st,'.'>。
title('抽样信号'>gridonn=length(st>。
M=max(st>。
A=(st/M>*2048。
%画出原始的信号图,以好对比
%画背景
%这里画出来的是抽样后的离散图
%画背景%量化过程
%取st的长度为n
%a1(极性码>a2a3a4<#落码)a5a6a7a8段内电平码)
code=zeros(i,8>。
%极性码a1
fori=1:
n
ifA(i>>=0
code(i,1>=1。
else
code(i,1>=0。
end
%产生i*8的零矩阵
%if循环语句
%代表正值
%代表负值
ifabs(A(i>>>=0&&abs(A(i>><16
code(i,2>=0。
code(i,3>=0。
code(i,4>=0。
step=1。
start=0。
elseif16<=abs(A(i>>&&abs(A(i>><32code(i,2>=0。
code(i,3>=0。
code(i,4>=1。
step=1。
start=16。
elseif32<=abs(A(i>>&&abs(A(i>><64
code(i,2>=0。
code(i,3>=1。
code(i,4>=0。
step=2。
start=32。
elseif64<=abs(A(i>>&&abs(A(i>><128
code(i,2>=0。
code(i,3>=1。
code(i,4>=1。
step=4start=64。
elseif128<=abs(A(i>>&&abs(A(i>><256code(i,2>=1。
code(i,3>=0。
code(i,4>=0。
step=8。
start=128。
elseif256<=abs(A(i>>&&abs(A(i>><512code(i,2>=1。
code(i,3>=0。
code(i,4>=1。
step=16。
start=256。
elseif512<=abs(A(i>>&&abs(A(i>><1024code(i,2>=1。
code(i,3>=1。
code(i,4>=0。
step=32。
start=512。
elseif1024<=abs(A(i>>&&abs(A(i>><2048
code(i,2>=1。
code(i,3>=1。
code(i,4>=1。
step=64。
start=1024。
end
B=floor((abs(A(i»-start>/step>。
%段内码编码floor取整(四舍五入>
t=dec2bin(B,4>-48。
%dec2bin定义将B变为4位2进制码,-48改变格式
code(i,5:
8>=t(1:
4>。
%输出段内码
end
code=reshape(code',1,8*n>%reshap代表从新塑形
code
subplot(3,1,3>。
stem(code,'.'>。
axis([16401]>。
%这里我们先取前面八个点编码输出,输出时候有64个点
title('编码信号'>。
gridon
2-2
3Simulink仿真
3.1原始模拟信号电路图及仿真图
3-1原始模拟信号电路图
两个正弦波的参数设置分别为:
3-2正弦波参数设置
SourceBlockParameters:
SineWavel
Usethessjnple—basedsine1ypeifrLXunericalproblemsdue
rxirmLirigforla.rge1:
Imes(e«g.overflowinaibsolute
■time)occur.
OKCancel旦elp
3-3正弦波参数设置
所得波形为
3-4
3.2PCM编码器电路设计
3-413折线近似的PCM编码器测试模型和仿真结果
测试模型和仿真结果如上图所示。
其中以Saturation作为限幅器,将输入信号幅度值限
制在PCM编码的定义范围内,以A-LawCompressor作压缩器,Relay模块的门限值设置为0,其输出即可作为PCM编码输出的最高位一一极性码。
样值取值绝对值后,用增益模块将样值放大到0-127,然后用间隔为1的Quantizer进行四舍五入取整,最后将整数编码为7位二进制序列,作为PCM编码的低7位。
可以将上图中Constant和Displayv不含)之间的模块封装一个PCMS码子系统备用。
其中各模块的具体参数设置如下:
W*1SourceBlockParameteConstant
Cpri3±mrvt
Ou±purt±h&coitls±^xurtspecifiedby±he*Com.s'i:
an±^FalitiePpar*ajn.e±eir*IT
Constantvalue'is包vec^torian.d'Interpretveclorp^riamei;ersasl~DrIson,1resttheccnsXarntvalmeasa1—DarraysOtherwise^cutputamatrixwiththe畫51七dijnensionsasHHeconstantv^ilue.
Miain|SxgnalAlc±ributesConsl:
anXvalue:
1270
151]Interprei:
vee^torparametersas1—D
Sajiup1ingjnodLs:
Scunp1clb:
nsed
Santp1e~t土meg
inf
OK|Cancel
旦elp
3-5Constant
r
dfFunctionBlockParameters:
Saturation
r
FunctionBlockParameters:
Abw
3-7Abs
羽FunctionBlockParameters;A-LawCompressor
A~LawCompressor(mask)(link)
CompresstheinputsignalusingA-lawcompression.
Theinputcanhaveanyshapeorframestatus.Thisblockprocesseseachvectorelementindependently,
Paranetw"
Avalue:
ST.6
Peaksignalmagnitude:
3-8A-LowCompressor
3-9Gain
3-10Quantizer
厂
QKI£ang:
L|HelpApply
3-11IntegertoBitConverter
3-12Display
Relay
Outputthespecified'qh'or'off?
valuebyconpariTigtheinput±othespecifiedthresholds.Theon/offstateoftherelayisnotaffectedbyinputvreentheupperandlowerlimits^
MainSignalAttribu±es
Switchonpoint:
eps
Switchoffpoint:
eps
Outpirtwhenon:
1
Outputwhenoff:
0
|丿Enablezero—crossingdefection
Sampletime(-1forinherited):
0.001
OKCancelHelpApply
3-13Relay
将该系统进行封装
•Iuntitled/Subsysteni*「口回
3-15封装之后的PCM编码子系统图标
3.3
PCM解码器电路设计
3-1613折线近似的PCM解码器测试模型和仿真结
测试模型和仿真结果如上图所示,其中PCM编码子系统是编码器封装之后的。
PCM解码器中首先分离并行数据中的最高位<极性码)和7位数据,然后将7位数据转换位整数值,再进行归一化,扩张后与双极性的极性码相乘得出解码值。
可以将该模型中Ini
Out1右端和Display左端的部分封装为一个PCM解码子系统备用
其中各模块的具体参数设置如下:
广
Constant
OutputtheconstantspecifiedbythefConstantvalue'parameter.IfConstantvalue1isaviectorand'Interpretvectorparanelersas1—Drison,treattheconstantvalueasa1-Darray*Otherwise,outputamatrixwiththesamedimensiorLSa妥theconstantvalue・
Parameters
Numberof口utputs:
3-19Mux
3-20Relay
BittoIntegerConverter(mask)(lirdk)
Ma.pavec±orofbitsi:
o若lcorrespondxzig