当前位置:文档之家› 模拟信号的数字化及编码仿真-安建学20117000

模拟信号的数字化及编码仿真-安建学20117000

通信原理课程设计报告书课题名称模拟信号的数字化及编码仿真——PCM 系统仿真姓 名 学 号 院、系、部 电气工程系 专 业 电子信息工程指导教师2014年6月22日※※※※※※※※※ ※※※※ ※※ ※※※※※※※※※2011级通信原理课程设计模拟信号的数字化及编码仿真——PCM 系统仿真一、设计目的熟练掌握PCM 编译码原理,理解模拟信号抽样、量化和基于13折线的PCM 编码过程。

二、设计要求用MATLAB 编码实现模拟信号抽样、量化、编码的过程,画出PCM 编码和未编码波形。

如:设输入信号为()sin 2c x t A t π=,对x(t)信号进行抽样、量化和PCM 编码和译码,画出经过PCM 编码与未编码波形。

三、设计原理通信系统的信源有两大类:模拟信号和数字信号。

若输入是模拟信号,则在数字通信系统的信源编码部分需对输入模拟信号进行数字化,或称为“摸/数”变换,将模拟输入信号变为数字信号。

数字化过程包括三个步骤:抽样、量化和编码。

模拟信号首先被抽样。

通常抽样是按照等时间间隔进行的,虽然在理论上不是必须如此。

模拟信号被抽样后,成为抽样信号,它在时间上是离散的,但是其取值仍然是连续的,所以是离散模拟信号。

第二步是量化。

量化的结果使抽样信号变成量化信号,其取值是离散的。

故量化信号已经是数字信号,它可以看成多进制的数字脉冲信号。

第三步是编码。

最基本和最常用的编码方法是,脉冲编码调制(Pulse Code Modulating ,PCM),它将量化后的信号变成二进制码元。

由于编码方法直接和系统的传输效率有关,为了提高传输效率,常常将这种PCM 信号进一步做压缩编码,再在通信系统中传输。

接收端接收到信号后再对其进行译码,还原出原信号。

译码就是把编码后的码流在通过信道传输后得到的码流译成离散时间连续幅度的信号。

图3-1 PCM 系统原理图1.抽样:将模拟信号转换为时间离散的样本脉冲序列。

模拟信号被抽样后,成为抽样信号,它在时间上是离散的,但是其取值仍然是连续的,所以是离散模拟信号。

2.量化:将离散时间连续幅度的抽样信号转换成为离散时间离散幅度的数字信号。

国际上通用的两种对数压缩特性:A 律和µ律 。

本次设计采用的是A 律13折线。

A 律13折线的原理归一化信号(x/V),过载电压为±1,A 律对数(3.6)其中A 为压缩系数,国际标准A=87.6。

13折线如图3-2所示:图3-2为13折线特性表3-1 13折线时的x 值与计算x 值的比较。

表3-1中第二行的x 值是根据6.87=A 时计算得到的,第三行的x 值是13折线分段时的值。

可见,13折线各段落的分界点与6.87=A 曲线十分逼近,同时x 按2的幂次分割有利于数字化图中只有正幅度部分,共7折线,负幅度部分也有7折线。

但正负部分第一段折线斜率相等,为同一折线,共13折线。

3.编码所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。

在现有的编码方法中,最基本和最常用的编码方法是,脉冲编码调制(Pulse Code Modulating ,PCM),它将量化后的信号变成二进制码元。

编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。

在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。

下面结合13折线的量化来加以说明。

在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。

若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。

具体的做法是:用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。

其它四位表示段内码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。

这样处理的结果,8个段落被划分成27=128个量化级。

段落码和8个段落之间的关系如表3-2所示;段内码与16个量化级之间的关系见表3-3。

表3-2段落码 表3-3段内码四、程序设计1.PCM抽样的MATLAB实现PCM抽样的MATLAB程序设计按如下步骤进行:(1)确定输入的模拟信号为)=;xπsin(t2(2)根据输入的模拟信号,确定抽样频率,对输入信号进行抽样;(3)编写程序,画出频域图形。

function sample()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;if nargin==2n1=0elsen1=fs/dfendn2=length(m);n=2^(max(nextpow2(n1),nextpow2(n2)));M=fft(m,n);m=[m,zeros(1,n-n2)];df=fs/n2.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);%极性码for i = 1:Lenif(Is(i) > 0)Code(i,1) = 1;endend%段落码Signal = abs(Is);for i = 1:Lenif(Signal(i) >= 128)Code(i,2) = 1; %为1 在5~8段,否则在1~4段endif(Code(i,2) == 1) %确在5~8段if(Signal(i) >= 512)Code(i,3) = 1; %为1在7~8段,否则在5~6 段endif(Code(i,3) == 1) %确在7~8段if(Signal(i) >= 1024)Code(i,4) = 1; %为1在第8段,否则在第7 段endelseif(Signal(i) >= 256)Code(i,4) = 1;endendelse %确在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 段endelseif(Signal(i) >= 16)Code(i,4) = 1;endendendend%段内码QidianDianping=[0,16,32,64,128,256,512,1024,2048]; %段落起点电平LianghuaJiange=[1,1,2,4,8,16,32,64]; %段落量化间隔DuanluoN = zeros(1,Len);for i = 1:LenDuanluoN(i) = bin2dec(num2str(Code(i,2:4))) + 1;endfor i = 1:Lentemp=num2str(dec2bin((Signal(i)-QidianDianping(DuanluoN(i)))/LianghuaJiange(Du anluoN(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);for i = 1:LenDuanluoN(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;endSignal_trans(i) = sign * (Mark(i) + Lianghuazhi(i) * LianghuaDanweiN(i)); endfor i = 1:LenSignal_trans(i) = 10 * (Signal_trans(i)/2048);endfigure(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分别为连续模拟信号)=的原始信号和抽样后的信号,可以xπsin(t2看出,抽样频率越高,抽样后的信号越接近原信号,但同时这也会占用大量的系统资源。

相关主题