模拟信号地数字化及编码仿真安建学7000.docx
- 文档编号:12645636
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:17
- 大小:103.04KB
模拟信号地数字化及编码仿真安建学7000.docx
《模拟信号地数字化及编码仿真安建学7000.docx》由会员分享,可在线阅读,更多相关《模拟信号地数字化及编码仿真安建学7000.docx(17页珍藏版)》请在冰豆网上搜索。
模拟信号地数字化及编码仿真安建学7000
通信原理课程设计报告书
课题名称
模拟信号的数字化及编码仿真——PCM系统仿真
姓名
学号
院、系、部
电气工程系
专业
电子信息工程
指导教师
2014年6月22日
模拟信号的数字化及编码仿真——PCM系统仿真
一、设计目的
熟练掌握PCM编译码原理,理解模拟信号抽样、量化和基于13折线的PCM编码过程。
二、设计要求
用MATLAB编码实现模拟信号抽样、量化、编码的过程,画出PCM编码和未编码波形。
如:
设输入信号为
,对x(t)信号进行抽样、量化和PCM编码和译码,画出经过PCM编码与未编码波形。
三、设计原理
通信系统的信源有两大类:
模拟信号和数字信号。
若输入是模拟信号,则在数字通信系统的信源编码部分需对输入模拟信号进行数字化,或称为“摸/数”变换,将模拟输入信号变为数字信号。
数字化过程包括三个步骤:
抽样、量化和编码。
模拟信号首先被抽样。
通常抽样是按照等时间间隔进行的,虽然在理论上不是必须如此。
模拟信号被抽样后,成为抽样信号,它在时间上是离散的,但是其取值仍然是连续的,所以是离散模拟信号。
第二步是量化。
量化的结果使抽样信号变成量化信号,其取值是离散的。
故量化信号已经是数字信号,它可以看成多进制的数字脉冲信号。
第三步是编码。
最基本和最常用的编码方法是,脉冲编码调制(PulseCodeModulating,PCM),它将量化后的信号变成二进制码元。
由于编码方法直接和系统的传输效率有关,为了提高传输效率,常常将这种PCM信号进一步做压缩编码,再在通信系统中传输。
接收端接收到信号后再对其进行译码,还原出原信号。
译码就是把编码后的码流在通过信道传输后得到的码流译成离散时间连续幅度的信号。
图3-1PCM系统原理图
1.抽样:
将模拟信号转换为时间离散的样本脉冲序列。
模拟信号被抽样后,成为抽样信号,它在时间上是离散的,但是其取值仍然是连续的,所以是离散模拟信号。
2.量化:
将离散时间连续幅度的抽样信号转换成为离散时间离散幅度的数字信号。
国际上通用的两种对数压缩特性:
A律和µ律。
本次设计采用的是A律13折线。
A律13折线的原理
归一化信号(x/V),过载电压为±1,A律对数
(3.6)
其中A为压缩系数,国际标准A=87.6。
13折线如图3-2所示:
图3-2为13折线特性
表3-113折线时的
值与计算
值的比较。
0
1
0
1
按折线
分段时的
0
1
段落
1
2
3
4
5
6
7
8
斜率
16
16
8
4
2
1
表3-1中第二行的
值是根据
时计算得到的,第三行的
值是13折线分段时的值。
可见,13折线各段落的分界点与
曲线十分逼近,同时
按2的幂次分割有利于数字化
图中只有正幅度部分,共7折线,负幅度部分也有7折线。
但正负部分第一段折线斜率相等,为同一折线,共13折线。
3.编码
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。
在现有的编码方法中,最基本和最常用的编码方法是,脉冲编码调制(PulseCodeModulating,PCM),它将量化后的信号变成二进制码元。
编码器的种类大体上可以归结为三类:
逐次比较型、折叠级联型、混合型。
在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段码的顺序排列。
下面结合13折线的量化来加以说明。
在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。
若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。
具体的做法是:
用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。
其它四位表示段码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。
这样处理的结果,8个段落被划分成27=128个量化级。
段落码和8个段落之间的关系如表3-2所示;段码与16个量化级之间的关系见表3-3。
表3-2段落码表3-3段码
段落序号
段落码
量化级
段码
8
111
15
1111
14
1110
7
110
13
1101
12
1100
6
101
11
1011
10
1010
5
100
9
1001
8
1000
4
011
7
0111
6
0110
3
5
0101
4
0100
2
001
3
0011
2
0010
1
000
1
0001
0
0000
四、程序设计
1.PCM抽样的MATLAB实现
PCM抽样的MATLAB程序设计按如下步骤进行:
(1)确定输入的模拟信号为
;
(2)根据输入的模拟信号,确定抽样频率,对输入信号进行抽样;
(3)编写程序,画出频域图形。
functionsample()
t0=100;%定义时间长度
ts=0.001;fs=1/ts;
t=[-t0/2:
ts:
t0/2];%定义时间序列
df=0.5;%定义频率分辨率
x=sin(2*pi*t);
m=x;
w=t0/(2*ts)+1;%确定t=0的点
m(w)=1;%修正t=0点的信号值
[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('原始信号的波形');
axis([0,7,-1,1]);
subplot(2,1,2);
plot(f,abs(fftshift(M)));
xlabel('频率');ylabel('幅值');
axis([-100,100,0,10]);title('原始信号的频谱');
t0=100;%信号持续的时间
ts1=0.05;%满足抽样条件的抽样间隔
fs1=1/ts1;
t1=[-t0/2:
ts1:
t0/2];%定义满足抽样条件的时间序列
x1=sin(2*pi*t1);
m1=x1;
w1=t0/(2*ts1)+1;
m1(w1)=1;%修正t=0时的信号值
[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)
subplot(2,1,1);
stem(t1,m1);
xlabel('时间');ylabel('幅值');
title('抽样的信号波形');axis([0,7,-1.5,1.5]);
subplot(2,1,2)
plot(f1,abs(fftshift(N1)));
xlabel('频率');ylabel('幅值');
axis([-100,100,0,10]);title('抽样的信号频谱');
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译码MATLAB实现
(1)产生一个正弦信号对其进行非均匀量化编码;
(2)对正弦信号给出PCM码组进行译码。
%PCM编码与译码
%给定正弦信号
clear;
t=0:
1/1000:
1;%给定10个单位的时间
x=0:
0.002*pi:
2*pi;
Signal_m=8*sin(x);%给一个正弦信号,信号输入围为[-8,8]
figure
(1)
subplot(2,1,1);
plot(t,Signal_m);
title('输入正弦信号');
axis([0,1,-10,10]);
grid;
%PCM编码
%随机的产生抽样值,给出PCM码组
Is=round(2048*(Signal_m/10));%归一化
Len=length(Is);
Code=zeros(Len,8);
%极性码
fori=1:
Len
if(Is(i)>0)
Code(i,1)=1;
end
end
%段落码
Signal=abs(Is);
fori=1:
Len
if(Signal(i)>=128)
Code(i,2)=1;%为1在5~8段,否则在1~4段
end
if(Code(i,2)==1)%确在5~8段
if(Signal(i)>=512)
Code(i,3)=1;%为1在7~8段,否则在5~6段
end
if(Code(i,3)==1)%确在7~8段
if(Signal(i)>=1024)
Code(i,4)=1;%为1在第8段,否则在第7段
end
else
if(Signal(i)>=256)
Code(i,4)=1;
end
end
else%确在1~4段
if(Signal(i)>=32)
Code(i,3)=1;%为1在3~4段,否则在1~2段
end;
if(Code(i,3)==1)%确在3~4段
if(Signal(i)>=64)
Code(i,4)=1;%为1在第4段,否则在第3段
end
else
if(Signal(i)>=16)
Code(i,4)=1;
end
end
end
end
%段码
QidianDianping=[0,16,32,64,128,256,512,1024,2048];%段落起点电平
LianghuaJiange=[1,1,2,4,8,16,32,64];%段落量化间隔
DuanluoN=zeros(1,Len);
fori=1:
Len
DuanluoN(i)=bin2dec(num2str(Code(i,2:
4)))+1;
end
fori=1:
Len
temp=num2str(dec2bin((Signal(i)-QidianDianping(DuanluoN(i)))/LianghuaJiange(DuanluoN(i)),4));
Code(i,5)=bin2dec(temp
(1));
Code(i,6)=bin2dec(temp
(2));
Code(i,7)=bin2dec(temp(3));
Code(i,8)=bin2dec(temp(4));
Code;
end%PCM译码
LianghuaDanweiN=zeros(1,Len);
Lianghuazhi=zeros(1,Len);
Mark=zeros(1,Len);
Signal_trans=zeros(1,Len);
fori=1:
Len
DuanluoN(i)=bin2dec(num2str(Code(i,2:
4)))+1;
LianghuaDanweiN(i)=bin2dec(num2str(Code(i,5:
8)));
Mark(i)=QidianDianping(DuanluoN(i));
Lianghuazhi(i)=LianghuaJiange(DuanluoN(i));
sign=1;
if(Code(i,1)==0)
sign=-1;
end
Signal_trans(i)=sign*(Mark(i)+Lianghuazhi(i)*LianghuaDanweiN(i));
end
fori=1:
Len
Signal_trans(i)=10*(Signal_trans(i)/2048);
end
figure
(1)
subplot(2,1,2);
plot(t,Signal_trans);
title('编码再译码后的正弦信号');
grid;
五、仿真结果及分析
原始信号的波形如图5-1所示:
图5-1原始信号的波形
以抽样间隔为0.05抽样的信号波形如图5-2所示:
图5-2抽样信号波形
图5-1与5-2分别为连续模拟信号
的原始信号和抽样后的信号,可以看出,抽样频率越高,抽样后的信号越接近原信号,但同时这也会占用大量的系统资源。
原始信号的频谱如图5-3所示:
图5-3原始信号的频谱
抽样的信号频谱如图5-4所示:
图5-4抽样信号频谱
从原始信号和抽样信号的频谱图5-3与5-4可以知道,信号在时域的离散化导致其在频域的周期化。
抽样信号的频谱是无数间隔频率为20Hz(即抽样频率)的原信号频谱相叠加而成,由于抽样信号的频率20Hz远大于原始信号的频率2Hz,所以抽样信号的频谱没有发生频谱混叠。
对连续信号
的进行抽样后得到的一组抽样值如图5-5所示:
图5-5对连续信号
的进行抽样后得到的一组抽样值
信号
抽样所得的抽样值的量化结果如图5-6所示:
图5-6信号
抽样所得的抽样值的量化结果
对量化信号的非均匀量化编码输出如图5-7所示:
图5-7对量化信号的非均匀量化编码输出
信号
的PCM码组的译码输出如图5-8所示:
图5-8信号
的PCM码组的译码输出
由图5-5,图5-6,图5-7,图5-8分别为连续信号
在某一个时间段的其抽样、量化、编码、译码的结果。
显然,量化输出电平与量化前的抽样值存在误差。
这是因为在量化的过程中,将抽样值划分成若干个区间,处在同个区间数值不同的抽样值用一个量化电平表示,这种一对多的表示方法不可避免地会产生误差,即量化误差。
量化误差不能消除但能减弱。
输入正弦信号
如图5-9所示:
图5-9信源
的原始信号波形
编码再译码后的正弦信号如图5-10所示:
图5-10原信号经过编码后再译码的输出波形
由图5-9和图5-10可看出图中原信号和译码后的信号形状几乎一样,但也有一些细微的区别,经编码译码后的信号没有原模拟信号的波形光滑,这些误差就是量化误差。
量化是用有限个值代替了无限个值,显然有限个值无法完全准确表示无限个值,量化值和其所代表的样值之差即为量化误差,量化误差可以通过增加量化级数,即减小量化级长的方法来减弱,但无法完全消除。
六、设计总结
PCM是模拟信号数字化的基本方法,PCM的抽样速率Fs是根据抽样定理来确定的,即若信号的最高频率为Fm,则Fs≥2Fm。
模拟信号的数字化过程包括三个步骤:
抽样、量化和编码。
模拟信号转换为数字信号的过程中,信号首先被抽样。
抽样后,信号转换成为抽样信号,在时间上是离散的,但其取值是连续的,所以是离散模拟信号。
然后对离散模拟信号进行量化。
量化的结果使抽样信号变成量化信号,其取值是离散的,即为数字信号,它可以看成多进制的数字脉冲信号。
第三步是编码。
最基本和最常用的编码方法是脉冲编码调制(PulseCodeModulating,PCM),它将量化后的信号变成二进制码元。
最后是译码,得到与原信号基本一致的信号。
这次的通信原理课程设计是进行PCM系统仿真,通过本次的课程设计我了解了PCM编码的工作原理及其过程,并且学会了使用MATLAB编写程序来对PCM系统进行仿真。
这对我以后的学习有很大的促进。
总体来说,这次课程设计我受益匪浅,培养了我的设计思维,增加了实际操作能力,提升了我的动手能力和学业技能。
七、参考文献
[1]樊昌信,曹丽娜.通信原理.:
国防工业,2007.
[2]樊昌信,宫锦文,忠诚.通信原理及系统实验.:
电子工业,2008.
[3]怀琛.数字信号处理教程——MATLAB释义与实现.:
电子工业,2008.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 信号 数字化 编码 仿真 安建学 7000