当前位置:首页 >> 高中教育 >> 数字语音处理及MATLAB仿真.rar 第七章

数字语音处理及MATLAB仿真.rar 第七章


数字语音处理及MATLAB仿真 张雪英编著

第7章 矢量量化
1 2 3 4 5

7.1 概述 7.2 矢量量化基本原理 7.3 最佳矢量量化器 7.4 矢量量化器的设计算法及MATLAB实现 7.5 降低复杂度的矢量量化系统

1

数字语音处理及MATLAB仿真 张雪英编著

7.1 概述
量化分为两大类:标量量化和矢量量化。
标量量化:把抽样后的信号值逐个进行量化。

矢量量化:将k(k≥2)个抽样值形成K维空间Rk 中 的一个矢量,然后将此矢量进行量化,。
矢量量化优于标量量化,为不可逆压缩方法, 具备比特率低、解码简单、失真较小的优点。 矢量量化广泛应用于图像、语音压缩编码、移动 通信、语音识别、文献检索及数据库检索等领域。

2

数字语音处理及MATLAB仿真 张雪英编著

矢量量化的理论基础是仙农的率-失真理论。 率-失真理论指出,利用矢量量化,编码性能 有可能任意接近率-失真函数,其方法是增加维数k; 该理论指出了矢量量化的优越性。 率-失真理论在实际应用中的重要指导意义: 常作为一个理论下界与实际编码速率相比较, 分析系统还有多大的改进余地。 但是,率-失真理论是一个存在性定理而非构 造性定理,因为它没有指出如何构造矢量量化器。

3

数字语音处理及MATLAB仿真 张雪英编著

矢量量化技术的发展历程
1956年 最佳矢量量化问题 1957年 1978年 1980年 如何划分量化区间 及求量化值问题 提出实际矢量量化器 LBG算法 Loyd和Max Buzo Linde,Buzo和Gray Steinhaus

4

数字语音处理及MATLAB仿真 张雪英编著

7.2
(1)定义:

矢量量化基本原理
7.2.1 矢量量化的定义

矢量量化是先把信号序列的每K个样点分成一 组,形成K维欧氏空间中的一个矢量,然后对 此矢量进行量化。
xn

5

数字语音处理及MATLAB仿真 张雪英编著

{xn}

X1

X2
X3 X4 Xn/4 图示输入信号序列{xn},每4 个样点构成一个矢量 (取K=4),共得到n/4个4维矢量: X1,X2,X3,…,Xn/4
6

数字语音处理及MATLAB仿真 张雪英编著

矢量量化就是先集体量化X1 ,然后量化X2, 依次向下量化。下面以K=2为例说明其量化过程。
a2 Y3 Yi Si a1 Y5 Y6 (a) 图 7.2 (b) 矢量量化示意图
7

a2 Y2 Y1 a1 Y7 Y4

S1

数字语音处理及MATLAB仿真 张雪英编著

(2)几个概念

量化矢量(或称重构矢量):利用最小失真原则, 分别计算用量化矢量Yi(i=1,2,……7)替代X所 带来的失真,其中最小失真所对应的那个矢量Yj, 就是模拟矢量X 的量化矢量。
码书:量化矢量构成的集合称为码书(Codebook)。 码字:码书中的每个矢量Yj (i=1,2,……N)称 为码字(Codeword)。

8

数字语音处理及MATLAB仿真 张雪英编著

7.2.2 失真测度
失真测度的选择直接影响矢量量化系统的 性能。 失真测度是以什么方法来反映用码字Yi代 替信源矢量X时所付出的代价。这种代价的统 计平均值(平均失真)描述了矢量量化器的工作 特性,即
D ? E[d ( X, Q( X))]

式中E[· ]表示求期望。

9

数字语音处理及MATLAB仿真 张雪英编著

常用的失真测度有如下几种:

⑴平方失真测度
d ? X,Y ? ? X ? Y
2

? ? ? Xi ? Yi ?

2

这是最常用的失真测度,易于处理和计算,且 在主观评价上有意义,即小的失真值对应好的 主观评价质量。

10

数字语音处理及MATLAB仿真 张雪英编著

⑵ 绝对误差失真测度
d ?X, Y ? ? X ? Y ? ? Xi ? Yi
i ?1 k

主要优点:计算简单,硬件容易实现。 ⑶ 加权平方失真测度
d ?X, Y ? ? ?X ? Y ? W?X ? Y ?
T

式中

T —— 矩阵转置符号; W —— 正定加权矩阵。

11

数字语音处理及MATLAB仿真 张雪英编著

要使所选用的失真测度有实际意义,必须要 求它具有以下几个特点:

1. 必须在主观评价上有意义,即小的失真对应 好的主观质量评价;
2. 必须在数学上易于处理,能导致实际的系统 设计; 3. 必须可计算并保证平均失真D=E[D(X,Q(X))] 存在; 4. 采用的失真测度,应使系统容易用硬件实现。

12

数字语音处理及MATLAB仿真 张雪英编著

7.2.3 矢量量化器
通常用最小失真的方法-最近邻准则NNR (Nearest Neighbor Rule))来设计矢量量化器, 也就是要满足下式:
? ? X ? ? i ? d ( X , Yi ) ? d ( X , Y j ) ?j ? I N

式中

IN={1,2,……,i,……N};
N —码书的大小; 符号? 表示充分必要条件。
13

数字语音处理及MATLAB仿真 张雪英编著

N 维输入 Xi 矢量

计算最小距离 d min ( xi , y j ) 找到相应角标 jmax

jmax 信道 或存储器

jmax

从码本找出
y j min

失真 测度 定义

码本 y j j=0,1…… L-1 矢量量化原理框图

码本 y j j=0,1……L-1

14

数字语音处理及MATLAB仿真 张雪英编著

矢量量化器的工作过程是:

在编码端,输入矢量X与码本中的每一个或 部分码字进行比较,分别计算出它们的失真。搜 索到失真最小的码字Yj 的序号(或此码字在码本 中的地址),并将j的编码信号通过信道传送到译 码端;在译码端,先把信道传送来的编码信号译 成序号j,再根据序号(或码字Yj 所在地址),从 码本中查出相应的码字Yj 。Yj 是输入矢量X的重 构矢量。

15

数字语音处理及MATLAB仿真 张雪英编著

矢量量化系统通常可以分为两个映射的乘积
Q ? ??

式中:α是编码器,它是将输入矢量 映射为 信道符号集IN={i1, i2, …, iN}中的一个元素ij ;

X ?? ? R

K

β是译码器,它是将信道符号集ij映射为码书中的一 个码字Yi 。即
α( X )= ij β(ij )= Yi X∈χ, ij ∈ IN ij ∈ IN Yi∈ YN

16

数字语音处理及MATLAB仿真 张雪英编著

矢量量化定义:

把一个K维模拟矢量的有序集(称为信源矢量集 合) ? ? R K 中的某个矢量X∈χ映射为N个量化矢量 构成的有限集(码书或码本)中的某个矢量(码字或 ?N 码矢)Y∈ ,这种映射称为矢量量化。
? N ? ? 1 , Y2 , ?, YN | Yi ? R K ? Y

17

数字语音处理及MATLAB仿真 张雪英编著

一个矢量量化器可以表示成以下三个部分:
? Y 码书: N ? ? i, | i ? 1,2,?, N , Yi ? R K ?

空间划分:S= ?S , | i ? 1,2,?, N ?
i

映射:q:R

K

? ?N ??
s

其中,Si是Rk的一个子集且满足
Si ? ? X ? R , q ( X ) ? Yi ?
K

矢量量化器Q(? N , S)的性能,以其输入矢量X和输

出矢量Y=q(X)的失真平均值而定,失真平均值为: D(Q,F)=E[d(X,Y)]=E[d(X,q(X))]
18

数字语音处理及MATLAB仿真 张雪英编著

补充: 矢量量化与标量量化的比较
矢量量化是把一个K维模拟矢量映射为一个K
维量化矢量。标量量化实际是维数K=1的矢量量化。

一般情况下,矢量量化均指K≥2的多维量化。与标
量量化的两个主要步骤相对应,矢量量化首先要 将抽样值构成的矢量即K维空间的无穷多点划分成 有限个胞腔,然后从每一个胞腔取一个代表值, 凡是落入该胞腔的矢量均用该代表值进行量化。

19

数字语音处理及MATLAB仿真 张雪英编著

与标量量化比较,矢量量化还具有如下特点:
(1)矢量量化是把量化矢量(码字)分别存储在 编码器和译码器两端的码书中,在信道中传输的 并不是输入矢量X的量化矢量Y本身,而是码字Y的 下标j的编码信号;

(2)在相同的速率下,矢量量化的失真比标量量 化的失真明显的小; (3)在相同的失真条件下,矢量量化所需要的速 率比标量量化所需的速率低的多;

20

数字语音处理及MATLAB仿真 张雪英编著

(4)矢量量化是一种多维模式匹配、多维优化 过程,而标量量化是一维模式匹配、一维优化过 程。一般来说,用一维优化是得不到多维优化的 结果的。 (5)矢量量化的复杂度随维数成指数增加,所 以矢量量化的复杂度比标量量化的复杂度高。

归结起来,正如率-失真理论所指出的,组编 码总是优于单个输出的逐个编码的,当编码长度 K趋于无穷大时,可以达到率失真界。

21

数字语音处理及MATLAB仿真 张雪英编著

7.3 最佳矢量量化
1. 最佳矢量量化器的概念
矢量量化器的速率定义为:
r=B/K=(logN)/K(bit/样值或每维)
2 式中 B=logN表示每个码字的编码比特数;

N—码书的大小;

K—维数。

22

数字语音处理及MATLAB仿真 张雪英编著

最佳矢量量化器的概念: 给定条件下,失真最小的矢量量化器,称 为这个条件下的最佳矢量量化器。给定矢量量 化器的码书大小N,求最小失真

? ( N ) ? min E[d ( X , Q( X ))]
Q?QN

式中QN 为所有码书大小为N的K维矢量量化器 的集合。

23

数字语音处理及MATLAB仿真 张雪英编著

2.设计最佳矢量量化器的必要条件
一是在给定码书的条件下,寻找信源空间的最佳划 分,使平均失真最小; 二是在给定划分的条件下,寻找最佳码书,使平均 失真最小。

(1)最佳划分
给定码书 ? N ? ?Y1 , Y2 ,?, YN ? ,可以用最近邻准则NNR得 到最佳划分。图7.4为最佳划分示意图。

24

数字语音处理及MATLAB仿真 张雪英编著

?Y3 ? ?Y6 ?Y4 · ?Y1 ?Yj S1 ? ?X Sj ? ? ?

S2 ?Y2
?YN

?

?

图7.4 最佳划分示意图
25

数字语音处理及MATLAB仿真 张雪英编著

最佳划分定义:
信源空间χ中任一点X,若X∈Sj,当且仅当矢量X与码 字Yj的失真小于X和其它码字 Yi ? ? N 失真,即: s ? ?? | ? ? ? 且 d (?, Y ) ? d (?, Y )? i ? j, ?i ? J N
j j i

则Sj为最佳划分。

Voronoi划分:把信源空间划分成与码书大小相同的 N个区间Sj (j=1,2,…,N)。这种划分称为Voronoi划分。 Voronoi胞腔: Voronoi划分对应子集Sj (j=1,2,…,N) 称为Voronoi胞腔(Cell),简称胞腔。

26

数字语音处理及MATLAB仿真 张雪英编著

(2)最佳码书
给定了划分Si (并不是最佳划分)后,为了 使码书的平均失真最小,码字Yi 必须为相应划分Si (i=1,2,…N)的形心,即:
Yi ? min k E?d ?X, Y ? X ? Si ?
?1 Y?R

式中min-1表示选取的Yi使平均失真
E[d(X,Y)|X∈Si]为最小的Y。

27

数字语音处理及MATLAB仿真 张雪英编著

对于由训练序列定义的样点分布和常用的均 方失真测度,形心由下式给出:
Yi ? 1 Si

?X
x?si

式中|Si|表示集合Si 中元素的个数(即Si 集中 有| Si |个X)。

28

数字语音处理及MATLAB仿真 张雪英编著

7.4 矢量量化器的设计算法及 MATLAB实现
7.4.1 LBG算法
设计矢量量化器的主要任务是设计码书。码字 数目N给定时,由Linde,Buzo,和Gray三人1980 年首次提出矢量量化器的一个设计算法,通常称为 LBG算法。

29

数字语音处理及MATLAB仿真 张雪英编著

已知训练序列的LBG设计算法:
已知训练序列设计算法的具体步骤如下:
( ① 给定初始码书 y N0 ),即给定码书大小N和码字 { Y , Y ,?, Y },并置n=0,设起始平均失真
( 0) 1 (0) 2 ( 0) N

D(-1)→∞,给定计算停止门限ε(0<ε<1)。 ② 用码书 y N 为已知形心,根据最佳划分原则把
(n)

训练序列TS={ Y1( 0) , Y2(0) ,?, YN( 0) }划分为N个胞腔,即:
Sj
(n)

? { X | d ( X , Y j ) ? d ( X , Yi )}
(n)

i ? j , Yi , Y j ? yN , X ? TS

(j =1,2,? ,N )

30

数字语音处理及MATLAB仿真 张雪英编著





给定码书大小 N,初始码书 Y N(0),训练序列 TS={Xr|r = 1,2,…,m} 计算停止门限 ε, n = 0, 置 D( -1 )→∞ 用给定码书 Y n( n )划分成 N 个胞腔 Sj( n ) = {X|d(X,Yj)?d(X,Yi)
i ≠ j,Yi,Yj ∈Y
(n) } N

1 m 计 算 D ? ∑ ?n? d?Xr , Y? min ~?n? D?n?1? ? D?n? D ? Y m r?1 Y∈ N ?n ?
?n?

D

否 求出这时 N 个胞腔的 ( 形心构成新码书 YN n+1) ,

n = n +1

~( ) D n ≤?


Y N = Y N(n)

结 图 7.6 已知训练序列的算法



31

数字语音处理及MATLAB仿真 张雪英编著

③ 计算平均失真与相对失真。 平均失真为
D
(n)

?

? min d ( X m
r ?1
(n) Y ?y N

1

m

r

,Y )

式中 X r ? TS , ? 1,2,......, m r 相对失真为
D ~ (n) D ?
( n ?1)

?D
(n)

(n)

D

~ ( 若 D( n) ? ? ,则停止计算,当前的码书 y Nn )就是设 (n 计好的码书 y N ? y N ),否则进行第④步。

32

数字语音处理及MATLAB仿真 张雪英编著

④ 利用 并
yN 置
( n ?1)

Yi ?

1 Si

由这N个新形心{

X ?S i

计算这时划分的各胞腔的形心, ?X
Y1
( n ?1)

, Y2

( n? 2)

}构成新的码书 , ?, YN
( n ?1)



n=n+1 , 返 回 第 ② 步 再 进 行 计 算 , 直
yN ? yN
( n? L)

~ 到 D( n? L) ? ? ,得到所要求的码书

为止。

33

数字语音处理及MATLAB仿真 张雪英编著

2 初始码书的选定与胞腔的处理
初始码书如何选取,对最佳码书设计很有影响。下 面介绍初始码书选取方法。 (1)随机选取法 这种方法最先用于K-均值聚类算法中,它是从训练 序列中随机选取N 个矢量作为初始码字,构成初始码 书 y ? {Y , Y ,?, Y }。
( 0) N ( 0) 1 ( 0) 2 (0) N

34

数字语音处理及MATLAB仿真 张雪英编著

优点: (1)不用初始化计算,可以大大减少计算时间; (2)初始码字选自训练序列中,无空胞腔问题。 缺点: (1)可能会选到一些非典型的矢量作为码字; (2)会造成在某些空间把胞腔分得过细,而有些 空间分的太大。 以上缺点会导致码书中有限个码字得不到充分利 用,设计的矢量量化器性能可能较差。

35

数字语音处理及MATLAB仿真 张雪英编著

(2)分裂法

1980年由Linde,Buzo和Gray提出,具体步骤如下:
① 计算所有训练序列TS的形心,将此形心作为第 (0) 一个码字 Y1 ; ② 选一个合适参数A乘以码字 Y1( 0 ) ,形成第二个码 字 Y2(0) ;
) ) ③ 以码字 Y1( 0、Y2( 0为初始码书,即:(0) ? {Y1(0) , Y2(0) } y2

用 所 述 LBG 算 法 , 去 设 计 仅 含 2 个 码 字 的 码 ( 书 y2n ) ? {Y1( n ) , Y2( n ) } 。

36

数字语音处理及MATLAB仿真 张雪英编著

( ④ 将码书 y2n )中2个码字 Y1( n ) , Y2( n )分别乘以合适的参数 B,得到4个码字 Y , Y , BY , BY ;
(n) 1 ( n) 2 (n) 1 ( n) 2

⑤ 以这4个码矢为基础,按步骤3去构成含4个码字 的码书,再乘以合适的参数以扩大码字数目。如此 反复,经log2N次设计,就得到所要求的有N个码字 ( 的初始码书 y N0 ) 。

37

数字语音处理及MATLAB仿真 张雪英编著

(3)空胞腔和随机选择法中非典型矢量的处理
① 去空胞腔分裂法。 首先把某空胞腔中的形心去掉,然后将最大的胞 腔 S M 分裂为2个小胞腔。分裂方法如下: (a)用一个合适的参数A去乘以原形心YM ,得到2个 码字:
YM 1 ? YM ; YM 2 ? AYM

38

数字语音处理及MATLAB仿真 张雪英编著

(b)以 YM 1 , YM 2 2个码字来划分这个大胞腔,构成2个 小胞腔 S M 1 , S M 2:
S M 1 ? {X | d ( X , YM 1 ) ? d ( X , YM 2 ), X ? S M }

S M 2 ? {X | d ( X , YM 2 ) ? d ( X , YM 1 ), X ? S M }

39

数字语音处理及MATLAB仿真 张雪英编著

② 非典型码字的处理。

随机选择法存在一些非典型矢量,此时可采用下 面办法来处理:
(a)重新选择随机初始码字,直到没有非典型码字 为止; (b)把这种胞腔中少数矢量分别归并到邻近的各个 胞腔中,再用分裂法把其中一个最大的胞腔分裂 为2个小胞腔。

40

数字语音处理及MATLAB仿真 张雪英编著

7.5 降低复杂度的矢量量化系统
矢量量化器的复杂度
矢量量化与标量量化相比,其主要缺点是

复杂度随维数的增大而成指数式增加,这是实
现高维数矢量量化的主要障碍。

41

数字语音处理及MATLAB仿真 张雪英编著

在信号处理中,复杂度有两种: ① 时间复杂度—单位时间内所需要的计算量,它 包括加(减)法、乘法和比较运算的次数; ② 空间复杂度—存储容量。 矢量量化器复杂度的度量,应该以时间复杂 度和空间复杂度进行度量。 对降低复杂度的研究,可朝两个方向进行:

一:寻找好的快速算法;
二:使码书结构化,以减小搜索量和存储量。

42

数字语音处理及MATLAB仿真 张雪英编著

7.5.1 树搜索矢量量化器
1 树搜索原理
下面以二叉树为例说明树搜索原理。 二叉树结构图中,以树根第一层为起点,第 二层有2个节点(Y0 ,Y1 );第三层有4个节点 (Y00,Y01,Y10,Y11);第四层(此树的最后一 层)有8个节点,这层上的节点又称为树叶。

43

数字语音处理及MATLAB仿真 张雪英编著

0 0 0 Y0 1 Y01 Y 1 0 Y1 1 Y11
1

Y000 Y001 Y010 Y011 Y100 Y101

Y00 0
1

0 Y10 1 0

Y110 1 Y111

图 7.7 二叉树结构图
44

数字语音处理及MATLAB仿真 张雪英编著

树型编码过程中,只计算部分矢量失真,就 可以解决下一步搜索的子树。编码时的走步控 制原则为 0 当上子树的节点失真最小时 控制逻辑值= 1 当下子树的节点失真最小时

45

数字语音处理及MATLAB仿真 张雪英编著

具体量化步骤如下:
第一步 分别计算输入矢量X与Y0、Y1的失真

d (X,Y0)和d(X,Y1)并且比较它们的大小。

若 d (X,Y0) > d(X,Y1) ,则走下支路(下子树), 到了节点Y1处送出1码至信道; 若d (X,Y0) < d(X,Y1) , 则走上支路(上子树 ), 到了节点Y0处,就送出0码至信道。

46

数字语音处理及MATLAB仿真 张雪英编著

第二步

若上一步走的是下支路,那么在节点Y1

处,再计算输入矢量X与节点Y10、Y11的失真
d(X,Y10 )和d(X,Y11 ),并且比较它们的大

小。若d(X,Y10)< d(X,Y10),则走上支路,
到Y10 处送出0码至信道;反之,就走下支路,到

了Y11处,送出1码至信道。

47

数字语音处理及MATLAB仿真 张雪英编著

第三步

若刚才走的是上支路,那么在节点Y10处

分别计算失真d(X,Y100)和d(X,Y101),并且

比较它们的大小,若d(X,Y100)> d(X,Y101),
则走下支路,到了树叶Y101处送出1码到信道。Y101 便是输入矢量X的量化矢量,在信道中传输的符号 是101。反之则走上支路,到了树叶Y100处,送出0 码到信道。Y100便是X 的量化矢量,在信道中传输

的是符号100。

48

数字语音处理及MATLAB仿真 张雪英编著

2 树结构的设计
树搜索矢量量化器的编码器是由树型码书和

相应的搜索算法构成的。这种矢量量化器译码器
的码书和编码器的码书不同。译码器是采用数组

型码书,图7.8是它的原理图。
设计树结构(找出各层的码字)的方法有两

种:一种是从树叶开始设计;另一种是从树根开
始设计。
49

数字语音处理及MATLAB仿真 张雪英编著

N 维输入 搜索到 ? ( X ) ? i 矢量 X

i

信道 或存储器

i

从码书中找出 第 i 个码字 数组码书

失真 测度

树型 码书

图7. 8 树搜索矢量量化器原理框图

50

数字语音处理及MATLAB仿真 张雪英编著

(1) 从树叶开始设计的办法

四层二叉树矢量量化器维数为K,第四层有N=8个
码字(树叶数)。

第一步

假定第四层的8个码字,已由前面设计码

书的方法得到了。将这些码字,按码字距离最近配 对的原则(因为是二叉树型),得到:{Y000,Y001}, {Y010,Y011},{Y100,Y101},{Y110,Y111},并把它们 放在相应的树叶位置上。

51

数字语音处理及MATLAB仿真 张雪英编著

第二步

求出这些码字对的中心,如{Y000,Y001}

的中心为Y00。总共得到四个中心:Y00,Y01,Y10,
Y11,并把它们放在第三层上。 第三步 将第三层上的码字仍按最近距离原则配 对,得到{Y00 ,Y01},{Y10 ,Y11}。再求出码字对 中心Y0与Y1并将它们放在第二层上. 这种树形码书总的尺寸为N0=8+4+2=14,即 共有14个码字,而译码端的码字大小就是树叶数

N=8。

52

数字语音处理及MATLAB仿真 张雪英编著

(2) 从树根开始设计的方法 以四层二叉树为例,具体设计步骤如下:

第一步 求出整个训练序列的形心,作为初始码 书。用一个合适的参数A去乘,得到另一个码字。 而后以与为初始码字,将训练序列按一定失真测 度划分为两个胞腔,再计算出两个胞腔的形心Y0 与Y1 。用这种分裂法得到的Y0 ,Y1 便是第二层地 个码字。

53

数字语音处理及MATLAB仿真 张雪英编著

第二步 再用上述分裂法,得到第三层的4个码 字Y00,Y01,Y10,Y11。这样继续下去,一直计算 到树叶为止。
从上面的叙述不难看出,树搜索的过程是逐 步求近似值的过程,中间的码字只起指引路线的 作用。

54

数字语音处理及MATLAB仿真 张雪英编著

3 树搜索矢量量化器的复杂度
树搜索矢量量化器的特点是以适当提高空间 复杂度来降低时间复杂度。在搜索时间上,二叉 树的搜索速度最快,全搜索最慢。在存储量上, 二叉树多于全搜索。由于树搜索并不是从整个码 书中寻找最小失真的码字,因此它的量化器并不 是最佳的,也就是说树搜索矢量量化器的性能比 全搜索矢量量化器的性能差。通常可以适当选择 各层的树叉型数,在搜索速度、存储量及质量三 者之间得到一种折衷。
55

数字语音处理及MATLAB仿真 张雪英编著

7.5.2 多级矢量量化器系统
多级矢量量化器系统由若干个普通的矢量量 化器系统级联而成,如图7.9所示,它的第一级是 一个包括M1个码字的矢量量化器系统。对每一个 输入矢量X,矢量量化编码器1按最近邻准则找到 一个码字Yi(1)并计算出X与此码字的误差矢量。这 个误差矢量即是第二级矢量量化器系统的输入。

56

数字语音处理及MATLAB仿真 张雪英编著

码本 1 Y1(1) Y2.(1) . . . YM1(1)

码本 2 Y1(2) Y2.(2) YM2(2)
. . . . .

X

VQ 编码器 1

Yi(1)

误差矢 量计算

△(X,Yi(1))

VQ 编码器 2

误差矢 量计算

图 7.9 多级矢量量化系统编码示意图

57

数字语音处理及MATLAB仿真 张雪英编著

这样一级级地推导就可以构成一个级联系统。 整个矢量量化编码器的输出即是各级联矢量量化 编码器的输出码字的编号,而矢量量化译码器则 可以根据这些编号恢复原始的输入矢量。

多级矢量量化系统无论在减少搜索计算量方 面还是减少码字存储量方面都有可观的改进,它 的缺点是在同样的码书容量下,其平均量化失真 大于全搜索矢量量化系统。

58

数字语音处理及MATLAB仿真 张雪英编著

7.5.3 波形/增益矢量量化器

编码器 解码器 图7.10 波形/增益矢量量化器原理框图
59

数字语音处理及MATLAB仿真 张雪英编著

对时域波形进行矢量量化时,将待量化矢量的 波形和增益分开,分别进行矢量量化和标量量化。
设输入矢量为X ,其增益为 非零增益矢量的波形为S=X/g 。
g ? X ,g ? 0

,具有

采用平方误差失真测度,则输入矢量和量化矢 量间的失真为
?? ?? d (X , gS ) ? X ? gS
2

? X

2

?2 ? T ? ? g ? 2 gX S ? X

2

T ? 2 T ? 2 ? ? ( g ? X S ) ? (X S )

? g

和 S? —分别是增益和波形矢量S的量化结果。

60

数字语音处理及MATLAB仿真 张雪英编著

?? ?? d (X , gS ) ? X ? gS

2

? X

2

? ? ? ? g ? 2 gX S ? X
2 T

2

T ? 2 T ? 2 ? ? ( g ? X S ) ? (X S )

VQ编码可分两步使上式达到最小。首先在 VQ码书中找到一个码字 S? ,使其与输人矢量的点 积 X T S? 达到最大值;然后在增益标量量化码书中寻 ? ? 找一个与 X T S? 最为接近的增益值 g (即使 ( g ? X S? )
T 2

? 达到最小)。将 g 和 S? 对应的编号传到解码器中。 后者通过查表将 g S 作为解码输出。 ??

61

数字语音处理及MATLAB仿真 张雪英编著

7.5.4 分离均值矢量量化器
分离均值矢量量化器先将输入矢量的平均值分 离出来,以较低的速率对均值进行标量量化,然后 对去掉均值的输入矢量进行矢量量化。其码书的设 计过程描述如下:
第一步 根据原始训练序列计算矢量均值,对 均值矢量选择合适的标量量化方法进行量化。 第二步 从原始训练序列矢量中减去对应矢量 的量化均值,形成残差训练序列,使用LBG算法对该 序列进行训练求得残差码书。
62

数字语音处理及MATLAB仿真 张雪英编著

7.5.5 有记忆的矢量量化
前面两节介绍的都属于无记忆的矢量量化情况。 因为在量化每一矢量时,都不依赖于此矢量之前或 之后的任何矢量。与之相反,如果能利用过去的输 入矢量的信息,来决定当前的输入矢量应该用哪一 个码书进行比较,那么,通过机器的“记忆”,人 们就可以利用矢量之间的相关性,来提高矢量量化 的性能。有记忆的矢量量化又称反馈型的矢量量化, 它是多码书的矢量量化系统。

63

数字语音处理及MATLAB仿真 张雪英编著

自适应预测矢量量化(AVPQ)
Xn + ~ Xn

en

In 矢量量化器

? en

In 编 信道 译 码 码 器 器

多 个 码 书

? en

~ ? Yn ? X n ? en
~ Xn

矢量线性 预测器(VLP) cn 帧分类器 cn

矢量线性 预测器(VLP)

图 7.11 AVPQ 系统方框图
64

数字语音处理及MATLAB仿真 张雪英编著

AVPQ的工作过程
将输入语音信号序列分帧,构成矢量序列,对 某一输入矢量,用线性预测原理得到一个预测矢量, 相减之后得到误差矢量,对此误差矢量,用en 码书 对它进行矢量量化,送给信道的是该量化误差矢量 的角标。另一方面,还采用自适应技术,根据语音 流各段的不同的统计特性,将输入矢量划分为不同 类型,用不同的码书来量化,同时这个信息也由信 道传送到接收端。

65

数字语音处理及MATLAB仿真 张雪英编著

实践表明,由于AVPQ去掉了矢量与矢量之间 的编码冗余度,并且利用了语音信号的局部特性, 因此,尽管复杂度比普通的矢量量化器增大了,但 可以提高约7dB的信噪比。

66


赞助商链接
更多相关文档:
更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com