实验三 无失真信源编码
第四章:无失真信源编码
ε
ε
ε
ε
L[ H (S )+ε ] GL ε ξ= L <2 n nL
=2
−L[ logn−H (S )−ε ]
logn−H (S )−ε >0
① Lim p( A ) =1 ε L→ ∞
信源序列集合S
② H(P , P ,LPL ) →H(P LP ε ) 1 2 1 M n
信源熵
Aε
③ P = L= P ε = 1/ Mε 1 M
大概率事件熵
Aε
• 对于 A 有性质: 有性质 ε Lim p( A ) = 0 ε L→ ∞
由此可见, 由此可见,信源编码只需对信源中少数落入典型大概率事件的集合的符 号进行编码即可。 号进行编码即可。而对大多数属于非典型小概率事件集合中的信源符号 无需编码. 无需编码
H∞ ≅ 1.4bit
§4.2定长编码定理-4-进一步理解 4.2定长编码定理 定长编码定理-
解决方法: 解决方法:
考察: 字母个数为n 字母之间相关长度为L的英文信源, 考察: 字母个数为n,字母之间相关长度为L的英文信源,其可能的字母序列 但其中大部分字母序列是无意义的字母组合,而且随着L 总数为 L ;但其中大部分字母序列是无意义的字母组合,而且随着L n 的增加,这种无意义序列的总数越来越大。 的增加,这种无意义序列的总数越来越大。 进行联合编码,即对字母序列编码, 进行联合编码,即对字母序列编码,且只对哪些有意义的字母序列 方法: 方法: 编码,即需编码的字母序列的总数<< nL ,则平均每个信源符号所 编码,即需编码的字母序列的总数 则平均每个信源符号所 需的码符号个数可以大大减少,从而提高了传输效率。 需的码符号个数可以大大减少,从而提高了传输效率。 !!但当 足够长后, 问题: 会引入一定的误差!!但当L足够长后 误差可以任意小。 问题: 会引入一定的误差!!但当 足够长后,误差可以任意小。
无失真信源编码
30/100
总结 对离散无记忆信源,给定 , 取 N N 0 ;那么对长度为N的信源序列,满足 下式的为典型序列,否则为非典型序列。
{x : Ni N pi , i 1, , q}
2 0 ,令 N 0 2
定理说明,当N足够大时,典型序列 x 的 的值接近信源的熵 对于有记忆的马氏源,定理5.2.1也成立
选择
,使得
log p
i 1
q
(5. 2. 5)
i
则式(5. 2. 3)成立。
27/100
下面证明定理的后半部分。设 x G 2 , 根据(5.
2. 3)式,有
log p ( x ) H(X ) N
因为信源是无记忆的,所以 N 得到 log p ( x ) log p ( x i )
(5.2.3)
24/100
我们先证明(5. 2. 3)式。 设信源符号集 为 A {a1 , a 2 , a q } , 各符号出现的概率分别为 p i , x x1 x2 x N 为长度为 N 的序列,N 为 x 中符号 a i i 出现的次数。 将信源序列按下列原则分成两 :G1、 G 2 ,其中, Ni G1 : { x : pi , i 1, , q} (5. 2.4) N
q log p ( x ) N i log p i i 1
N(p
i 1
q
i
i ) log pi
NH ( X ) N i log pi
i 1
q
26/100
q log p ( x ) H ( X ) i log pi 所以 N i 1 q q log p ( x ) H ( X ) i log pi log pi N i 1 i 1
第三章-无失真信源编码(2)
序列 x1x1 x1x2 x2x1 x2x2
序列概率 9/16 3/16 3/16 1/16
即时码 0 10 110 111
这个码的码字平均长度
lN
9 1
3 2
3 3
1 3 27
码元/ 信源序列
16 16 16 16 16
单个符号的平均码长
l
l
N
lN
27
码元 / 符号
N 2 32
编码效率
c
H(X)
例1:设有一简单DMS信源:
U
p
u1 1 2
u2 1 22
u3 1 23
u4 u5 u6 u7
111
1
24 25 26 26
用码元表X={0,1}对U的单个符号进行编码(N=1),即对U
的单个符号进行2进制编码。
解:用X的两个码元对U的7个符号进行编码,单 个对应的定长码长:
l lN log q log 7 2.8 码元 / 符号 N log r log 2
j 1
log r
1 qN
r l j
ln 2
P(a j ) ln
j 1
P(aj )
1 qN
r l j
ln 2 j1 P(a j )( P(a j ) 1)
(ln z z 1)
qN
qN
rlj P(a j )
j 1
j 1
ln 2
11 0 (Kraft不等式和概率完备性质) ln 2
(2)根据信源的自信息量来选取与之对应的码长:
【说明】
霍夫曼编码是真正意义上的最佳编码,对给定的信源,平 均码长达到最小,编码效率最高,费诺编码次之,香农编码 效率最低。
无失真的信源编码.
0 1
0 1
这两种编码哪一种更好呢,我们来计算一下二者的码长。
第七节 霍夫曼编码——二进制哈夫曼编码
L1 P(si )li 0.4 1 0.2 2 0.2 3 0.1 4 0.1 4 2.2 L2 P(si )li 0.4 2 0.2 2 0.2 2 0.1 3 0.1 3 2.2
第七节 霍夫曼编码——二进制哈夫曼编码
例 设单符号离散无记忆信源如下,要求对信源编二进制 霍夫曼码。编码过程如下图(后页)。
x6 x7 x8 X x1 , x2 , x3 , x4 , x5 , P( X ) 0.4 0.18 0.1 0.1 0.07 0.06 0.05 0.04
x2 ,
,
xi ,
,
p( x2 ), ,
p( xi ), ,
xn , p( xn )
p( x ) 1
i 1 i
n
二进制香农码的编码步骤如下: 将信源符号按概率从大到小的顺序排列,为方便起见,令 p(x1)≥ p(x2)≥…≥ p(xn) 令p(x0)=0,用pa(xj),j=i+1表示第i个码字的累加概率,则:
在图中读取码字的时候,一定要从后向前读,此时编出 来的码字才是可分离的异前置码。若从前向后读取码字, 则码字不可分离。
第七节 霍夫曼编码——二进制哈夫曼编码
第七节 霍夫曼编码——二进制哈夫曼编码
将上图左右颠倒过来重画一下,即可得到二进制哈夫曼码的码树。
第七节 霍夫曼编码——二进制哈夫曼编码
K 也不变,所以没有本质区别;
缩减信源时,若合并后的新符号概率与其他符号概率相等,从编码方 法上来说,这几个符号的次序可任意排列,编出的码都是正确的,但 得到的码字不相同。不同的编法得到的码字长度ki也不尽相同。
无失真的信源编码
费诺码仍然是一种相当好的编码方法。 费诺编码方法同样适合于r元编码,只需每次
分成r组即可。
三种编码方式的比较
只有霍夫曼码必定是最佳码,霍夫曼码的平均 码长最小,信息传输率最大,编码效率最高, 但在实际使用时其设备较为复杂。
本章主要研究无失真信源编码的技术和方 法。从第5章香农第一定理已知,信源的 信息熵是信源进行无失真编码的理论极限 值。总能找到某种合适的编码方法使编码 后信源的信息传输率R’任意地逼近信源的 信息熵而不存在任何失真。在数据压缩技 术中无失真信源编码又常被称为熵编码。
从第二章的讨论可知,正是由于信源概率 分布的不均匀性,或者信源是有记忆的、 具有相关性,使信源中或多或少含有一定 的剩余度。只要寻找到去除相关性或者改 变概率分布不均匀的方法和手段,就能找 到熵编码的具体方法和实用码的结构。
二元霍夫曼码的特点
霍夫曼码的编码方法保证了概率大的符号对应 于短码,概率小的符号对应于长码,即pj>pk, lj>lk,而且短码得到充分利用。
每次缩减信源的最后两个码字总是最后一位码 元不同,前面各位码元相同(二元编码情况) 如表8.1和8.2所示。
每次缩减信源的最长两个码字有相同的码长 这三个特点保证了所得到的霍夫曼码一
霍夫曼编码的选择
霍夫曼编码方法得到的码并非是唯一的。 对于平均码长相等的霍夫曼码可以通过引进码
字长度偏离平均长度的方差选择判断。 在霍夫曼编码过程中,当缩减信源的概率分布
重新排列时,应使合并得来的概率和尽量处于 最高的位置,这样可以使得合并的元素重复编 码次数减少,使短码得到充分利用。
本章主要介绍霍夫曼编码。
(信息论)第5章无失真信源编码
定长编码定理
定长信源编码定理讨论了编码的有关参数对译 码差错的限制关系
sq p s q
定理 5.3.1 设离散无记忆信源
S s1 P p s 1 p s 2 s2
的熵为H S ,其 N 次扩展信源为
S N 1 p 1 P
2 q p 2 p q
N N
现在用码符号集 X x1 , x2 ,, xr 对N次扩展信源 S N 进行长度为 l 的定长编码,对于 0, 0 ,只要满足
l H S N log r
则当 N 足够大时,译码错误概率为任意小,几乎可以实 现无失真编码。 反之,若满足
l H S 2 N log r
则不可能实现无失真编码。而当N足够大时,译码错误概 14 率近似等于1。
以上的定理5.3.1 和定理5.3.2实际上说明的是一个 问题,虽然该定理是在平稳无记忆离散信源的条件下 证明的,但它也同样适合于平稳有记忆信源,只要要 2 求有记忆信源的极限熵 H S 和极限方差 存在 即可。对于平稳有记忆信源,式(5.6)和式(5.7 ) 中 H S 应该为极限熵 H S 。
变长码(可变长度码)
2
奇异码:若码中所有码字都不相同,则称此码为非
奇异码。反之,称为奇异码。
同价码:每个码符号所占的传输时间都相同的码。定
长码中每个码字的传输时间相同。而变长码中的每个码 字的传输时间不一定相等。
表 5.1
信源符号si
信源符号出现概率 si p
第3章 无失真信源编码--廖-2013-本科生讲解
表3-2中码3,收到“1”后就知道一个码字已经完结,无须 等待下一个符号抵达,所以无前缀码能够即时译码, 称之为 即时可译码,简称即时码。 而对于码 2 ,收到“ 1 ”后,并不能立即做出判决,就是 收到“10”也不能立即做出判决,则还要收到下面的码元才 能做出判决。所以非异字头码不能即时译码,称为 非即时 码,由于非异字头码的其中一些码字是另一些码字的延长, 故也称延长码。
无失真信源编码主要针对离散信源,连续信源在量化编 码的过程中必然会有量化失真,所以对连续信源只能近 似地再现信源的消息。
3.1.2 码的分类 信源编码可看成是从信源符号集到码符号集的一种映射,即将 信源符号集中的每个元素(可以是单符号,也可以是符号序列)映 射成一个长度为n的码字。对于同一个信源,编码方法是多种的。 【例 3.3】 用{u1 ,u2 ,u3,u4}表示信源的四个消息,码符号集为 {0,1},表3-1列出了该信源的几种不同编码。 表3-1 同一信源的几种不同编码 信 源 消息 u1 u2 u3 u4 各消息 概率 q(u1) q(u2) q(u3) q(u4) 码1 00 11 10 11 码2 00 01 10 11 码3 0 1 00 11 码4 1 10 100 1000
一般,可以将码简单的分成如下几类:
1.二元码 若码符号集为 {0,1} ,则码字就是二元序列,称为二元码 , 二元码 通过二进制信道传输,这是数字通信和计算机通信中最常见的一种 码,表3-1列出的4种码都是二元码。 2.等长码 在一组码字集合C中的所有码字cm (m = 1,2, …,M),其码长都相同, 码中所有码字的长度,都相同,则称这组码C为等长码,表3-1中列 出的码1、码2 就码长n = 2等长码。 3.变长码 若码字集合C中的所有码字cm (m = 1,2, …,M),其码长不都相同,码 中的码字长短不一,称码C为变长码,表3-1中列出的码3、码4 就是 变长码。
第三章-无失真信源编码(1)
信源编码的主要任务就是减少冗余,提高编码效率。 信源编码的主要任务就是减少冗余,提高编码效率。 主要任务就是减少冗余 具体说,就是针对信源输出符号序列的统计特性, 具体说,就是针对信源输出符号序列的统计特性, 寻找一定的方法把信源输出符号序列变换为最短的码字序列。 寻找一定的方法把信源输出符号序列变换为最短的码字序列。
限失真信源编码- 限失真信源编码-熵压缩编码
改变信源的熵。 改变信源的熵。 只能保证码元序列经译码后能按一定的失真容许度恢复 只能保证码元序列经译码后能按一定的失真容许度恢复 按一定的失真容许度 信源符号序列。 信源符号序列。 适用于连续信源或模拟信号(语音、图像信源)。 适用于连续信源或模拟信号(语音、图像信源)。 连续信源或模拟信号
{
3.1 码符号集中符号数 =2称为二元码,r=3称为三元码 码符号集中符号数r= 称为二元码 = 称为三元码 称为二元码, 3.2 若分组码中的码长都相同则称为等长码,否则称为变长码 若分组码中的码长都相同则称为等长码,
信源符号 信源符号出 现概率 码1 a1 a2 a3 a4 p(a1) p(a2) p(a3) p(a4) 00 01 10 11 码2 0 01 001 111 码表
f1 (u3 ) = w3 = 110, l3 = 3
1 1 1 1 l = ∑ P(ui )li = × 1 + × 2 + × 3 + × 3 = 1.75 (码元 / 符号) 2 4 8 8 i =1
【说明】 f1是定长编码; f2是变长编码,根据信源符号的概率的符号采用较 短的码字,不经常出现(概率小)的符号采用较长 的码字,因此平均码长就会缩短,是一种较好的编 码策略。
例如: 例如:U: {u1,u2,u3}; X:{0,1}; W: {w1=0, w2=10, w3=11}, 为唯一可译码。 为唯一可译码。 当接收码字序列为: 可以唯一地译为: 当接收码字序列为:10011001111 时,可以唯一地译为: w2,w1,w3,w1,w1,w3,w3; 如果码字集合为: 如果码字集合为:W:{w1=0,w2=01,w3=11} 则为非唯一可译码。 则为非唯一可译码。 当接收码字序列为: 可以译为: 当接收码字序列为:0011111101 时,可以译为:w1,w1(w2)……
信息论与编码实验报告
信息论与编码实验报告一、实验目的信息论与编码是一门涉及信息的度量、传输和处理的学科,通过实验,旨在深入理解信息论的基本概念和编码原理,掌握常见的编码方法及其性能评估,提高对信息处理和通信系统的分析与设计能力。
二、实验原理(一)信息论基础信息熵是信息论中用于度量信息量的重要概念。
对于一个离散随机变量 X,其概率分布为 P(X) ={p(x1), p(x2),, p(xn)},则信息熵H(X) 的定义为:H(X) =∑p(xi)log2(p(xi))。
(二)编码原理1、无失真信源编码:通过去除信源中的冗余信息,实现用尽可能少的比特数来表示信源符号,常见的方法有香农编码、哈夫曼编码等。
2、有噪信道编码:为了提高信息在有噪声信道中传输的可靠性,通过添加冗余信息进行纠错编码,如线性分组码、卷积码等。
三、实验内容及步骤(一)信息熵的计算1、生成一个离散信源,例如信源符号集为{A, B, C, D},对应的概率分布为{02, 03, 01, 04}。
2、根据信息熵的定义,使用编程语言计算该信源的信息熵。
(二)香农编码1、按照香农编码的步骤,首先计算信源符号的概率,并根据概率计算每个符号的编码长度。
2、确定编码值,生成香农编码表。
(三)哈夫曼编码1、构建哈夫曼树,根据信源符号的概率确定树的结构。
2、为每个信源符号分配编码,生成哈夫曼编码表。
(四)线性分组码1、选择一种线性分组码,如(7, 4)汉明码。
2、生成编码矩阵,对输入信息进行编码。
3、在接收端进行纠错译码。
四、实验结果与分析(一)信息熵计算结果对于上述生成的离散信源,计算得到的信息熵约为 184 比特/符号。
这表明该信源存在一定的不确定性,需要一定的信息量来准确描述。
(二)香农编码结果香农编码表如下:|信源符号|概率|编码长度|编码值|||||||A|02|232|00||B|03|174|10||C|01|332|110||D|04|132|111|香农编码的平均码长较长,编码效率相对较低。
无失真信源编码方法
的费诺编码
符 号 u1 u3 u4 u5 u6 u2 概 率 0 .3 2 0 .2 2 0 .1 8 0 .1 6 0 .0 8 0 .0 4 1 0 0 0 1 0 1 0 1 1 码 字 00 01 10 1 10 1 11 0 1 11 1 码 长 2 2 2 3 4 4
费诺编码图
3.1.3 费诺码
3.1.1 霍夫曼编码
u2 u3 u4 U u1 例3.1 离散无记忆信源 P 0.5 0.25 0.125 0.125
对应的霍夫曼编码如图所示
概 率 0 .5 0 .2 5 0 .1 25 0 .1 25 0 1 0 .2 5 0 .5 0 .2 5 0 1
5
(方法(a)方差) (方法(b)方差)
p(ui )(li L) 2 1.36
2 2 i 1
方法(a)要优于方法(b)原因在于编码原则不同:
(a):把合并后的概率总是放在其他相同概率的信源符号之上 (b):把合并后的概率放在其他相同概率的信源符号之下
3.1.1 霍夫曼编码
n=(m-1)Q+m
式中: n——信源符号个数; m——进制数(码元数); Q——缩减次数。
对于二元码,总能找到一个 Q ,满足上式。但对 于 m 元码, n 为任意正整数时不一定能找到一 个 Q 满足上式,此时,可以人为地增加一些概 率为零的符号,以满足式子。然后取概率最小 的m 个符号合并成一个新符号(结点),并把 这些符号的概率相加作为该结点的概率,重新 按概率由大到小顺序排队,再取概率最小的 m 个符号(结点)合并;如此下去直至树根。
3.1.1 霍夫曼编码
0 1 0 1 u1 0 u1 0 u4 1 u5 1 0 u2 1 u3 0 u3 0 u4 (a ) 1 u5 (b ) 1 0 1 u2
第五章 无失真信源编码定理
第三节 等长信源编码定理
•定理5.3的条件式可写为:
长为l 的码符号所能 载荷的最大信息量 长为N的序列平均携带的信息量
l log r > NH ( S )
只要码字传输的信息量大于信源序列携带的 信息量,总可以实现无失真编码。 l •定理5.3的条件式也可写成: log r H ( S ) e N
i
N
1
2
N
是一一对应的:
i Bi (Wi1 ,Wi2 , ,WiN ), i S ,Wil C
N
4)惟一可译码 若任意一串有限长的码符号序列只能被惟 一地译成所对应的信源符号序列,则此码称 为惟一可译码(或称单义可译码);否则就 称为非惟一可译码或非单义可译码。
例:对于二元码 C1 {1, 01, 00} ,当任意给定一串 码字序列,例如“10001101”,只可唯一地划 分为1,00,01,1,01,因此是惟一可译码;而对 另一个二元码 C 2 {0,10, 01} ,当码字序列为 “01001”时,可划分为0,10,01或01,0,01,所 以是非惟一可译的。
P(G eN )
-
(2) 若 i (si1, s i2 ,...,s iN ) GeN,则 2 - N [ H ( s )e ] < P( i ) < 2 - N [ H ( s ) -e ] (3) || GeN || 表示e典型序列集中 e典型序列的个数,则 (1 - )2 N [ H ( s )-e ] <|| GeN ||< 2 N [ H ( s ) e ]
1 N - log P ( si ) 以概率收敛于均值 H ( s ) 熵定义 N i 1 1 N 1 即 - log P ( s i ) - log[ P ( s i ) P ( s 2 ) L P ( s N )] N次扩展信源 N i 1 N 1 - log P ( si s 2 L s N ) H ( S ) 以概率收敛 N 因为 i1 ( si1 si 2 L s i N ) S1 S 2 L S N , (i 1, 2 , L , q N i1 , i2 , L , i N 1, 2 , L , q )
第4章无失真信源编码
是信源编码
码的分类-I
(1) 定长码:码中所有码字的长度都相同, 变长 码:码中的码字长短不一
信源 信源符号出
码表
符号ai 现概率p(ai) 码1 码2
a1
p(a1)
00 0
a2
p(a2)
01 01
a3
p(a3)
10 001
a4
p(a4)
11 111
表4-1 变长码与定长码
码的分类-II
(2)非奇异码:若信源符号和码字一一对应的 奇异码:反之。下表码1是奇异码,码2是非奇异码。
将这两个概率相加作为一个新字母的概率,与未分 配的二进符号的字母重新排队。 3. 对重排后的两个概率最小符号重复(2)的过程。 4. 重复上述过程,直到最后两个符号配以0和1为止。 5. 从最后一级开始,向前返回得到各个信源符号所对 应的码元序列,即相应的码字。
例 对以下信源进行哈夫曼编码
信源符号ai 概率p(ai) 码字Wi
H(S) L H(S) 1
log r
log r
离散平稳无记忆序列变长编码定理:对于平均符号 熵为H(S)的离散平稳无记忆信源,必存在一种无失真 编码方法,使平均信息率满足不等式
H (S) LN H (S) 1 log r N log r N
将定理进行改写:
H (S )
LN N
log r
H(S)
通常可用码树来表示各码字的构成
0
1
0
1
0
1
01
01
01
01
0 1 0 10 10 1 0 10 10 1 0 1
二进制码树(满树)
即时码的码树表示(2)
0
1
第三章-无失真信源编码(2-2)
0.4
0
x5
0 0.2 0.1
5
K PiKi
i1
0.41 0.2 2 0.23 0.1 2 4
2.2 [码元/符号]
1101
4
1100
4
两种编法的平均码长相同,所以编码效率相同。 讨论:哪种方法更好? 定义码字长度的方差σ2:
5
2 E[(Ki K )2] p(xi )(Ki K )2 i 1
3.3定长编码定理
对离散、无记忆、平稳信源符号序列: U =(U1,U2 …..UL),
平均每个符号的熵是
H
(
L
U
)
可用K个码元C =(C1,C2….Ck) 进行等长编码,对任意ε>0,δ>0,
只要满足:
(K / L) log 2 m H L (U )
则当序列长度L足够大时,可使译码差错小于δ, 反之,当
如果对这一信源采用定长二元码编码,要求编码效率达到96%时,
允许译码错误概率 10。5 则自信息的方差
2(X) 2 pi(lpo i)2g [H(X)2]0.4715 i1
所需要的信源序列长度
L(0 0..4 87 1 )2• 1 10.5 0 (0.29 41 )6 20 54.1 3170
3.5 最佳编码
用霍夫曼编码方法找出各消息的代码组,并计算编码效率η。
解1:
x1
0.4
x3
1 0.2
x4
0.2 0
1
1
0 0.6
11
2
1.0
01
2
0
0.4
00
2
x2
1 0.1
101
3
x5
第四章无失真信源编码
而:引入H(S一) 定i的1 p失i lo真g pi和 0错.81误1(b,it/信它源不符能号)象变长编码那样可以
则:实现0.8真11正的0.无811失真0.9编6码 0.96 0.034
且:
2
2
pi(log
p2 i)
[H(S)]2
P(
A
)
1
2 L
2 表示S中每个符号携带的信息量的方差
本次您浏览到是第十四页,共一百一十四页。
2E 2{I(si)E [I(si)]}
E { I 2 ( s i) 2 I ( s i) • E [ I ( s i) ] E 2 [ I ( s i) ] } E[I2(si)]E2[I(si)]
第四章无失真信源编 码
本次您浏览到是第一页,共一百一十四页。
无失真信源编码
• 无失真编码概述 • 定长信源编码 • 变长信源编码 • 实用的无失真信源编码方法举例
本次您浏览到是第二页,共一百一十四页。
§4.1无失真编码概述-1
离散、无失真、无记忆信源编码的一般模型:
S (S1SL)
入
信源 编码
§4.3变长信源编码-1
• 几个码类的概念 – 非奇异码(单义码) – 唯一可译码 – 前缀码(即时码、非延长码、异前置码)
– 最佳码(紧致码)
• Kraft定理---即时码码长必须满足的条件
• 唯一可译码存在定理
• 变长编码定理(香农第一定理)
本次您浏览到是第二十四页,共一百一十四页。
§4.3变长信源编码-2(几个码类的概念)
方法: 进行联合编码,即对字母序列编码,且只对哪些有意义的字母序列
信息论无失真信源编码
即时码
ABCD 1 10 100 1000
ABCD 1 01 001 0001
10110 010 →BACB
10110 0 01→ABAD
无需知道下一个码字的码符号,即可译码, 这样的唯一可译码成为即时码。
命题5.2.1 一个唯一可译码成为即时码的充 要条件是其中任何一个码字都不是其他码 字的前缀。
信源 信源编码器 纠错编码器 调制器
干扰源
信 道
信宿 信源译码器 纠错译码器 解调器
无失真信源编码:解码之后可以得到原始 信息,例如霍夫曼编码。它相对简单,是 本章的重点。
有失真信源编码:解码之后的信息与原始 信息有一定的差别,例如JPEG、MPEG
5.1 编码器
S=(s1,s2,…,sq) 编码器 C=编码,编码器的映射必须是一一对 应、可逆的。
码的分类
根据码长
固定长度码(定长码):所有码字的长度相同。 可变长度码(变长码):码字长短不一。
码字是否相同
非奇异码:所有码字都不相同。 奇异码:存在相同的码字。
5.2 分组码
s1,…,si-1 si si+1,…,sq
无关
无关
5.3 定长码
编码速率:R
l
log N
r
,其中l是码字长度,r是码符号的个
数,N代表N次扩展信源。
编码效率:η=H(S)/R,其中H(S)是扩展之前信源的熵。
例如:S={A,B,C}, 等概率出现,N=2, SN={AA,…,CC},对 SN进行二元编码,则r=2,编码方式如下,则l=4。
AA AB AC BA BB BC CA CB CC
第三章 无失真信源编码
8.唯一可译码 若码的任意一串有限长的码符号序列只能被 唯一的译成所对应的信源符号序列,则此码 称为唯一可译码。也称单义可译码。 注意:定长码是非奇异的就是唯一可译码,因 为它能固定长度分组。 变长码则不一定,主要是不能固定长度分组。 唯一可译码还有判定准则,后面将介绍。
唯一可译码(续)
信源符号si 信源符号出现概率p(si)码1 码2
• 编码:信源编码、信道编码。 • 信源编码:无失真信源编码、限失真信源 编码。 • 无失真信源编码:适用于离散信源或数字 信号。 • 限失真信源编码:适用于连续信源或模拟 信号,如语音、图像等信号的数字处理。
信源编码目的与方法
信源编码:将信源输出的消息符号进行有效 变换,使其成为适合信道传输的符号序列, 且使该序列组成的新信源的冗余度尽可能 地减少。
码字集合
X { x , x , x } 1 2 r
一些基本概念
• • • • • • • • • • • 二元码 定长码 变长码 非奇异码 奇异码 同价码 分组码 唯一可译码 即时码 码的前缀 码树
1.二元码 若码符号集为X={0,1},所有码字都是二元 符号序列,则称为二元码。 2.定长码 若一组码中所有码字的码长都相同,即 l =l(i=1,2…,n),则称为定长码。
i
3.变长码 若一组码中所有码字的码长各不相同,即任意码字
由不同长度li的码符号序列组成,则称为变长码。
信源符号si 信源符号出现概率p(si) 码1 码2 0 01 00p(s1) p(s2) p(s3) p(s4)
00 01 10 11
2
3
4
4.非奇异码 若一组码中所有码字都不相同,即所有信源 符号映射到不同的码符号序列,则称码为 非奇异码。
3. 无失真信源编码方法(3)
用m除以Nj后所得的商为i,余数为r。 除以N 后所得的商为i,余数为 余数为r 在接收端, 可以找到第i 在接收端,由i可以找到第i段,再加上一个信 源符号u 就可无差错地恢复第j 源符号ur就可无差错地恢复第j段。
[例1] 设信源符号集U={a0,a1,a2,a3},求信源 序列S=a0a0a2a3a1a1a0a0a0a3a2 的LZ编码。
[例3]
由三元字符X 由三元字符X、Y、Z组成的信源序列为: 组成的信源序列为: LZW编码 编码。 S=XYXYZYXYXYXXXXXXX 求LZW编码。
编码表(串表) 编码表(串表)
字符串 码字
X 1
Y 2Z 3Fra bibliotekXY 4 X 1
YX 5 Y 2
XYZ 6 XY 4
ZY 7 Z 3
YXY 8 YX 5
3 110 111 0 0011 4 4 0001 5 10000 00100 5 5 01110
二、段匹配码(LZ78算法) 段匹配码(LZ78算法) 算法
编码步骤: 编码步骤: 1.分段 1.分段 2.将段号和信源符号分别进行编码, 2.将段号和信源符号分别进行编码, 将段号和信源符号分别进行编码 若组成二元码, 若组成二元码,段号所需码长
2.7 通用编码
一、分段编码(LZ码) 分段编码(LZ码 二、段匹配编码 三、LZW码 LZW码
一、分段编码(LZ码) 分段编码(LZ码
特点:编码与符号概率无关。编码效率比较高。 特点:编码与符号概率无关。编码效率比较高。
• 分段编码:设m元信源序列 分段编码:
S=s1,s2,…,sn, si∈{u1,u2,…,um},i=1,2,…,n。 将序列分成不同的几段, 将序列分成不同的几段,信源序列分段的结果为 y1, y2, y3,…, yc
实验三 无失真信源编码
实验三 无失真信源编码一、[实验目的]1、理解香农第一定理指出平均码长与信源之间的关系;2、加深理解香农编码具有的重要的理论意义。
3、掌握霍夫曼编码的原理;4、掌握霍夫曼编码的方法和步骤;二、[实验环境]windows XP,MATLAB 7三、[实验原理]香农第一定理:设离散无记忆信源为12 (1)(2)....()S s s sqP p s p s p sq ⎡⎤⎡⎤=⎢⎥⎢⎥⎣⎦⎣⎦ 熵为H(S),其N 次扩展信源为 12 (1)(2)....()N q S p p p q P αααααα⎡⎤⎡⎤=⎢⎥⎢⎥⎣⎦⎣⎦ 熵为H(S N )。
码符号集X=(x1,x2,…,xr )。
先对信源N S 进行编码,总可以找到一种编码方法,构成惟一可以码,使S 中每个信源符号所需的平均码长满足: 1N L H S H S N N +>≥()()logr logr当N →∞时 lim ()N r N L H S N→∞= N L 是平均码长 1()Nq N i i i L p αλ==∑ i λ是i α对应的码字长度四、[实验内容]1、根据实验原理,设计shannon 编码方法,在给定条件下,实现香农编码并算出编码效率。
SP s1 s2 s3 s4 s5 s6 s70.01 0.17 0.19 0.10 0.15 0.18 0.2=2、在给定离散无记忆信源条件下,实现二进制霍夫曼编码,求最后得到的码字并算出编码效率。
五、[实验过程]每个实验项目包括:1)设计思路2)实验中出现的问题及解决方法;某一离散信源概率分布:p=[1/2,1/4,1/8,1/16,1/16] 求信源的熵,并对该信源进行二元哈夫曼编码,得到码字和平均码长以及编码效率。
Matlab 程序:function [h,l]=huffman(p)p=[1/2 1/4 1/8 1/16 1/16];if length(find(p<0))~=0,error('Not a prob.vector,there is negative component')endif abs (sum(p)-1)>10e-10error('Input is not a prob.vector,the sun of the components is notequal to 1')endn=length(p);q=p;m=zeros(n-1,n);for i=1:n-1[q,l]=sort(q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];q=[q(1)+q(2),q(3:n),1];endfor i=1:n-1c(i,:)=blanks(n*n);SP s1 s2 s3 s4 1/8 5/16 7/16 1/8 =endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))...-(n-2):n*(find(m(n-i+1,:)==1)));c(n-i,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,... n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));end;endfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);l1(i)=length(find(abs(h(i,:))~=32));endl=sum(p.*l1)运行结果为:l =1.8750ans =10100100000001六、[实验总结]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 无失真信源编码
一、[实验目的]
1、理解香农第一定理指出平均码长与信源之间的关系;
2、加深理解香农编码具有的重要的理论意义。
3、掌握霍夫曼编码的原理;
4、掌握霍夫曼编码的方法和步骤;
二、[实验环境]
windows XP,MATLAB 7
三、[实验原理]
香农第一定理:
设离散无记忆信源为
12 (1)
(2)....()S s s sq P p s p s p sq ⎡⎤⎡⎤=⎢⎥⎢⎥⎣⎦⎣⎦
熵为H(S),其N 次扩展信源为 12 (1)
(2)....()N q S p p p q P αααααα⎡⎤⎡⎤=⎢⎥⎢⎥⎣⎦⎣⎦ 熵为H(S N )。
码符号集X=(x1,x2,…,xr )。
先对信源N S 进行编码,总可以找
到一种编码方法,构成惟一可以码,使S 中每个信源符号所需的平均码长满足: 1N L H S H S N N +>≥()()logr logr
当N →∞时 lim
()N r N L H S N
→∞= N L 是平均码长 1
()N q N i i i L p αλ==∑ i λ是i α对应的码字长度
四、[实验内容]
1、在给定离散无记忆信源
S
P s1 s2 s3 s4 1/8 5/16 7/16 1/8
=
条件下,实现二进制霍夫曼编码,求最后得到的码字并算出编码效率。
五、[实验过程]
每个实验项目包括:1)设计思路2)实验中出现的问题及解决方法;
某一离散信源概率分布:p=[1/2,1/4,1/8,1/16,1/16] 求信源的熵,并对该信源进行二元哈夫曼编码,得到码字和平均码长以及编码效率。
Matlab程序:
function [h,l]=huffman(p)
p=[1/2 1/4 1/8 1/16 1/16];
if length(find(p<0))~=0,
error('Not a prob.vector,there is negative component')
end
if abs (sum(p)-1)>10e-10
error('Input is not a prob.vector,the sun of the components is not equal to 1')
end
n=length(p);
q=p;
m=zeros(n-1,n);
for i=1:n-1
[q,l]=sort(q);
m(i,:)=[l(1:n-i+1),zeros(1,i-1)];
q=[q(1)+q(2),q(3:n),1];
end
for i=1:n-1
c(i,:)=blanks(n*n);
end
c(n-1,n)='0';
c(n-1,2*n)='1';
for i=2:n-1
c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))...
-(n-2):n*(find(m(n-i+1,:)==1)));
c(n-i,n)='0';
c(n-i,n+1:2*n-1)=c(n-i,1:n-1);
c(n-i,2*n)='1';
for j=1:i-1
c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,... n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));
end;
end
for i=1:n
h(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);
l1(i)=length(find(abs(h(i,:))~=32));
end
l=sum(p.*l1)
运行结果为:l =
1.8750
ans =
1
01
001
0000
0001
六、[实验总结]。