均匀与非均匀量化.docx

上传人:b****4 文档编号:4916487 上传时间:2023-05-07 格式:DOCX 页数:21 大小:381.08KB
下载 相关 举报
均匀与非均匀量化.docx_第1页
第1页 / 共21页
均匀与非均匀量化.docx_第2页
第2页 / 共21页
均匀与非均匀量化.docx_第3页
第3页 / 共21页
均匀与非均匀量化.docx_第4页
第4页 / 共21页
均匀与非均匀量化.docx_第5页
第5页 / 共21页
均匀与非均匀量化.docx_第6页
第6页 / 共21页
均匀与非均匀量化.docx_第7页
第7页 / 共21页
均匀与非均匀量化.docx_第8页
第8页 / 共21页
均匀与非均匀量化.docx_第9页
第9页 / 共21页
均匀与非均匀量化.docx_第10页
第10页 / 共21页
均匀与非均匀量化.docx_第11页
第11页 / 共21页
均匀与非均匀量化.docx_第12页
第12页 / 共21页
均匀与非均匀量化.docx_第13页
第13页 / 共21页
均匀与非均匀量化.docx_第14页
第14页 / 共21页
均匀与非均匀量化.docx_第15页
第15页 / 共21页
均匀与非均匀量化.docx_第16页
第16页 / 共21页
均匀与非均匀量化.docx_第17页
第17页 / 共21页
均匀与非均匀量化.docx_第18页
第18页 / 共21页
均匀与非均匀量化.docx_第19页
第19页 / 共21页
均匀与非均匀量化.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

均匀与非均匀量化.docx

《均匀与非均匀量化.docx》由会员分享,可在线阅读,更多相关《均匀与非均匀量化.docx(21页珍藏版)》请在冰点文库上搜索。

均匀与非均匀量化.docx

均匀与非均匀量化

实验二均匀、非均匀量化与编码

一、实验目的

1、了解均匀与非均匀量化编码的原理与过程

2、掌握两种不同量化编码方式的特点并能加以比较

3、进一步熟悉matlab在通信方面的应用

二、理论依据

通原理论课中的标量量化原理,包括均匀量化和以PCM为例的非均匀量化(对数量化)。

 

三、实验内容

1、仿真理论及系统框图

(1)均匀量化

(2)非均匀量化

非均匀量化(对数量化)原理框图

u律压扩特性(本实验以u律为例)

2、模块说明

实验程序设计依照量化编码原理可大体分为采样、量化、编码、作图及相关显示几部分。

采样:

本实验利用正弦函数的若干点(17个)。

量化:

根据不同的输入值,可以得到在不同量化级数下(量化级数n=8,16,64)的结果,算法是程序的核心之一。

编码:

对量化结果进行二进制编码,本例进行自然编码,另一个算法核心。

作图与显示:

做出不同量化级数下量化曲线、量化误差曲线;显示量化信噪比、及部分采样点的编码结果。

 

3、语句分析

详细的分析见程序注释

四、实验数据

1、均匀量化(曲线名称见各自曲线图)

(1)n=8

 

 

 

(2)n=16

 

 

 

(3)n=64

 

 

 

2、非均匀量化(u率对数量化)

(1)n=8

 

 

(2)n=16

 

 

 

(3)n=64

 

 

 

2、数据分析与说明:

(1)n=8,16,64的均匀量化曲线

对于均匀量化,量化级数越大,量化值与原始值约接近,量化误差越小,即量化效果越好。

(2)n=8,16,64的均匀量化信噪比

对于均匀量化,量化级数越大,量化信噪比越大

(3)n=8,16,64的非均匀量化曲线

对于非均匀量化,量化级数越大,量化值与原始值约接近,量化误差越小,即量化效果越好。

(4)n=8,16,64的非均匀量化信噪比

对于非均匀量化,量化级数越大,量化信噪比越大

(5)对于相同量化级的均匀与非均匀量化特性

均匀量化的量化误差分布比较均匀,而非均匀量化的量化误差随信号幅度变化:

在大幅度处大,在小幅度处小。

当n较小时,均匀量化的量化信噪比大于非均匀量化,但是当n较大时,均匀量化的量化信噪比小于非均匀量化

五、实验结果的分析与讨论

通过对实验数据的分析,我们直观的发现了与通原理论课一样的结论。

无论是均匀量化

还是非均匀量化其量化信噪比的是随着量化级数的增大而增大。

而均匀量化与非均匀量化相比,前者是先简单,后者相对复杂,但更适合小信号出现概率较大的信号,有实际应用背景。

六、实验总结与心得体会

这次实验在利用老师给出的核心部分后相对简单,再加之对matlab的掌握有了一定提高,完成得比上次顺利。

其中对matlab编程的规范性有了进一步的强化,无论是注释的规范性还是程序的灵活性都有了提高。

 

七、思考题

1、答:

采用奈奎斯特抽样频率为2fh,

量化级数为n,则每码元比特数为log2n,

量化后的信号带宽为2wlog2n。

2、答:

非均匀PCM的量化信噪比之所以优于均匀PCM的量化信噪比是因为它具有

较大的动态范围,结合实际语声信号的特点:

大信号出现概率小,小信号出现概率大,非均匀量化的压扩特性恰好适应这一条件。

 

3、答:

以n=8为例,通过程序算出:

前者a均匀量化量化信噪比为14.006非均匀量化量化信噪比为2.7422

后者a均匀量化量化信噪比为-0.94856非均匀量化量化信噪比为0.1694

虽然以上数据均为不定值,但大小相对关系不会改变:

即:

前者a均匀量化量化信噪比优于非均匀量化量化信噪比

后者a非均匀量化量化信噪为优于均匀量化量化信噪比

原因是前者a为服从正态分布,样值比较均匀,适合均匀量化

而后者a的各个元素跳跃较大,分布不均,适合动态范围较大的非均匀量化

 

附录:

源程序:

1、均匀量化

N=2^10;L=2^6;M=N/L;%采样点数

a=sin(0:

2*pi/M:

2*pi);%取样点

n=input('量化级数=');%初始化,n为量化级数

ifisempty(n),

n=8;

end

amax=max(abs(a));

a_quan=a/amax;%归一化

b_quan=a_quan;

d=2/n;%量化间隔

q=d.*[0:

n-1];

q=q-((n-1)/2)*d;%量化电平

 

%进行量化

fori=1:

n

a_quan(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2)))=...%定位第i个量化间隔码子

q(i).*ones(1,length(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2))));%赋值为相应的量化电平

b_quan(find(a_quan==q(i)))=(i-1).*ones(1,length(find(a_quan==q(i))));

end

a_quan=a_quan*amax;%恢复原值(量化后)

nu=ceil(log2(n));%编码

code=zeros(length(a),nu);

fori=1:

length(a)

forj=nu:

-1:

0%从高向低编码

if(fix(b_quan(i)/(2^j))==1)

code(i,(nu-j))=1;

b_quan(i)=b_quan(i)-2^j;

end

end

end

sqnr=20*log10(norm(a)/norm(a-a_quan));%求量化信噪比

 

t=(0:

2*pi/N:

2*pi);

aq=sin(0:

2*pi/N:

2*pi);%计算所有采样点的量化值,为作图服务

aq_quan=aq/amax;%归一化

aq=d.*[0:

n-1];

aq=((n-1)/2)*d-aq;%量化电平

 

fori=1:

n

aq_quan(find((q(i)-d/2<=aq_quan)&(aq_quan<=q(i)+d/2)))=...%定位第i个量化间隔码子

q(i).*ones(1,length(find((q(i)-d/2<=aq_quan)&(aq_quan<=q(i)+d/2))));%赋值为相应的量化电平

end

figure

(1)%作原始信号及量化曲线

set(1,'position',[10,50,300,200])

plot(t,sin(t))

gridon

axis([0,2*pi,-1.2*amax,1.2*amax])

title('原始信号及量化曲线')

xlabel('t')

ylabel('原始信号及量化信号值')

text(2,1,'sin(t)')

holdon

plot(t,aq_quan,'r')

figure

(2)%做量化误差曲线(对所有采样点)

set(2,'position',[350,50,300,200])

plot(t,aq_quan-sin(t))

gridon

axis([0,2*pi,-2*amax/n,2*amax/n])

title('量化误差曲线')

xlabel('t')

ylabel('量化误差值')

figure(3)%做前十个取样点的量化值曲线及表示量化信噪比(量化信噪比的计算依据一个周期内所有取样点,并非前十个)

set(1,'position',[20,60,300,200])

stem(a_quan)

gridon

axis([0,10.5,-amax,amax])

title('量化值及编码显示')

xlabel('num')

ylabel('量化值及编码显示')

fork=1:

M

CODA=num2str(code(k,:

));

text(k,a_quan(k),CODA)

text(7,0.7*amax,'量化信噪比=')

text(8.2,0.7*amax,num2str(sqnr))

end

 

2、非均匀量化

N=2^10;L=2^6;M=N/L;%采样点数

aa=sin(0:

2*pi/M:

2*pi);%取样点

u=255;

n=input('量化级数=');%初始化,n为量化级数

ifisempty(n),

n=8;

end

a=mulaw(aa,u);

amax=max(abs(a));

a_quan=a/amax;%归一化

b_quan=a_quan;

d=2/n;%量化间隔

q=d.*[0:

n-1];

q=q-((n-1)/2)*d;%量化电平

 

%进行量化

fori=1:

n

a_quan(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2)))=...%定位第i个量化间隔码子

q(i).*ones(1,length(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2))));%赋值为相应的量化电平

b_quan(find(a_quan==q(i)))=(i-1).*ones(1,length(find(a_quan==q(i))));

end

a_quan=a_quan*amax;%恢复原值(量化后)

nu=ceil(log2(n));%编码

code=zeros(length(a),nu);

fori=1:

length(a)

forj=nu:

-1:

0%从高向低编码

if(fix(b_quan(i)/(2^j))==1)

code(i,(nu-j))=1;

b_quan(i)=b_quan(i)-2^j;

end

end

end

aa_quan=invmulaw(a_quan,u);

sqnr=20*log10(norm(aa)/norm(aa-aa_quan));%求量化信噪比

 

t=(0:

2*pi/N:

2*pi);

aaq=sin(0:

2*pi/N:

2*pi);%计算所有采样点的量化值,为作图服务

aq=mulaw(aaq,u);

aq_quan=aq/amax;%归一化

aq=d.*[0:

n-1];

aq=((n-1)/2)*d-aq;%量化电平

 

fori=1:

n

aq_quan(find((q(i)-d/2<=aq_quan)&(aq_quan<=q(i)+d/2)))=...%定位第i个量化间隔码子

q(i).*ones(1,length(find((q(i)-d/2<=aq_quan)&(aq_quan<=q(i)+d/2))));%赋值为相应的量化电平

end

aaq_quan=invmulaw(aq_quan,u);

figure

(1)%作原始信号及量化曲线

set(1,'position',[10,50,300,200])

plot(t,sin(t))

gridon

axis([0,2*pi,-1.2*amax,1.2*amax])

title('原始信号及量化曲线')

xlabel('t')

ylabel('原始信号及量化信号值')

text(2,1,'sin(t)')

holdon

plot(t,aaq_quan,'r')

figure

(2)%做量化误差曲线(对所有采样点)

set(2,'position',[350,50,300,200])

plot(t,aaq_quan-sin(t))

gridon

axis([0,2*pi,-0.6*amax,0.6*amax])

title('量化误差曲线')

xlabel('t')

ylabel('量化误差值')

figure(3)%做前十个取样点的量化值曲线及表示量化信噪比(量化信噪比的计算依据一个周期内所有取样点,并非前十个)

set(1,'position',[20,60,300,200])

stem(aa_quan)

gridon

axis([0,10.5,-amax,amax])

title('量化值及编码显示')

xlabel('num')

ylabel('量化值及编码显示')

fork=1:

M

CODA=num2str(code(k,:

));

text(k+0.1,aa_quan(k)+0.05,CODA)

text(7,0.7*amax,'量化信噪比=')

text(8.2,0.7*amax,num2str(sqnr))

end

 

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

当前位置:首页 > 表格模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2