海南大学通信原理课题设计PCM及量化文档格式.docx
- 文档编号:17511114
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:28
- 大小:437.87KB
海南大学通信原理课题设计PCM及量化文档格式.docx
《海南大学通信原理课题设计PCM及量化文档格式.docx》由会员分享,可在线阅读,更多相关《海南大学通信原理课题设计PCM及量化文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
对于信号取值小的区间,其量化间隔也小;
反之,量化间隔就大。
它与均匀量化相比,有两个突出的优点。
首先,当输入量化器的信号具有非均匀分布的概率密度时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;
其次,非均匀量化时,量化噪声功率的均方根基本上与信号抽样值成比例。
因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的信号量噪比。
常见的非均匀量化有A律和μ率等,它们的区别在于量化曲线不同。
A压缩律通常近似用13折线法实现:
13折线法如图2.1所示,图中先把
轴的[0,1]区间分为8个不均匀段。
图2.113折线示意图
其具体分法如下:
a.将区间[0,1]一分为二,其中点为1/2,取区间[1/2,1]作为第八段;
b.将剩下的区间[0,1/2]再一分为二,其中点为1/4,取区间[1/4,1/2]作为第七段;
c.将剩下的区间[0,1/4]再一分为二,其中点为1/8,取区间[1/8,1/4]作为第六段;
d.将剩下的区间[0,1/8]再一分为二,其中点为1/16,取区间[1/16,1/8]作为第五段;
e.将剩下的区间[0,1/16]再一分为二,其中点为1/32,取区间[1/32,1/16]作为第四段;
f.将剩下的区间[0,1/32]再一分为二,其中点为1/64,取区间[1/64,1/32]作为第三段;
g.将剩下的区间[0,1/64]再一分为二,其中点为1/128,取区间[1/128,1/64]作为第二段;
h.最后剩下的区间[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轴的八段一一对应。
这样,它基本上保持了连续压扩特性曲线的优点,又便于数字电路实现,本设计中所用到的PCM编码正是采用这种压扩特性来进行编码的。
图2.1中的八段线段的斜率分别为:
表1各段落的斜率
段落
1
2
3
4
5
6
7
8
斜率
16
1/2
1/4
3.编码的定义
量化后的抽样信号在一定的取值范围内仅有有限个可取的样值,且信号正、负幅度分布的对称性使正、负样值的个数相等,正、负向的量化级对称分布。
若将有限个量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值0的十进制数字代码为0),在码前以“+”、“-”号为前缀,来区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。
简单高效的数据系统是二进制码系统,因此,应将十进制数字代码变换成二进制编码。
根据十进制数字代码的总个数,可以确定所需二进制编码的位数,即字长。
这种把量化的抽样信号变换成给定字长的二进制码流的过程称为编码。
话音PCM的抽样频率为8kHz,每个量化样值对应一个8位二进制码,故话音数字编码信号的速率为8bits×
8kHz=64kb/s。
量化噪声随量化级数的增多和级差的缩小而减小。
量化级数增多即样值个数增多,就要求更长的二进制编码。
因此,量化噪声随二进制编码的位数增多而减小,即随数字编码信号的速率提高而减小。
自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。
4.码型的选择
常用的二进制码型有自然二进制码和折叠二进制码两种。
折叠码优点:
只需对单极性信号进行,再增加最高位来表示信号的极性;
小信号的抗噪性能强,大信号的抗噪性能弱。
5.PCM脉冲编码的原理
若信源输出的是模拟信号,如电话机传送的话音信号,模拟摄象机输出的图像信号等,要使其在数字信道中传输,必须在发送端将模拟信号转换成数字信号,即进行A/D变换,在接收端则要进行D/A。
对语音信号最典型的数字编码就是脉冲编码调制(PCM)。
所谓脉冲编码调制:
就是将模拟信号的抽样量化值转换成二进制码组的过程。
下图给出了脉冲编码调制的一个示意图。
图5.1脉冲编码调制示意图
假设模拟信号m(t)的求值范围为[-4V,+4V],将其抽样值按8个量化级进行均匀量化,其量化间隔为1s,因此各个量化区间的端点依次为-4、-3、-2、-1、0、1、2、3、4V,8个量化级的电平分别为-3.5、-2.5、-1.5、-0.5、0.5、1.5、2.5和3.5V。
PCM系统的原理方框图如图5.2所示。
图中,输入的模拟信号m(t)经抽样、量化、编码后变换成数字信号,经信道传送到接收端的译码器,由译码器还原出抽样值,再经低通滤波器滤出模拟信号m^(t)。
其中,量化与编码的组合通常称为A/D变换器;
而译码与低通滤波的组合称为D/A变换。
图5.2PCM通信系统方框图
四、PCM的MATLAB实现
1.原始信号的抽样:
1.1源代码:
1.2仿真结果:
分析:
只有当抽样频率满足抽样定理时,信号频谱才能保持不失真,确保能完美恢复原始信号。
2.PCM均匀量化:
2.1源代码:
2.2仿真结果:
均匀量化输出波形图清晰地显示处均匀量化的特征,每个量阶都是均匀分布的,每个间隔都是相等的。
由于量化级数是64,所以从图中看到的结果不是那么明显,和输入波形相比几乎没什么变化。
3.PCM非均匀量化:
3.1源代码如下:
3.2仿真结果:
由图可见,输出的信号与原始信号有明显的差别,这是因为非均匀量化间隔是变化的,。
4.A律13折线编码:
4.1源代码如下:
4.2仿真结果:
5.非均匀量化PCM编码:
5.1流程图:
5.2源代码如下:
5.3仿真结果:
输入十进制数1588,输出八位二进制码组为11101000,它表示的该量化值位于第七段落的量化间隔八中间。
6.非均匀量化PCM译码
6.1流程图:
6.2源代码如下:
6.3仿真结果:
输出量化值为1568,所以量化误差为1588-1568=10。
五、设计总结
1、仿真分析
根据仿真的波形图和输出地量化、编码值可以得到以下结论:
当抽样频率大于或等于输入连续信号的频率2倍时,就可以无失真恢复原始信号;
当不满足上述条件时就会出现频率混叠失真,不能恢复原始信号。
PCM编码采用A律十三折线编码与译码,不仅简便,且可减少量化误差。
2、心得体会
之所以选择PCM编码这个课题是因为我对这一块的知识比较了解,而且,在上***老师的《通信原理》这门课程时,最感兴趣的也是这一方面,但是理论知识没有经过亲身实践是不会有提升的,所以为了巩固自己的知识,我从图书馆借了好几本MATLAB的书,刚开始真的是无从下手,本想用simulink建立模型可避免编程的麻烦,可后来才发现自己根本不会调那些元件库器件的参数,没办法,从网上找了一些资料,再加上图书馆的书,我开始了漫长的编程之旅,慢慢的发现这件事其实没我想的那么复杂。
通过本次课程设计,我较系统地掌握有关PCM脉冲编码调制的设计思想和设计方法,主要对MATLAB的仿真方法,开发环境等有了一定的了解并对其进行测试和加以应用的知识得到学习。
掌握了用程序对信号进行分析的基本方法,并画出波形图。
以前对PCM编码的方法只是在理论上,经过这次课设,加深了对PCM编码的基本原理理解,并对其在实际中的应用有了一定了解。
通过这次课设我认识到在以后的学习中,不仅要有刻苦钻研的精神,还要有创新精神,对自己感兴趣的一定要用心去学。
老师说的非常有道理,这些知识如果不通过实践锻炼,那你是无法体会到它的真谛的,今后,我要更加严格要求自己,主动寻找通信专业方面进行软件仿真及硬件设计的机会,通过实践逐步提升自己的专业技术水平,为今后发展奠定坚实的基础。
六、参考文献
[1]樊昌信曹丽娜,《通信原理第六版》,国防工业出版社,2007.
[2]薛山.MATLAB基础教程.清华大学出版社.2011.第1版.
[3]董振海,《精通MATLAB7编程与数据库应用》,电子工业出版社,2007
附件:
完整代码清单:
1、抽样
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)));
频率'
axis([-500,500,0,0.03]);
原始信号的频谱'
%信号持续的时间
ts1=0.005;
%满足抽样条件的抽样间隔
fs1=1/ts1;
t1=[-t0/2:
ts1:
%定义满足抽样条件的时间序列
x1=sin(200*t1);
m1=x1./(200*t1+eps);
w1=t0/(2*ts1)+1;
m1(w1)=1;
%修正t=0时的信号值
m1=m1.*m1;
%定义信号
[M1,mn1,df1]=fft_seq(m1,ts1,df);
%对满抽样条件的信号进行傅立叶变换
M1=M1/fs1;
N1=[M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1];
f1=[-7*df1*length(mn1):
df1:
6*df1*length(mn1)-df1]-fs1/2;
figure
(2)
stem(t1,m1);
抽样正常(fs=200Hz)时的信号波形'
axis([-0.15,0.15,0,1]);
subplot(2,1,2)
plot(f1,abs(fftshift(N1)));
axis([-500,500,0,0.05]);
抽样正常时的信号频谱'
axis([-500,500,-0.01,0.03]);
ts2=0.01;
%不满足抽样条件的抽样间隔
fs2=1/ts2;
t2=[-t0/2:
ts2:
%定义不满足抽样条件的时间序列
x2=sin(200*t2);
m2=x2./(200*t2+eps);
w2=t0/(2*ts2)+1;
m2(w2)=1;
m2=m2.*m2;
[M2,mn2,df2]=fft_seq(m2,ts2,df);
%对不满足抽样条件的信号进行傅立叶变换
M2=M2/fs2;
N2=[M2,M2,M2,M2,M2,M2,M2,M2,M2,M2,M2,M2,M2];
f2=[-7*df2*length(mn2):
df2:
6*df2*length(mn2)-df2]-fs2/2;
figure(3)
stem(t2,m2);
抽样失真(fs=100Hz)时的信号波形'
subplot(2,1,2)
plot(f2,abs(fftshift(N2)));
axis([-500,500,0,0.02]);
抽样失真时的信号频谱'
axis([-500,500,0.005,0.02]);
function[M,m,df]=fft_seq(m,ts,df)
fs=1/ts;
ifnargin==2
n1=0;
else
n1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
M=fft(m,n);
m=[m,zeros(1,n-n2)];
df=fs/n;
2、PCM均匀量化
functionaverage()
t=[0:
0.01:
4*pi];
y=sin(t);
w=jylh(y,1,64);
plot(t,y);
幅度'
axis([0,4*pi,-1.1,1.1]);
原始信号'
plot(t,w);
均匀量化后的信号'
)
functionh=jylh(f,V,L)
n=length(f);
t=2*V/L;
p=zeros(1,L+1);
fori=1:
L+1,p(i)=-V+(i-1)*t;
n
iff(i)>
V,h(i)=V;
iff(i)<
=-V,h(i)=-V;
flag=0;
forj=2:
L/2+1
if(flag==0)
if(f(i)<
p(j))
h(i)=p(j-1);
flag=1;
end
forj=L/2+2:
L+1
h(i)=p(j);
end
nq=V^2/(3*L^2);
3、PCM非均匀量化
functiona_quantize()
t=0:
0.00000125:
0.0005;
y=sin(8000*pi*t);
figure
subplot(2,1,1)
plot(t,y)
axis([00.0005-1.21.2])
)
z=a_pcm(y,87.6);
plot(t,z)
A律量化后的信号'
functiony=a_pcm(x,a)
t=1/a;
length(x)
ifx(i)>
=0
if(x(i)<
=t)
y(i)=(a*x(i))/(1+log(a));
else
y(i)=(1+log(a*x(i)))/(1+log(a));
if(x(i)>
=-t)
y(i)=-(a*-x(i))/(1+log(a));
y(i)=-(1+log(a*-x(i)))/(1+log(a));
4、PCMA律13折线编码
functiona_13code()
0.000025:
0.00025;
y=sin(8000*pi*t)
z=line13(y)
c=pcmcode(z)
functiony=line13(x)
x=x/max(x);
z=sign(x);
x=abs(x);
if((x(i)>
=0)&
&
(x(i)<
1/64))
y(i)=16*x(i);
=1/64)&
1/32))
y(i)=8*x(i)+1/8;
if((x(i)>
=1/32)&
1/16))
y(i)=4*x(i)+2/8;
=1/16)&
1/8))
y(i)=2*x(i)+3/8;
=1/8)&
1/4))
y(i)=x(i)+4/8;
=1/4)&
1/2))
y(i)=1/2*x(i)+5/8;
=1/2)&
=1))
y(i)=1/4*x(i)+6/8;
y=z.*y;
functionf=pcmcode(y)
f=zeros(length(y),8);
z=sign(y);
y=y.*128;
y=fix(y);
y=abs(y);
length(y)
if(y(i)==128)
y(i)=127.999;
forj=6:
-1:
f(i,8-j)=fix(y(i)/2^j);
y(i)=mod(y(i),(2^j));
length(y);
if(z(i)==1)
f(i,1)=0;
f(i,1)=1;
5、非均匀量化PCM编码
function[out]=pcm_encode(x)
n=length(x);
out(i,1)=1;
out(i,1)=0;
ifabs(x(i))>
0&
abs(x(i))<
32
out(i,2)=0;
out(i,3)=0;
out(i,4)=0;
step=2;
st=0;
elseifabs(x(i))>
=32&
64
out(i,4)=1;
st=32;
=64&
128
out(i,3)=1;
step=4;
st=64;
=128&
256
step=8;
st=128;
=256&
512
out(i,2)=1;
step=16;
st=256;
=512&
1024
step=32;
st=512;
=1024&
2048
step=64;
st=1024;
=2048&
4096
step=128;
st=2048;
=4096
out(i,2:
8)=[1111111];
tmp=floor((abs(x(i))-st)/step);
t=dec2bin(tmp,4)-48;
%函数dec2bin输出的是ASCⅡ字符串,48对应0
out(i,5:
8)=t(1:
4);
out=reshape(out'
1,8*n);
6、非均匀量化PCM译码
function[out]=pcm_decode(in,v)
n=length(in);
in=reshape(in'
8,n/8);
slot
(1)=0;
slot
(2)=32;
slot(3)=64;
slot(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 海南 大学 通信 原理 课题 设计 PCM 量化