pcm脉冲编码.docx

上传人:b****5 文档编号:4486997 上传时间:2022-12-01 格式:DOCX 页数:25 大小:217KB
下载 相关 举报
pcm脉冲编码.docx_第1页
第1页 / 共25页
pcm脉冲编码.docx_第2页
第2页 / 共25页
pcm脉冲编码.docx_第3页
第3页 / 共25页
pcm脉冲编码.docx_第4页
第4页 / 共25页
pcm脉冲编码.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

pcm脉冲编码.docx

《pcm脉冲编码.docx》由会员分享,可在线阅读,更多相关《pcm脉冲编码.docx(25页珍藏版)》请在冰豆网上搜索。

pcm脉冲编码.docx

pcm脉冲编码

西南科技大学

课程设计报告

 

课程名称:

数字通信课程设计

设计名称:

脉冲编码调制(PCM)实现

姓名:

学号:

班级:

通信0801

指导教师:

起止日期:

西南科技大学信息工程学院制

课程设计任务书

学生班级:

通信0801学生姓名:

学号:

设计名称:

脉冲编码调制(PCM)实现

起止日期:

指导教师:

设计要求:

1、采样:

低通连续信号采样,以x=sin(200*t);m=x./(200*t);m=m.*m;为例说明低通采样定理,绘出信号时、频图形;带通连续信号采样,以x=sin(20*t);m=x./t;为例说明带通采样定理,绘出信号时、频图形。

2、量化:

均匀量化,以幅度为1的正弦信号为例实现64级电平的均匀量化;非均匀量化,输入A律PCM编码器的正弦信号sin(t),将其进行PCM编码,给出编码器的输出码组序列

3、编码:

以上述信号为例,实现13折线的A律近似法及国际标准PCM对数A律量化编码。

课程设计学生日志

时间

设计内容

6月21日

领取设计任务

6月22日

查阅相关资料

6月23-25日

根据查阅资料设计总体方案

6月26-27日

编写程序

6月28-30日

调试程序,并加以修改

7月1-2日

撰写设计报告

7月3日

修改报告

7月4日

答辩

课程设计考勤表

星期一

星期二

星期三

星期四

星期五

课程设计评语表

指导教师评语:

 

 

成绩:

指导教师:

年月日

脉冲编码调制(PCM)实现

一、设计目的和意义

1.能够运用本课程中学到的知识,实现脉冲编码调制。

2.要求掌握通信原理的基本理论知识。

3.掌握脉冲编码调制(PCM)的过程。

4.能都熟练运用C语言或MATLAB语言进行计算机辅助设计和仿真验证设计内容的合理性

二、设计原理

pcm原理框图

1.抽样

抽样是把连续的时间模拟信号转换成离散时间连续幅度的抽样信号。

抽样必须遵循奈奎斯特抽样定理,离散信号才可以完全代替连续信号。

低通连续信号抽样定理内容:

一个频带限制在(0,fH)内的连续信号,如果抽样频率fs大于或等于2fH,则可以由抽样序列{x(nTs)}无失真地重建恢复原始信号x(t)。

若抽样频率fs<2fH,就会产生失真,这种失真称为混叠失真。

假设m(t)为低通抽样信号,抽样脉冲序列是一个周期性冲激函数

抽样过程是m(t)与

相乘的过程,即抽样后的信号

抽样模型如图1所示。

图1

由频域卷积定理可知:

(1)

(2)

(3)

(4)

带通连续信号的抽样定理:

一个频带限制在(

)赫内的带通型时间连续信号

其带宽为

当以

是小于

的最大整数)的抽样频率对

进行抽样,则

将被所得到的抽样值完全确定。

2.量化

量化是把离散时间连续幅度的抽样信号转换成离散时间离散幅度的数字信号。

量化误差:

量化后的信号和抽样信号的差值。

量化误差在接收端表现为噪声,称为量化噪声。

量化级数越多误差越小,相应的二进制码位数越多,要求传输速率越高,频带越宽。

为使量化噪声尽可能小而所需码位数又不太多,通常采用非均匀量化的方法进行量化。

非均匀量化:

根据幅度的不同区间来确定量化间隔,幅度小的区间量化间隔取得小,幅度大的区间量化间隔取得大。

均匀量化:

ADC输入动态范围被均匀地划分为2^n份。

非均匀量化的实现方法有两种:

一种是北美和日本采用的μ律压扩,一种是欧洲和我国采用的A律压扩。

A律对数压缩特性定义为:

 

在PCM-30/32通信设备中,采用A律13折线的分段方法,具体是:

Y轴均匀分为8段,每段均匀分为16份,每份表示一个量化级,则Y轴一共有16×8=128个量化级。

;X轴采用非均匀划分来实现非均匀量化的目的,划分规律是每次按二分之一来进行分段。

3.编码 

编码就是将量化后的信号编码形成一个二进制码组输出。

ITU建议采用折叠二进码FBC(FoldedBinaryCode)与其它码相比,在小电平时,抗误码性能好。

若采用普通二进码,信号为均匀分布,可计算得到有误码时的量化信噪比。

其中

三、详细设计步骤

本次课程设计分为两个部分:

(1)采样;

(2)量化和编码(量化和编码合在一起完成的)。

其中采样又分为低通和带通连续信号采样两种情形,对采样定理进行验证。

采样

低通采样

(1)首先应该确定被采样的连续信号。

(2)根据输入的连续信号,计算满足低通抽样定理的采样频率。

(3)由于是对采样定理进行验证就要设计满足采样定理的频率和不满足条件的进行对比。

(4)编写程序,画出满足采样定理和不满足的时、频图形。

带通采样

带通的设计和低通的很类似,过程和设计思路几乎一样。

只不过设计过程中满足的条件有所改变,而且被采样的连续信号也不一样。

因此编写的高通程序和低通的很相似,只有小部分地方需要修改。

量化和编码

由于设计要求的编码内容就是将13折线的A律近似法及国际标准PCM对数A律量化编码。

而在第二步就实现了A律的量化和编码输出,因此把设计要求的第二步量化和第三步编码合在一起完成。

均匀量化和编码

(1)确定输入信号。

(2)根据均匀量化的原理取定量阶的步长。

(3)编写程序,实现实现64级电平的均匀量化和编码器输出码组序列。

非均匀量化和编码

(1)确定输入的信号

(2)根据给均匀量化的原理取定十三折现近似法的量阶步长。

(3)编码实现非均匀量化和编码器输出码组序列;同时实现13折线的A律近似法及国际标准PCM对数A律量化编码。

四、设计结果及分析

1.低通采样在MATLAB中的仿真结果如图3-5所示(程序见附录1):

从图中可以看出当抽样频率大于或等于输入连续信号的频率2倍时,就可以无失真恢复原始信号;当不满足上述条件时就会出现像图5那样的混叠失真,就不能恢复原始信号。

图2

图3

图4

2.带通采样在MATLAB中的仿真结果如图6-8所示:

从图中可以看出带通和低通相比,带通充分利用了频带资源。

当采样频率满足条件

时就不会失真,当不满足时就会产生失真的现象。

图5

图6

图7

3.均匀量化及编码在MATLAB中的仿真结果如图9:

图中清晰地显示处均匀量化的特征,每个量阶都是均匀分布的,每个间隔都是相等的。

由于量化级数是64,所以从图中看到的结果不是那么明显,几乎没什么变化。

图8

4.非均匀量化及编码在MATLAN中的仿真结果如图10,A律十三折线的仿真结果如图11:

从图中可以看得出X轴是非均匀量化的结果,同时和标准A律进行比较,十三折线近似A律和标准A律压缩特性很接近。

在第一段内与A=的理想压缩特性几乎相等。

输出的码组序列也符合要求。

标准A律输出的码组序列为:

z=0

非均匀量化十三折线输出序列为:

z=0

十三折线的编码输出:

f=

10000000

11101011

11110100

10010010

01100000

01111010

00100011

11010100

11111110

10110100

01000101

图9

图10

五、体会

在此次设计中,我们将课本知识与实际应用联系起来,按照书本上的知识和老师讲授的方法,首先分析本次课程设计的任务和要求,然后按照分析的结果进行实际的编程操作,检测和校正,再进一步完善程序。

在调试程序的过程中遇到很多的问题,大多数都是因为对MATLAB运用不够熟练。

比如,我在进行带通的采样程序进行调试的时候,在命名的时候在名称中间加了一个空格,调试就一直提醒不能进行,看了无数遍程序都找不到错误。

在束手无策的时候只好求助于同学,他们说看看程序名称是不是不规范,中间不能有空格什么的。

顿时找到了问题的症结,去掉空格后就可以调试出结果了。

这给我的感触很深,做什么事都应该仔细,不能马虎,细节很重要。

应证了那句话“阻止你前行的不是别的,只是鞋里的一粒沙子”。

虽然过程很艰辛,但是结果不算坏,让我收获了很多,很值得。

是不错的一次历练过程。

六、参考文献

[1]曹志刚,钱亚生.现代通信原理[M].清华大学出版社,:

70-71

[2]张志涌.精通版[M].北京航天航空大学出版社,:

51-53

[3]程佩青.数字信号处理教程[M].清华大学出版社,:

82-84

[4]刘树棠.信号与系统[M].西安交通大学出版社,:

65-68

[5]郭文彬.通信原理基于MATLAB的计算机仿真[M].北京邮电大学出版社

[6]苗长云.现代通信原理及应用[M].电子工业出版社,2005

附录

低通采样程序:

t0=10;%定义时间长度

ts=;fs=1/ts;

t=[-t0/2:

ts:

t0/2];%定义时间序列

df=;%定义频率分辨率

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('时间/s');ylabel('幅值');title('原信号的波形');

axis([,,0,]);

subplot(2,1,2);

plot(f,abs(fftshift(M)));

xlabel('频率/Hz');ylabel('幅值');

axis([-500,500,0,]);title('原信号的频谱');

t0=10;%信号持续的时间

ts1=;%满足抽样条件的抽样间隔

fs1=1/ts1;

t1=[-t0/2:

ts1:

t0/2];%定义满足抽样条件的时间序列

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)

subplot(2,1,1);stem(t1,m1);

xlabel('时间/s');ylabel('幅值');

title('抽样满足信号的波形');axis([,,0,1]);

subplot(2,1,2)

plot(f1,abs(fftshift(N1)));

xlabel('频率/Hz');ylabel('幅值');axis([-500,500,0,]);

title('抽样满足的信号频谱');axis([-500,500,0,]);

t0=10;%信号持续的时间

ts2=;%不满足抽样条件的抽样间隔

fs2=1/ts2;

t2=[-t0/2:

ts2:

t0/2];%定义不满足抽样条件的时间序列

x2=sin(200*t2);m2=x2./(200*t2+eps);w2=t0/(2*ts2)+1;

m2(w2)=1;%修正t=0时的信号值

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)

subplot(2,1,1);stem(t2,m2);

xlabel('时间/s');ylabel('幅值');title('抽样不满足的信号波形');

axis([,,0,1]);subplot(2,1,2)

plot(f2,abs(fftshift(N2)));

xlabel('频率/Hz');ylabel('幅值');axis([-500,500,0,]);

title('抽样不满足的信号频谱');axis([-500,500,0,]);

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;

带通采样程序:

clearall;closeall;

t0=10;%定义时间长度

ts=;

fs=1/ts;

t=[-t0/2:

ts:

t0/2];%定义时间序列

df=;%定义频率分辨率

x=sin(20*t);

m=x./t+eps;

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('时间/s');

ylabel('幅值');

title('原信号的波形');

axis([-2,2,-30,30]);

subplot(2,1,2);

plot(f,abs(fftshift(M)));

xlabel('频率/Hz');

ylabel('幅值');

axis([-50,50,0,4]);

title('原信号的频谱');

t0=10;%信号持续的时间

ts1=;

fs1h=100;

t1=[-t0/2:

ts1:

t0/2];%定义满足抽样条件的时间序列

x1=sin(20*t1);

m1=x1./(t1+eps);

w1=t0/(2*ts1)+1;

m1(w1)=1;%修正t=0时的信号值

[M1,mn1,df1]=fft_seq(m1,ts1,df);%对满抽样条件的信号进行傅立叶变换

M1=M1/fs1h;

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]-fs1h/2;

figure

(2)

subplot(2,1,1);

stem(t1,m1);

xlabel('时间/s');

ylabel('幅值');

title('抽样满足信号的波形');

axis([,,-20,30]);

subplot(2,1,2)

plot(f1,abs(fftshift(N1)));

xlabel('频率/Hz');

ylabel('幅值');

axis([-100,100,0,2]);

title('抽样满足的信号频谱');

axis([-150,150,0,5]);

t0=10;%信号持续的时间

ts1=;

fs1l=40;

t1=[-t0/2:

ts1:

t0/2];%定义满足抽样条件的时间序列

x1=sin(20*t1);

m1=x1./(t1+eps);

w1=t0/(2*ts1)+1;

m1(w1)=1;%修正t=0时的信号值

[M1,mn1,df1]=fft_seq(m1,ts1,df);%对满抽样条件的信号进行傅立叶变换

M1=M1/fs1l;

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]-fs1l/2;

figure(3)

subplot(2,1,1);

stem(t1,m1);

xlabel('时间/s');

ylabel('幅值');

title('抽样不满足信号的波形');

axis([-1,1,-20,30]);

subplot(2,1,2)

plot(f1,abs(fftshift(N1)));

xlabel('频率/Hz');

ylabel('幅值');

axis([-100,100,0,5]);

title('抽样不满足的信号频谱');

axis([-100,100,0,5]);

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;

均匀量化程序:

t=[0:

:

4*pi];

y=sin(t);

w=jylh(y,1,64);

subplot(2,1,1);

plot(t,y);

xlabel('时间');

ylabel('幅度');

title('原始信号');

subplot(2,1,2);

plot(t,w);

xlabel('时间');

ylabel('幅度');

title('量化后的信号');

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;end

fori=1:

n

iff(i)>V,h(i)=V;end

iff(i)<=-V,h(i)=-V;end

flag=0;

forj=2:

L/2+1

if(flag==0)

if(f(i)

h(i)=p(j-1);

flag=1;

end;

end;

end;

forj=L/2+2:

L+1

if(flag==0)

if(f(i)

h(i)=p(j);

flag=1;

end;

end;

end;

end;

nq=V^2/(3*L^2);

nq

非均匀量化A律pcm编码:

t=0:

1:

10;

y=sin(t);

z=Apcm(y,

plot(t,z);

functiony=Apcm(x,A)

t=1/A;

fori=1:

length(x);

if(x(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));

end

else

if(x(i)>=-t)

y(i)=-(A*-x(i))/(1+log(A));

else

y(i)=-(1+log(A*-x(i)))/(1+log(A));

end

end

end

十三折线的A律近似法编码输出序列:

t=0:

1:

10;

y=sin(t);

z=zhe13(y)

plot(t,z);

f=pcmcode(z);

functiony=zhe13(x)

x=x/max(x);

z=sign(x);

x=abs(x);

fori=1:

length(x);

if((x(i)>=0)&(x(i)<1/64));

y(i)=16*x(i);

elseif(x(i)>=1/64&x(i)<1/32)

y(i)=8*x(i)+1/8;

elseif(x(i)>=1/32&x(i)<1/16)

y(i)=4*x(i)+2/8;

elseif(x(i)>=1/16&x(i)<1/8)

y(i)=2*x(i)+3/8;

elseif(x(i)>=1/8&x(i)<1/4)

y(i)=x(i)+4/8;

elseif(x(i)>=1/4&x(i)<1/2)

y(i)=1/2*x(i)+5/8;

elseif(x(i)>=1/2&x(i)<=1)

y(i)=1/4*x(i)+6/8;

end;end;end;end;end;end;end;end;

y=z.*y;

functionf=pcmcode(y)

f=zeros(length(y),8);

z=sign(y);

y=y*128;

y=fix(y);

y=abs(y);

fori=1:

length(y)

if(y(i)==128)

y(i)=;

end;end;

fori=1:

length(y)

forj=6:

-1:

0

f(i,8-j)=fix(y(i)/(2^j));

y(i)=mod(y(i),(2^j));

end;end

fori=1:

length(y)

if(z(i)==-1)

f(i,1)=0;

else

f(i,1)=1;

end;end;

十三折线的A律近似法编码输出:

t=0:

1:

10;

y=sin(t);

f=zeros(length(y),8);

z=sign(y);

y=y*128;

y=fix(y);

y=abs(y);

fori=1:

length(y)

if(y(i)==128)

y(i)=;

end;end;

fori=1:

length(y)

forj=6:

-1:

0

f(i,8-j)=fix(y(i)/(2^j));

y(i)=mod(y(i),(2^j));

end;end

fori=1:

length(y)

if(z(i)==-1)

f(i,1)=0;

else

f(i,1)=1;

end;end;

f

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1