LloydMAX算法的研究报告要点.docx

上传人:b****5 文档编号:15181319 上传时间:2023-07-02 格式:DOCX 页数:25 大小:204.19KB
下载 相关 举报
LloydMAX算法的研究报告要点.docx_第1页
第1页 / 共25页
LloydMAX算法的研究报告要点.docx_第2页
第2页 / 共25页
LloydMAX算法的研究报告要点.docx_第3页
第3页 / 共25页
LloydMAX算法的研究报告要点.docx_第4页
第4页 / 共25页
LloydMAX算法的研究报告要点.docx_第5页
第5页 / 共25页
LloydMAX算法的研究报告要点.docx_第6页
第6页 / 共25页
LloydMAX算法的研究报告要点.docx_第7页
第7页 / 共25页
LloydMAX算法的研究报告要点.docx_第8页
第8页 / 共25页
LloydMAX算法的研究报告要点.docx_第9页
第9页 / 共25页
LloydMAX算法的研究报告要点.docx_第10页
第10页 / 共25页
LloydMAX算法的研究报告要点.docx_第11页
第11页 / 共25页
LloydMAX算法的研究报告要点.docx_第12页
第12页 / 共25页
LloydMAX算法的研究报告要点.docx_第13页
第13页 / 共25页
LloydMAX算法的研究报告要点.docx_第14页
第14页 / 共25页
LloydMAX算法的研究报告要点.docx_第15页
第15页 / 共25页
LloydMAX算法的研究报告要点.docx_第16页
第16页 / 共25页
LloydMAX算法的研究报告要点.docx_第17页
第17页 / 共25页
LloydMAX算法的研究报告要点.docx_第18页
第18页 / 共25页
LloydMAX算法的研究报告要点.docx_第19页
第19页 / 共25页
LloydMAX算法的研究报告要点.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

LloydMAX算法的研究报告要点.docx

《LloydMAX算法的研究报告要点.docx》由会员分享,可在线阅读,更多相关《LloydMAX算法的研究报告要点.docx(25页珍藏版)》请在冰点文库上搜索。

LloydMAX算法的研究报告要点.docx

LloydMAX算法的研究报告要点

Lloyd—Max算法的总结

摘要:

本文分析模拟—数字信号转变过程中抽象信号为离散时间,幅度连续,无记忆的

随机信号的最佳量化问题。

并对算法做了总结,应用MATLAB编写程序实现该算

法,最后给出了运用该程序进行计算的几个例子。

关键词:

非均匀量化,失真度,Lloyd—Max算法

一.引言

模数转换要经过抽样,量化和编码三个步骤。

如下图所示:

SCH

为带限的平稳随机过程,根据抽样理论,我们可以对此随机信号进行奈圭斯特抽样抽样的输出为。

它是与等效的离散抽样序列。

经过量化器以后,用L个电平值来表示次序列,然后对此L个电平进行编码(假设为2进制码)。

如果L为2的整数幂。

则每个量化电平需要的码长为:

如果L不是2的整数幂。

则上式为。

如果L个电平值不等概的情况下,我们可以用哈夫蔓编码(又叫熵编码)增加编码效率。

然而,量化过程用到数据的压缩,从而引进了信号的失真。

这种失真即为量化失真。

我们用量化误差来表示。

本文的重点就是讨论如何最大限度的减小量化误差。

二.信息论的解释

2.1.失真度D

假定抽样器的输出序列为,量化器的输出序列为。

为不同的量化值。

则两个量化值的失真为:

如果p=2;则此失真称为均方失真。

平均失真量为:

如果x(t)是服从概率密度函数为p(x)的随机信号,则:

失真度D:

如果用:

来表示。

量化噪声MSE:

量化信噪比SNR:

2.2.率失真函数R(D):

我们假定信源为无记忆,连续幅度,它的幅度概率密度函数为p(x),则率失真函数R(D)的表示式为:

现在分析一下失真函数R(D)的意义。

给定允许的失真度D的情况下,寻求平均互

信息量的最小值。

在信源编码过程中,该最小值的意义即为:

给定一定的失真度D,存在最小的编码码长R。

即可寻求最小的量化电平数L。

因此,进行最佳量化设计的目标可以看成以下问题:

A:

给定量化电平数L,寻求一种方法使得失真度D最小。

B:

对于允许的失真度D,怎样减少量化电平数L。

本文章将讨论问题A,即怎样寻择量化方法使D最小。

量化的方法有很多,如权量化,自适应量化,矢量量化和标量量化。

下面将对标量量化进行讨论。

三.标量量化的最佳量化问题

在信源量化中,如果我们知道量化器的输入信号为概率密度函数为p(x),则量化器可以进行优化。

同样的,设输入的信号概率密度函数为p(x),量化电平数设为L。

误差函数设为

量化失真度为D。

最佳量化器的目的即为减小D,为此,必须正确选取最佳量化电平值和量化区间。

Lloyd-Max算法就是最佳量化的好的实现方法。

我们称用Lloyd-Max算法的量化器为Lloyd-Max最佳量化器。

为讨论该算法,我们先介绍均匀量化

对于均匀量化,设量化电平为:

,其中,Δ为量化台阶

当(k-1)Δ≤x

假设均匀量化器的输出为对称的偶数个电平,则平均失真为:

对Δ求导,即可得到最小的量化失真D。

对上式求导为:

给定一个p(x),可以通过计算机编程设计得到最佳量化的矢量步长。

Max首先对输入信号为均值为0,单位方差的高斯信号进行了计算。

四.Lloyd—Max算法

对于输入信号分布函数p(x),量化输出电平  ,量化电平数为L,量化区间端点值为   

当      时则量化为  .     ,     .

则失真度为:

对和进行优化以减小D,同时对和分别求导,得到下面两个等式:

采用均方误差则,所以可以得出:

这两个式子可以通过计算机编程进行连续的迭代计算,求出最佳的和,以尽可能达到最小的D。

五.MATALB的编程实现

给定量化电平L和输入信号概率密度函数p(x)和信号可能的最大值,最小值进行迭代,求出最佳量化电平和量化范围。

并给出了一个结果。

其中的失真度D的绝对值过大,仅仅是为了说明情况,具体的计算可以根据需要的值进行设置两次迭带中的D值之差,进而计算出比较精确的结果。

(程序清单和计算结果见附录)

六.结束语

Lloyd—Max算法的特点是:

量化电平集中在信号概率大的区域。

在量化电平极小的情况下,均匀量化和非均匀量化的性能差不多。

但是随着量化电平数的增加,非均匀量化产生的失真度明显比均匀量化小。

根据信号的概率密度函数进行量化,将时间离散,幅度连续的信号量化到各个离散的电平上,它们对应了相应的概率。

可以据此进行熵编码,以期在相同的失真度条件下得到最小的码长R。

非均匀量化简单有效的实现且应用在商业电话的对数量化器,根据人的语音特点,在低幅度时用比较多的量化电平(量化台阶小),而在信号不常发生的大幅度电平值时,量化电平就大,常用的技术有美国的

律压缩和欧洲的A-律压缩。

参考文献:

[1]:

John..G.ProakisDigitalCommunication,电子工业出版社影印版

[2]:

Theodore.S.RappaportWirelesscommunication,电子工业出版社影印版

[3]:

傅祖芸信息论基础,电子工业出版社

[4]:

沈振元,聂志泉,区雪荷通信系统原理西安电子科技大学出版社

附录:

源程序清单:

1:

MAIN

functionmain

clearall;

string1=input('Pleaseinputthepdfofthesignal:

');

string2=string1;

disp('Pleaseinputthemaxamplitudeofthesignal:

');

xmax=input('');

disp('Pleaseinputtheminamplitudeofthesignal:

');

xmin=input('');

disp('Pleaseinputthenumberofthequantizationlevels:

');

qsteps=input('');

lloyedmax(string2,xmax,xmin,qsteps)

2:

Lloyd—Max

functiond=lloyedmax(pdf,xmax,xmin,qsteps)

g=inline(pdf);

step=abs((xmax-xmin))/qsteps;

fori=1:

qsteps

xvalue(i)=xmin+(i-0.5)*step;

end;

dold=1;

dsum=0;

j=0;

whileabs(dold-dsum)>0.01

j=j+1;

x(j)=dsum;

dold=dsum;

xdomin

(1)=xmin;xdomin(qsteps+1)=xmax;

fori=2:

qsteps

xdomin(i)=(xvalue(i-1)+xvalue(i))./2;

end

dsum=0;

fori=2:

qsteps+1

xstemp=xdomin(i-1):

abs(xdomin(i)-xdomin(i-1))/100:

xdomin(i);

y=((xvalue(i-1)-xstemp).^2).*g(xstemp);

d=trapz(xstemp,y);

dsum=dsum+d;

end

fori=2:

qsteps+1

xstemp=xdomin(i-1):

abs(xdomin(i)-xdomin(i-1))/100:

xdomin(i);

y1=xstemp.*g(xstemp);

y2=g(xstemp);

d1=trapz(xstemp,y1);

d2=trapz(xstemp,y2);

xvalue(i-1)=d1/d2;

figure(j);

plot(xvalue,1:

1:

qsteps,'*',xdomin,1:

1:

qsteps+1,'x')

ylabel('thecomputenumbers')

xlabel('regions(x)andoutputlevels(*)')

end

outputlevel=xvalue

regions=xdomin

distortion=dsum

end

j=j+1;

x(j)=dsum

outputlevel=xvalue

regions==xdomin

figure(j);

ylabel('thecomputenumbers')

xlabel('regions(x)andoutputlevels(*)')

plot(xvalue,1:

1:

qsteps,'*',xdomin,1:

1:

qsteps+1,'x')

figure(j+1)

clearc;

fori=2:

j

c(i-1)=x(i);

end

plot(1:

1:

j-1,c,'*')

xlabel('thecomputenumbers')

ylabel('everyonedistortion')

 

附录:

计算举例:

例子:

1.当时,量化电平数L=16;=2。

输入[-20,+20]

过程参数与图示:

说明:

main为主函数,outputlevel为量化输出电平值,regions为量化区域,distortion为量化失真度,x为每次迭代得出的量化失真度

main

Pleaseinputthepdfofthesignal:

'exp((-x.^2)/(2*4))/sqrt(2*pi*4)'

Pleaseinputthemaxamplitudeofthesignal:

20

Pleaseinputtheminamplitudeofthesignal:

-20

Pleaseinputthenumberofthequantizationlevels:

16

outputlevel=

-17.7225-15.2575-12.8047-10.3710-7.9677-5.6117

-3.3209-1.09691.09693.32095.61177.9677

10.371012.804715.257517.7225

regions=

-20.0000-17.5000-15.0000-12.5000-10.0000-7.5000

-5.0000-2.500002.50005.00007.5000

10.000012.500015.000017.500020.0000

distortion=0.5209

outputlevel=

-16.7250-14.3051-11.9139-9.5678-7.2895-5.1032

-3.0152-0.99730.99733.01525.10327.2895

9.567811.913914.305116.7250

regions=

-20.0000-16.4900-14.0311-11.5878-9.1694-6.7897

-4.4663-2.208902.20894.46636.7897

9.169411.587814.031116.490020.0000

distortion=0.4092

outputlevel=

-15.7636-13.4011-11.0891-8.8534-6.7213-4.7050

-2.7849-0.92210.92212.78494.70506.7213

8.853411.089113.401115.7636

regions=

-20.0000-15.5151-13.1095-10.7408-8.4286-6.1963

-4.0592-2.00630.00002.00634.05926.1963

8.428610.740813.109515.515120.0000

distortion=0.3390

 

F4

 

 

F6

 

F8

 

F10

 

F12

 

outputlevel=

-9.8274-8.3387-6.9523-5.6241-4.3372-3.0791

-1.8402-0.61220.61221.84023.07914.3372

5.62416.95238.33879.8274

regions=

-20.0000-9.4395-7.9327-6.5133-5.1524-3.8325

-2.5406-1.26610.00001.26612.54063.8325

5.15246.51337.93279.439520.0000

distortion=0.1354

x=0.52090.40920.33900.29000.25360.2254

0.20290.18450.16920.15620.14510.1354

 

2.同样条件,输入为[-60,60]时的情况。

outputlevel=

-10.1614-8.5297-7.0115-5.6234-4.3137-3.0524-1.8207

-0.60520.60521.82073.05244.31375.62347.0115

8.529710.1614

regions=

-60.0000-9.8716-8.1112-6.5563-5.1407-3.8037-2.5136

-1.25060.00001.25062.51363.80375.14076.5563

8.11129.871660.0000

distortion=0.1332

 

 

 

3.同样函数,输入为[-20,20],L=8时

outputlevel=

-4.9505-3.3100-1.9443-0.64360.64361.94433.3100

4.9505

regions=

-20.0000-4.2345-2.7073-1.33600.00001.33602.7073

4.234520.0000

distortion=0.1651

 

4.同样函数,输入为[-60,60],L=32时

outputlevel=-31.8333-28.4797-25.0944-21.8405-18.7849-16.0125-13.5971

-11.5539-9.8169-8.2835-6.8751-5.5461-4.2694-3.0277

-1.8083-0.60140.60141.80833.02774.26945.5461

6.87518.28359.816911.553913.597116.012518.7849

21.840525.094428.479731.8333

regions=-60.0000-31.7736-28.3413-24.9372-21.6598-18.5750-15.7669

-13.3094-11.2202-9.4397-7.8702-6.4306-5.0723-3.7663

-2.4941-1.24220.00001.24222.49413.76635.0723

6.43067.87029.439711.220213.309415.766918.5750

21.659824.937228.341331.773660.0000

distortion=0.1308

 

5.输入为[-20,20],L=16时

outputlevel=

-18.7500-16.2500-13.7500-11.2500-8.7500-6.2500-3.7500

-1.25001.25003.75006.25008.750011.250013.7500

16.250018.7500

regions=

-20.0000-17.5000-15.0000-12.5000-10.0000-7.5000-5.0000

-2.50000.00002.50005.00007.500010.000012.5000

15.000017.500020.0000

distortion=0.5209

 

6.

(Laplacian函数),=4,

输入为[-20,20],L=16;

outputlevel=-17.6367-14.4158-11.6987-9.1889-6.8127-4.5851-2.5525

-0.76080.76082.55254.58516.81279.188911.6987

14.415817.6367

regions=-20.0000-16.1299-13.1992-10.5930-8.1362-5.8057-3.6387

-1.68870.00001.68873.63875.80578.136210.5930

13.199216.129920.0000

 

7.和1。

相同的条件:

当时,量化电平数L=16;=2。

输入[-20,+20];改变迭代终止条件,即ΔD<0.01,改为ΔD<0.001的情况。

outputlevel=

-6.3968-5.1605-4.2401-3.4217-2.6430-1.8811-1.1266

-0.37520.37521.12661.88112.64303.42174.2401

5.16056.3968

regions=

-20.0000-5.8227-4.7440-3.8704-3.0654-2.2875-1.5210

-0.75950.00000.75951.52102.28753.06543.8704

4.74405.822720.0000

distortion=0.0509

 

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

当前位置:首页 > 职业教育 > 其它

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

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