物理与电子电气工程学院
实验总结:
物理意义:对于给定的信源,在满足保真度准则下,必须传送的最小信息量,它既反映了用户容忍程度,也反映了信息率允许压缩的最小值,R(D)越大,越难压缩,反之可压缩率就大; 对于固定的信源分布,平均互信息量I(X;Y)是信道转移概率 p(bj/ai) 的下凸函数。也就是说:存在一个信道使某一特定信源经过此信道传输时,信道的平均互信息达到极小值. 用途:量化,频带压缩,数据转换,数据压缩等等 框图:
开始
输出率失真函数R(D) 汉明失真信源H(D) 信源熵 输入二源对称信道概率 结束
计算过程: 性质:R(D)是非负的实数,定义域为0到Dmax,其值为0到H(X);当D>Dmax时,R(D)=0。 R(D)是关于D的下凸函数,因而也是关于D的连续函数。 R(D)是关于D的严格递减函数。
对于同一D,信源分布越均匀,R(D)就越大,信源压缩的可能性越小,反之,若信源分布越不均匀,即信源剩余度越大R(D)就越小,压缩的可能性越大。
16
物理与电子电气工程学院
实验四、香农编码
一、实验目的
(1)了解香农编码的基本原理及其特点; (2)熟悉掌握香农编码的方法和步骤; (3)掌握Matlab编写香农编码的程序。 二、实验条件
计算机一台,MATLAB仿真软件。
三、实验原理
哈夫曼编码的步骤如下:
⑴ 将信源消息符号按其出现的概率大小依次排列 p(x1)≥p(x2)≥?≥ p(xn)
⑵取两个概率最小的字母分别配以0和1两码元,并将这两个概率相加作为一个新字母的概率,与未分配的二进符号的字母重新排队。 ⑶ 对重排后的两个概率最小符号重复步骤⑵的过程。 ⑷不断继续上述过程,直到最后两个符号配以0和1为止。
⑸ 从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。
四、实验内容
(1)根据香农编码的方法和步骤,用香农编码编写程序 (2)用编写的源程序验证书中例题的正确性。
五、实验报告要求
总结香农编码的基本原理及其特点?
function y=b2d10(x)%十进制小数转化为2进制 for i=1:8 temp=x.*2; if(temp<1) y(i)=0;
x=temp;
17
物理与电子电气工程学院
else y(i)=1;
x=temp-1; end end
clc;clear;
a=[0.20,0.19,0.18,0.17,0.15,0.10,0.01];
k=length(a);y=0; %数组长度(即行数或列数中的较大值) for i=1:k-1 %替换最大概率 for n=i+1:k if(a(i)
t=a(i); a(i)=a(n); a(n)=t; end end end
s=zeros(k,1);b=zeros(k,1);p=zeros(k,1); %表示k行一列全是0的数组 for m=1:k %步长为1 s(m)=y;
y=y+a(m);
b(m)=ceil(-log2(a(m))); ?il表示向离他最近的大整数圆整,求编码位数 x=zeros(b(m),1); %b(m)行一列全是0的数组 x=s(m); %求和结果,累加概率
p=b2d10(x); %调用函数b2d10,函数表示十进制小数转化为二进制 for r=1:b(m) %步长为1 z(r)=p(r); end
disp('输出结果为:') %disp相当于输出,c语言中的putchar disp('初始概率'),disp(a(m)) disp('求和结果'),disp(s(m)) disp('编码位数'),disp(b(m)) disp('最终编码'),disp(z') end
输出结果为:
18
初始概率 0.2000
求和结果 0
编码位数 3
最终编码 0 0 0
输出结果为:初始概率 0.1900
求和结果 0.2000
编码位数 3
最终编码 0 0 1
输出结果为:初始概率 0.1800
求和结果 0.3900
编码位数 3
最终编码 0 1
物理与电子电气工程学院
19
1
输出结果为: 初始概率 0.1700
求和结果 0.5700
编码位数 3
最终编码 1 0 0
输出结果为: 初始概率 0.1500
求和结果 0.7400
编码位数 3
最终编码 1 0 1
输出结果为: 初始概率 0.1000
求和结果 0.8900
编码位数 4
物理与电子电气工程学院
20