脉冲编码调制PCM实现.docx
- 文档编号:10009505
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:18
- 大小:117.74KB
脉冲编码调制PCM实现.docx
《脉冲编码调制PCM实现.docx》由会员分享,可在线阅读,更多相关《脉冲编码调制PCM实现.docx(18页珍藏版)》请在冰豆网上搜索。
脉冲编码调制PCM实现
西南科技大学
课程设计报告
课程名称:
通信系统课程设计
设计名称:
脉冲编码调制(PCM)实现
姓名:
学号:
班级:
指导教师:
起止日期:
西南科技大学信息工程学院制
课程设计任务书
学生班级:
学生姓名:
学号:
设计名称:
脉冲编码调制(PCM)实现
起止日期:
指导教师:
设计要求:
周期信号
的周期为2,它的区间[0,2],定义如下:
1、PCM均匀量化
(1)为该信号设计一个8级均匀PCM量化器,并且绘制系统的输入—输出关系图;
(2)求出系统的量化编码输出结果;
(3)计算系统的量化误差和量化信噪比;
(4)用16级均匀PCM重做
(1)、
(2)、(3);
(5)用64级均匀PCM重做
(1)、
(2)、(3)。
2、PCM非均匀量化
(1)为该信号设计一个8级非均匀PCM量化器,并且绘制系统的输入—输出关系图;
(2)求出系统的量化编码输出结果;
(3)计算系统的量化误差和量化信噪比;
(4)用16级非均匀PCM重做
(1)、
(2)、(3);
(5)用64级非均匀PCM重做
(1)、
(2)、(3)。
3、使用MATLAB软件编程实现上述功能。
课程设计学生日志
时间
设计内容
6.24-6.25
查阅资料,确定方案
6.26-6.27
设计总体方案
6.27-7.1
分析PCM原理
7.2-7.5
使用matlab编程实现具体功能,完成报告
7.6
答辩
课程设计评语表
指导教师评语:
成绩:
指导教师:
年月日
脉冲编码调制(PCM)实现
一、设计目的和意义
脉冲编码调制(PCM),由法国工程师AlecReeres于1937年最早提出来的,这一概念为数字通信奠定了基础,60年代它开始应用于市内电话网以扩充容量,使已有音频电缆的大部分芯线的传输容量扩大24~48倍。
到70年代中、末期,各国相继把脉码调制成功地应用于同轴电缆通信、微波接力通信、卫星通信和光纤通信等中、大容量传输系统。
80年代初,脉码调制已用于市话中继传输和大容量干线传输以及数字程控交换机,并在用户话机中采用。
因此,PCM已成为数字通信中一个十分基本的问题。
通过此次课程设计,我们不仅能加深理解和巩固理论课上所学的有关PCM编码和解码的基本概念、理论和方法,而且能锻炼我们分析问题和解决问题的能力;同时还能掌握matlab编程一些基本的方法。
二、设计原理
PCM即脉冲编码调制,在通信系统中完成将语音信号数字化功能。
PCM的实现主要包括三个步骤完成:
抽样、量化、编码。
分别完成时间上离散、幅度上离散、及量化信号的二进制表示,就是将模拟信号抽样量化,然后将已量化值变换成代码。
下面将用一个PCM系统的原理框图简要介绍。
图1PCM原理图
在编码器中由冲激脉冲对模拟信号抽样,得到在抽样时刻上的信号抽样值。
这个抽样值仍是模拟量。
在它量化之前,通常由保持电路(holdingcircuit)将其作短暂保存,以便电路有时间对其量化。
在实际电路中,常把抽样和保持电路作在一起,称为抽样保持电路。
图1中的量化把模拟抽样信号变成离散的数字量,然后在编码器中进行二进制编码。
这样,每个二进制码组就代表一个量化后的信号抽样值。
图1中的解码器的原理和编码过程相反。
其中,量化与编码的组合称为模/数变换器(A/D变换器);译码与低通滤波的组合称为数/模变换器(D/A变换器)。
1、抽样
所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。
该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。
它的抽样速率的下限是由抽样定理确定的。
2、量化
从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。
如图2所示,量化器Q输出L个量化值
,k=1,2,3,…,L。
常称为重建电平或量化电平。
当量化器输入信号幅度
落在
与
之间时,量化器输出电平为
。
这个量化过程可以表达为:
这里
称为分层电平或判决阈值。
通常
称为量化间隔。
图2模拟信号的量化
模拟信号的量化分为均匀量化和非均匀量化。
由于均匀量化存在的主要缺点是:
无论抽样值大小如何,量化噪声的均方根值都固定不变。
因此,当信号
较小时,则信号量化噪声功率比也就很小,这样,对于弱信号时的量化信噪比就难以达到给定的要求。
通常,把满足信噪比要求的输入信号取值范围定义为动态范围,可见,均匀量化时的信号动态范围将受到较大的限制。
为了克服这个缺点,实际中,往往采用非均匀量化。
非均匀量化是根据信号的不同区间来确定量化间隔的。
对于信号取值小的区间,其量化间隔
也小;反之,量化间隔就大。
它与均匀量化相比,有两个突出的优点。
首先,当输入量化器的信号具有非均匀分布的概率密度(实际中常常是这样)时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。
因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的量化信噪比。
3、编码
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。
当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。
在现有的编码方法中,若按编码的速度来分,大致可分为两大类:
低速编码和高速编码。
通信中一般都采用第二类。
编码器的种类大体上可以归结为三类:
逐次比较型、折叠级联型、混合型。
在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。
下面结合13折线的量化来加以说明。
实际中,非均匀量化的实际方法通常是将抽样值通过压缩再进行均匀量化。
通常使用的压缩器中,大多采用对数式压缩。
广泛采用的两种对数压缩律是
压缩律和A压缩律。
美国采用
律压缩,我国和欧洲各国均采用A压缩律,因此,PCM编码方式采用的也是A压缩律。
A律压扩特性是连续曲线,A值不同压扩特性亦不同,在电路上实现这样的函数规律是相当复杂的。
实际中,往往都采用近似于A律函数规律的13折线(A=87.6)的压扩特性。
这样,它基本上保持了连续压扩特性曲线的优点,又便于用数字电路实现,本设计中所用到的PCM编码正是采用这种压扩特性来进行编码的。
二进制码可以经受较高的噪声电平的干扰,并易于再生,因此PCM中一般采用二进制码。
对于Q个量化电平,可以用k位二进制码来表示,称其中每一种组合为一个码字。
在点对点之间通信或短距离通信中,采用k=7位码已基本能满足质量要求。
而对于干线远程的全网通信,一般要经过多次转接,要有较高的质量要求,目前国际上多采用8位编码PCM设备。
码型指的是把量化后的所有量化级,按其量化电平的大小次序排列起来,并列出各对应的码字,这种对应关系的整体就称为码型。
在PCM中常用的码型有自然二进制码、折叠二进制码和反射二进制码(又称格雷码)。
目前国际上普遍采用8位非线性编码。
例如PCM30/32路终端机中最大输入信号幅度对应4096个量化单位(最小的量化间隔称为一个量化单位),在4096单位的输入幅度范围内,被分成256个量化级,因此须用8位码表示每一个量化级。
用于13折线A律特性的8位非线性编码的码组结构如下表所示:
表18位非线性编码的码组结构
极性码
段落码
段内码
M1
M2M3M4
M5M6M7M8
其中,第1位码M1的数值“1”或“0”分别代表信号的正、负极性,称为极性码。
从折叠二进制码的规律可知,对于两个极性不同,但绝对值相同的样值脉冲,用折叠码表示时,除极性码M1不同外,其余几位码是完全一样的。
因此在编码过程中,只要将样值脉冲的极性判出后,编码器便是以样值脉冲的绝对值进行量化和输出码组的。
这样只要考虑13折线中对应于正输入信号的8段折线就行了。
这8段折线共包含128个量化级,正好用剩下的7位码(M2,…,M8)就能表示出来。
三、详细设计步骤
1、均匀PCM量化器
因为输入信号为一周期信号,其周期为2,频率为0.5,采用低通抽样定理,抽样频率≥1,抽样间隔≤1。
这里取抽样间隔dt=0.5。
因为信号的幅度为[0,1],所以量化器的量化范围选为[0,1],8级均匀PCM量化的量化间隔为1/8,量化电平取量化间隔的中间值:
0.06250.18750.31250.43750.56250.68750.81250.9375。
最大量化误差为1/16=0.0625。
2、使用matlab软件编程实现均匀PCM量化器
具体程序见附件一.
3、非均匀PCM量化器
采用A律非均匀量化。
先进行非线性压缩,然后进行均匀量化。
对于给定的信号,因为信号的幅度为[0,1],所以A律压扩可以仅考虑大于0的情况,且不用进行归一化处理。
量化器的量化范围选为[0,1]。
均匀量化采用上述均匀量化器,同样仅考虑大于0的情况。
为了能够体现非均匀量化的效果,抽样间隔提高到0.1。
A律压缩:
A律扩张:
4、使用matlab软件编程实现非均匀PCM量化器
具体程序见附件二.
四、设计结果及分析
1、PCM均匀量化
(1)8级均匀量化
图3输入—输出关系
系统量化信噪比:
18.8536
系统量化误差:
-0.06250.06250.06250.0625-0.0625
系统量化编码输出结果:
000011111011000
(2)16级均匀量化
图4输入—输出关系
系统量化信噪比:
24.8742
系统量化误差:
-0.03130.03130.03130.0313-0.0313
系统量化编码输出结果
00000111111101110000
(3)64级均匀量化
图5输入—输出关系
系统量化信噪比:
36.9154
系统量化误差:
-0.00780.00780.00780.0078-0.0078
系统量化编码输出结果:
000000011111111111011111000000
2、PCM非均匀量化
(1)8级非均匀量化
图6输入—输出关系
系统量化信噪比:
14.3193
系统量化误差:
-0.00590.00870.0192-0.05840.04160.1416-0.1103-0.01030.08970.18970.28970.18970.0897-0.0103-0.11030.14160.0416-0.05840.01920.0087-0.0059
系统量化编码输出结果:
000100101110110110111111111111111111111111111110110110101100000
(2)16级非均匀量化
图7输入—输出关系
系统量化信噪比:
19.9027
系统量化误差:
-0.0050-0.0083-0.0146-0.0021-0.02530.07470.00130.1013-0.04280.05720.15720.0572-0.04280.10130.00130.0747-0.0253-0.0021-0.0146-0.0083-0.0050
系统量化编码输出结果:
000010011011110011011101111011101111111111111111111111101110110111011100101110010000
(3)64级非均匀量化
图8输入—输出关系
系统量化信噪比:
30.7374
系统量化误差:
-0.0005-0.0037-0.00560.0106-0.00750.0165-0.02480.0194-0.00750.02040.04190.0204-0.00750.0194-0.02480.0165-0.00750.0106-0.0056-0.0037-0.0005
系统量化编码输出结果:
000000100101101101110001110101110111111010111011111101111110111111111110111101111011111010110111110101110001101101100101000000
3、结果分析
PCM均匀量化中,随着量化级数的增加,量化电平越接近实际信号,量化误差越小,量化信噪比越高。
PCM非均匀量化中,从量化误差来看,非均匀量化在信号幅度较小时,量化误差明显小于均匀量化,但是在信号幅度较大时,其量化误差明显大于均匀量化。
对于信号幅度分布均匀的信号,就是题目所述的信号,非均匀量化的平均量化误差要大于均匀量化,所以从量化信噪比来看,非均匀量化的量化信噪比小于均匀量化。
五、体会
通过此次课程设计,我不仅加深理解和巩固理论课上所学的有关PCM编码和解码的基本概念、理论和方法,而且还锻炼了我分析问题和解决问题的能力;同时还掌握了matlab编程一些基本的方法。
对于通信系统仿真的编程,需要对通信原理有较为深刻的理解。
因为题目所给函数的特殊性,一些问题被简化了,比如A律的负数部分,初始信号的归一化问题。
所以实现起来不是特别困难。
六、参考文献
[1]曹志刚、钱亚生.现代通信原理.清华大学出版社,1992
[2]罗建军、杨琦.精讲多练MATLAB(第2版).西安交通大学出版社,2010
[3]周建兴、岂兴明、矫津毅、常春藤.MATLAB从入门到精通.人民邮电出版社,2008
%均匀PCM量化器
n=input('请输入量化级数:
');
endtime=2;%定义信号周期为2
dt=0.5;%定义抽样间隔为0.5
t=0:
dt:
endtime;%划分数组
a=zeros(size(t));
fortt=1:
1/dt
a(tt+[0:
endtime/2-1]*(2/dt))=t(tt);%当0<=t<1时,x(t)=t
end
fortt=1/dt+1:
2/dt
a(tt+[0:
endtime/2-1]*(2/dt))=2-t(tt);%当1<=t<2时,x(t)=-t+2
end
amax=max(abs(a));%max求最大值,abs求绝对值
a_quan=a/amax;%归一化
b_quan=a_quan;%赋初值
d=1/n;%求出量化间隔
q=d.*[1:
n];
q=q-d/2;%求出量化电平
%进行量化
fori=1:
n
%定位第i个量化间隔码子
a_quan(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2)))=...
q(i).*ones(1,length(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2))));
%赋值为相应的量化电平
b_quan(find(a_quan==q(i)))=(i-1).*ones(1,length(find(a_quan==q(i))));
end
a_quan=a_quan*amax;%恢复原值(量化后)
%编码
nu=ceil(log2(n));%ceil返回大于或者等于指定表达式的最小整数
code=zeros(length(a),nu);
fori=1:
length(a)
forj=nu:
-1:
0
if(fix(b_quan(i)/(2^j))==1)%fix向最靠近0取整
code(i,(nu-j))=1;
b_quan(i)=b_quan(i)-2^j;
end
end
end
sqnr=20*log10(norm(a)/norm(a-a_quan));%求量化信噪比
disp('系统的量化信噪比:
')
disp(sqnr)
disp('系统的量化误差:
')
disp(a-a_quan)
disp('系统的量化编码结果:
')
disp(code)
plot(t,a,'r-')
holdon;
plot(t,a_quan,'b--')
%非均匀PCM量化器
n=input('请输入量化级数:
');
%产生题目要求的函数
endtime=2;%定义信号周期为2
dt=0.1;%定义抽样间隔为0.1
t=0:
dt:
endtime;
a=zeros(size(t));%产生一个长度为N的全0序列
fortt=1:
1/dt
a(tt+[0:
endtime/2-1]*(2/dt))=t(tt);%当0<=t<1时,x(t)=t
end
fortt=1/dt+1:
2/dt
a(tt+[0:
endtime/2-1]*(2/dt))=2-t(tt);%当1<=t<2时,x(t)=-t+2
end
%A率非线性
A=87.56;
amax=max(abs(a));
c=zeros(size(a));
fori=1:
length(a);
if((a(i)/amax)<=1/A)
c(i)=A*a(i)/(1+log(A));
end
if((a(i)/amax)>1/A)
c(i)=(1+log(A*a(i)))/(1+log(A));
end
end
%非均匀量化
c_quan=c;
b_quan=c_quan;
d=1/n;%量化间隔
q=d.*[1:
n];
q=q-d/2;%量化电平
fori=1:
n
%定位第i个量化间隔码子
c_quan(find((q(i)-d/2<=c_quan)&(c_quan<=q(i)+d/2)))=...
q(i).*ones(1,length(find((q(i)-d/2<=c_quan)&(c_quan<=q(i)+d/2))));
%赋值为相应的量化电平
b_quan(find(c_quan==q(i)))=(i-1).*ones(1,length(find(c_quan==q(i))));
end
%编码
nu=ceil(log2(n));
code=zeros(length(a),nu);
fori=1:
length(a)
forj=nu:
-1:
0
if(fix(b_quan(i)/(2^j))==1)
code(i,(nu-j))=1;
b_quan(i)=b_quan(i)-2^j;
end
end
end
%A率非线性的逆运算
fori=1:
length(c_quan);
if((c_quan(i))<=1/(1+log(A)))
a_quan(i)=(1+log(A))*c_quan(i)/A;
end
if((c_quan(i))>1/A)
a_quan(i)=exp((1+log(A))*c_quan(i)-1)/A;
end
end
sqnr=20*log10(norm(a)/norm(a-a_quan));%求量化信噪比
disp('系统的量化信噪比:
')
disp(sqnr)
disp('系统的量化误差:
')
disp(a-a_quan)
disp('系统的量化编码输出结果:
')
disp(code)
plot(t,a,'r-')
holdon;
plot(t,a_quan,'b--')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 脉冲 编码 调制 PCM 实现