目的:减少冗余,提高有效性
码的分类:非奇异码、惟一可译码、即时码(前缀码)
码树:如果所有叶子都用了,则有 ∣ χ ∣ − 1 |\chi|-1 ∣χ∣−1是 D − 1 D-1 D−1的整数倍, ∣ χ ∣ |\chi| ∣χ∣为消息符号的个数,D为几元字母表,eg: D = 1 , 2 , 3 , D = 3 D={1,2,3},D=3 D=1,2,3,D=3
Kraft不等式(对于即时码):
对于D元字母表上的即使码,码字长度 l 1 , l 2 . . . . l ∣ χ ∣ l_1,l_2....l_{|\chi|} l1,l2....l∣χ∣满足以下不等式:
∑ i = 1 ∣ χ ∣ D − l i ≤ 1 \sum_{i=1}^{|\chi|}D^{-l_i}\le1 i=1∑∣χ∣D−li≤1
反之,若给定以上不等式的一组码字长度,存在相对应的即时码,码字长度是给定的长度。
Kraft不等式(对于非奇异码)
对于D元字母表上的即使码,码字长度 l 1 , l 2 . . . . l ∣ χ ∣ l_1,l_2....l_{|\chi|} l1,l2....l∣χ∣满足以下不等式:
∑ i = 1 ∣ χ ∣ D − l i ≤ 1 \sum_{i=1}^{|\chi|}D^{-l_i}\le1 i=1∑∣χ∣D−li≤1
怎么一样???
最优码
构建优化问题,目标函数是 L = ∑ p i l i L=\sum p_il_i L=∑pili,限制条件: ∑ D − l I ≤ 1 \sum D^{-l_I}\le1 ∑D−lI≤1,利用拉格朗日乘子法将带约束的最小化问题转换为求下式得最小化问题:
J = ∑ p i l i + λ ∑ D − l i J=\sum p_il_i+\lambda \sum D^{-l_i} J=∑pili+λ∑D−li
对码字进行求导等于0:
∂ J ∂ l i = p i − λ D − l i l o g e D = 0 \frac{\partial J}{\partial l_i}=p_i-\lambda D^{-l_i}log_eD=0 ∂li∂J=pi−λD−lilogeD=0
D − l i = p i λ l o g e D ⟹ λ = 1 l o g e D , p i = D − l i D^{-l_i}=\frac{p_i}{\lambda log_eD} \Longrightarrow \lambda=\frac{1}{log_eD},p_i=D^{-l_i} D−li=λlogeDpi⟹λ=logeD1,pi=D−li
则最优码长:
l i ∗ = − l o g D p i l_i^*=-log_Dp_i li∗=−logDpi
若取码字长度为整数,此时希望的码长:
L ∗ = ∑ p i l i = − ∑ p i l o g D p i = H D ( X ) L^*=\sum p_il_i=-\sum p_ilog_Dp_i=H_D(X) L∗=∑pili=−∑pilogDpi=HD(X)
引出以下定理:随机变量X的任一D元即时码的期望长度必定大于或等于熵 H D ( X ) H_D(X) HD(X),即 L ≥ H D ( X ) L \ge H_D(X) L≥HD(X),当且仅当 p i = D − l i p_i=D^{-l_i} pi=D−li
最优码的边界:
定理:设 l 1 ∗ , l 2 ∗ . . . l ∣ χ ∣ ∗ l_1^*,l_2^*...l_{|\chi|}^* l1∗,l2∗...l∣χ∣∗是关于信源分布p和D元字母表的一组最优码长, L ∗ L^* L∗为最优码长期望的长度 L ∗ = ∑ p i l i L^*=\sum p_il_i L∗=∑pili,则:
H D ( X ) ≤ L ∗ < H D ( X ) + 1 H_D(X) \le L^*
note:
+1
是由于 − l o g D p i -log_D{p_i} −logDpi并不总是整数造成的,可通过扩展将多字符进行分组编码缩减每个字符的附加位。
定义 L n L_n Ln为输入字符期望码字长度,设 l ( x 1 , x 2 , . . . , x n ) l(x_1,x_2,...,x_n) l(x1,x2,...,xn)是与 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn)相应的二级制码字长度,则有:
L n = 1 n ∑ p ( x 1 , x 2 , . . . , x n ) l ( x 1 , x 2 , . . . , x n ) = 1 n E [ l ( x 1 , x 2 , . . . , x n ) ] L_n=\frac{1}{n}\sum p(x_1,x_2,...,x_n)l(x_1,x_2,...,x_n)=\frac{1}{n}E[l(x_1,x_2,...,x_n)] Ln=n1∑p(x1,x2,...,xn)l(x1,x2,...,xn)=n1E[l(x1,x2,...,xn)]
则有最优码的界应用此编码
H ( x 1 , x 2 , . . . , x n ) ≤ E [ l ( x 1 , x 2 , . . . , x n ) ] ≤ H ( x 1 , x 2 , . . . , x n ) + 1 H(x_1,x_2,...,x_n)\le E[l(x_1,x_2,...,x_n)]\le H(x_1,x_2,...,x_n)+1 H(x1,x2,...,xn)≤E[l(x1,x2,...,xn)]≤H(x1,x2,...,xn)+1
由于 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn是统计独立同分布的i.i.d,则有:
H ( x 1 , x 2 , . . . , x n ) = ∑ H ( x i ) = n H ( X ) ⇒ H ( X ) ≤ L n < H ( X ) + 1 n H(x_1,x_2,...,x_n)=\sum H(x_i)=nH(X)\Rightarrow H(X)\le L_n
如果随机过程是平稳的,则:
H ( x 1 , x 2 , . . . , x n ) n ≤ L n → H ( χ ) \frac{H(x_1,x_2,...,x_n)}{n}\le L_n \to H(\chi) nH(x1,x2,...,xn)≤Ln→H(χ)
n → ∞ n\to \infty n→∞时,每字符期望长度趋于熵率 H ( χ ) H(\chi) H(χ).
note
: D ( p ∣ ∣ q ) = ∑ x p ( x ) l o g p ( x ) q ( x ) 、 H ( p ) = ∑ x p ( x ) l o g 1 p ( x ) D(p||q)=\sum_xp(x)log\frac {p(x)}{q(x)}、H(p)=\sum_xp(x)log\frac{1}{p(x)} D(p∣∣q)=x∑p(x)logq(x)p(x)、H(p)=x∑p(x)logp(x)1χ \chi χ是消息个数,D是D元码。
长度序列与按概率分布排列的次序相反,即若 p j > p k p_j>p_k pj>pk,则 l j < l k l_j
lj<lk
最长的码字有相同的长度
最长的两个码字仅在最后一位上有差别,且对应于两个最小可能发生的字符