模拟信号的数字化PCM编码设计文档格式.docx
《模拟信号的数字化PCM编码设计文档格式.docx》由会员分享,可在线阅读,更多相关《模拟信号的数字化PCM编码设计文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
本次课程设计主要是做量化、编码、信道传输、译码四部分
PCM系统的原理:
脉码调制—将模拟调制信号的采样值变换为脉冲码组。
PCM编码包括如三个过程。
PCM系统
m(t)mS(t)mq(t)P0(t)m’S(t)
m’(t)
1.抽样
所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。
该模拟信号经过抽样后还应当包含原信号中所有的信息,也就是说能无失真的恢复原模拟信号。
它的抽样速率的下限是由抽样定理确定的。
1.1抽样定理
设一个频带限制的(0,fH)Hz内的时间连续信号m(t)如果它不少于2fH次每秒的速率进行抽样,则m(t)可以由抽样值完全确定。
抽样定理指出,由样值序列无失真恢复原信号的条件是fS≥2fh,为了满足抽样定理,要求模拟信号的频谱限制在0~fh之内(fh为模拟信号的最高频率)。
为此,在抽样之前,先设置一个前置低通滤波器,将模拟信号的带宽限制在fh以下,如果前置低通滤波器特性不良或者抽样频率过低都会产生折叠噪声。
抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。
抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。
另外要注意的是,采样间隔的周期要足够的小,采样率要做够的大,要不然会出现如下图所示的混叠现象,一般情况下TsWs=2π,Wn>
2Wm。
1.2抽样过程
如图所示:
2.量化
所谓量化就是把一个连续函数的无限个数值的集合映射为一个离散函数的有限个数值的集合。
量化分为均匀量化和非均匀量化。
2.1量化过程:
---mq(t)及mS(t)的近似程度用下参数衡量:
2.2分类
2.2.1均匀量化
定义:
所谓均匀量化就是指量化间隔相等的量化。
分类:
①均匀中升型(无0电平)②均匀中平型(含0电平)
量化间隔---设mS(t)幅值域为(a,b)则量阶Δv=(b-a)/M
量化输出qi=(mi+mi-1)/2当mi-1<m≤mi
mi(=a+i△v)---第i量化级终点电平
qi---第i量化级的量化电平
特点:
(1)量化间隔及量化级数成反比。
(2)量化噪声及量化间隔成正比,即量化间隔愈大,最大量化噪声的绝对值越大。
(3)量化噪声及量化级数成反比,量化级数越大,量化噪声越小。
(4)无论信号抽样值大小如何,量化噪声的功率值固定不变,因此在小信号时(信号功率相对较小),信号的量化信噪比也很小。
2.2.2非均匀量化
定义:
就是对信号的不同部分用不同的量化间隔,具体地说,就是对小信号部分采用较小的量化间隔,而对大信号部分就用较大的量化间隔。
实现方法:
压缩及扩张法
3.编码
定义
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。
当然这里的编码和译码及差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。
在现有的编码方法中,若按编码的速度来分,大致可分为两大类:
低速编码和高速编码。
通信中一般都采用第二类。
(二)系统框图如下:
PCM系统原理图
(三)模拟信号数字传输的过程原理图:
1.PCM编码的压缩和扩张原理
压扩特性数学分析
当量化区间划分很多时,在每一量化区间内压缩特性曲线可以近似看作为一段直线,其斜率为:
对此压缩器的输入和输出电压范围均作归一化,且纵坐标y在0和1之间均匀划分成N个量化区间,则每个量化区间的间隔应该等于:
为了对不同的信号强度保持信号量噪比恒定,当输入电压x减小时,应当使量化间隔Dx按比例地减小,即:
Dxµ
x。
将边界条件(当x=1时,y=1),代入可得:
k+c=0→c=-k
2.A律压缩特性和μ律压缩特性介绍
2.1A压缩律
所谓的A压缩率就是压缩器具有如下特性:
上式中:
x为归一化的压缩器输入电压;
归一化的压缩器输出电压;
A为压扩参数,表示压缩程度。
2.2μ压缩律
压缩规律μ压缩特性近似满足下对数规律
•
•
•μ=0时:
无压缩作用(直线)
μ>0时:
μ↑→压缩明显
压缩作用---y是均匀的,而x是非均匀的→信号越小△x也越小
压缩特性早期是用二极管的非线性来实现的,但要保证压缩特性的一致性、稳定性以及压缩及扩张特性的匹配是很困难的。
因此通常都是采用近似理想压缩特性曲线的折线来代替理想特性。
对于A律曲线,采用13段折线近似;
对于μ律曲线,采用15段折线近似。
2.313折线的形成:
(1)首先把输入信号的幅值归一化(横坐标),把0~1的值域划分为不均匀的8个区间,每个区间的长度以2倍递增。
具体地说就是0~1/128为第一区间,1/128~1/64为第二区间,1/64~1/32为第三区间,1/32~1/16为第四区间,直到1/2~1为第八区间。
(2)再把输出信号的幅度也归一化(纵坐标),并均匀分成8个区间,即0~1/8,1/8~2/8,2/8~3/8,直到7/8~1。
(3)然后以横轴各区间的右端点为横坐标,以相对应纵轴区间的上端点为纵坐标,就可得到(1/128,1/8),(1/64,2/8),(1/32,3/8),…,(1,1)等8个点。
(4)将原点及这8个点依次用直线段连接起来就得到一条近似A律的折线,见下图。
(5)第一区间和第三区间的线段斜率一样,可以看成一条线段,则正值曲线就只有7条线段,及之对应的负值曲线也只有7条线段,而正、负值曲线合画在一起后,各自的第一段折线斜率也一样,所以在14条线段中再减去一条就成为13折线。
13折线编码
特点:
基本上保持压缩特性,又便于数字实现。
折线的各段斜率:
线段8斜率:
1/8÷
1/2=1/4线段7斜率:
1/4=1/2
线段6斜率:
1/8=1线段5斜率:
1/16=2
线段4斜率:
1/32=4线段3斜率:
1/64=8
线段2斜率:
1/128=16线段1斜率:
1/8÷
1/128=16
完整的13折线特性:
下图是完整的13折线图:
完整13折线的图的特性:
负向8段斜线按同样方法得到;
第Ⅲ像限的折线及第Ⅰ像限呈奇对称;
斜率相同的段合为一段,共13段,称为13折线法。
13折线的绘制方法:
(1)将输入输出的电压归一。
(2)将x轴的区间(0,1)不均匀的划分为8段,划分的规律是:
每一次以二分之一取段。
(3)将x轴上分好的8段,在段内分成均匀的16段,每一等份作为一个量化层。
(4)将y轴的区间(0,1)均匀的划分为8段,在段内分成均匀的16段,每一等份作为一个量化层。
(5)将相应的交点连接起来得到8个折线段。
(6)因为还包括小于0的电平,所以在第三象限也有8个折线段,但是在第一象限中第一,二段的折线的斜率和第三象限第一,二段相同,所以四条连成一条,这样整个平面有13条线,所以一称为13折线.
虽然在理论分析时候我们把量化和编码是分开的,其实,在实际的PCM设备中,量化和编码是一起进行的。
通信中采用高速编码方式。
3.PCM的8位编码C1C2C3C4C5C6C7C8:
C1C2C3C4C5C6C7C8
1正000①0000
0负001②0001
010③0010
………
111⑧1111
8421权值
逐次比较型编码器,电阻网络型译码器
下表左边是段落码和段落之间的关系,右边是段内码和16个量化级之间的关系
段落序号
段落码
量化级
段内码
8
111
15
1111
14
1110
7
110
13
1101
12
1100
6
101
11
1011
10
1010
5
100
9
1001
1000
4
011
0111
0110
3
010
0101
0100
2
001
0011
0010
1
000
0001
0000
段内均匀,段间非均匀,即段内的16个量化级均匀划分,而由于各段落长度不等,段间属于非均匀的量化级。
小信号段落短,量化间隔小;
打信号段落长,量化间隔大。
第一、二段最短,只有归一化的1/128,再将它等分16小段,每一小段长度(1/128)/16=1/2048,。
对于均匀量化,要保证同样的小信号量化误差,必须有2048个量化级,即11位编码(211=2048).
六、设计仿真
(一)流程图
(二)源程序
clear;
t=-0.1:
0.001:
0.1;
%该参数用于画原信号图形
f=sin(3*pi*90*t)+cos(3*pi*37*t);
%原函数,由t的取值可得f有201个值
subplot(2,1,1)%matlab矩阵区域设置
plot(t,f);
%画出采原函数序列图
title('
原信号'
);
xlabel('
时间t(s)'
%该函数用于画出原始波形和抽样后离散的采样波形图
%绘制离散的采样波形图
T=1/500;
%抽样周期,800是抽样频率,可以调整抽样频率
gs=-0.1:
T:
fg=sin(2*pi*60*gs)+cos(2*pi*25*gs);
%对信号进行以T周期抽样
subplot(2,1,2)
stem(gs,fg)%画图
采样信号'
clearall;
closeall;
%建立原信号
T=0.002;
%取时间间隔为0.01
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:
%以sdt为间隔从-0.1到0.1画图
st=sin(2*pi*60*t1)+cos(2*pi*25*t1);
%离散的抽样函数
figure
(1);
subplot(3,1,1);
plot(t,xt);
原始信号'
%画出原始的信号图,以好对比
gridon%画背景
subplot(3,1,2);
stem(t1,st,'
.'
%这里画出来的是抽样后的离散图
抽样信号'
%量化过程
n=length(st);
%取st的长度为n
M=max(st);
A=(st/M)*2048;
%a1(极性码)a2a3a4(段落码)a5a6a7a8(段内电平码)
code=zeros(i,8);
%产生i*8的零矩阵
%极性码a1
fori=1:
n%if循环语句
ifA(i)>
=0
code(i,1)=1;
%代表正值
else
code(i,1)=0;
%代表负值
end
%这里就是量化的过程,划分成几个不等的段,然后用码元来代替,也就是俗称编码
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))&
32
code(i,4)=1;
start=16;
elseif32<
64
code(i,3)=1;
step=2;
start=32;
elseif64<
128
step=4;
start=64;
elseif128<
256
code(i,2)=1;
step=8;
start=128;
elseif256<
512
step=16;
start=256;
elseif512<
1024
step=32;
start=512;
elseif1024<
2048
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);
%输出段内码
code=reshape(code'
1,8*n);
%reshape代表从新塑形
code
subplot(3,1,3);
stem(code,'
axis([16401]);
%这里我们先取前面八个点编码输出,输出时候有64个点
编码信号'
gridon
七.仿真结果:
下图是经过量化编码后的matlab仿真图:
其中,最上面的是原始信号图,这里也输出来,只是为了及原信号好对比,方便以后的信号分析,中间的一张是经过冲激抽样以后输出地时域离散信号波形,最下面的一张就是我们真正的数字信号经过量化编码后的一些离散点,由于离散点比较多,这里只显示了前面八个数据的点(共64个离散点)。
下面给出由量化编码程序输出的编码序列:
Matlab显示结果如下(部分):
code=
Columns1through13
0111000001100
Columns14through26
0010011110111
Columns27through39
0001001100111
Columns40through52
1110000110011
Columns53through65
0011010101100
Columns66through78
1100011011001
Columns79through91
1001100100010
Columns92through104
1010110111111
Columns105through117
1110010111110
Columns118through130
1001111101111
Columns131through143
1111111000100
Columns144through156
0111111001111
Columns157through169
0100111001101
Columns170through182
0111010010110
Columns183through195
1101101001011
Columns196through208
0111001101101
Columns209through221
0110011001011
Columns222through234
0010011111110
Columns235through247
1011101011001
Columns248through260
1001101110101
Columns261through273
1010011010100
Columns274through286
1110100011110
Columns287through299
0101111010011
Columns300through312
1100101110011
Columns313through325
0110010110000
Columns326through338
0001110010111
Columns339through351
1100111111100
Columns352through364
1111110101111
Columns365through377
1001111101001
Columns378through390
1101010110110
Columns391through403
1010110111001
Columns404through416
1001100101110
Columns417through429
1011111111011
Columns430through442
0011110011011
Columns443through455
1011011110111
Columns456through468
0111010011101
Columns469through481
1011001110100
Columns482through494
11001100