好文档 - 专业文书写作范文服务资料分享网站

武汉理工大学信息理论编码实验

天下 分享 时间: 加入收藏 我要投稿 点赞

实验1

1.p=0.00001:0.001:0.99999; h=-p.*log2(p)-(1-p).*log2(1-p); plot(p,h);

title('二进熵函数曲线'); ylabel('H(p,1-p)')

2. p=linspace(eps,1-eps,100); q=linspace(eps,1-eps,100); [P,Q]=meshgrid(p,q); P_Q=P+Q; for n=1:100 for m=1:100 if P_Q(n,m)>=1 Q(n,m)=nan; end end end

H=-P.*log2(P)-Q.*log2(Q)-(1-P-Q).*log2(1-P-Q); mesh(P,Q,H)

title('三维熵函数的图形')

3.function H=entropy(p)

%该函数用来计算包含任意多个符号的信源熵 %p为DMS的概率分布,行向量

if sum(p)~=1 %判断是否满足概率完备性

error('!!!不满足概率完备性,重新输入信源分布') return else

L=length(p) %得到信源符号的个数 H=0; %熵值初始化为零 for i=1:L

H=H-p(i)*log2(p(i)); %累加熵函数各个子项

end end

3.[p,q]=meshgrid(0.000001:0.01:1,0.000001:0.01:1);

Hnoise=-p.*log2(p)-(1-p).*log2(1-p); % 噪声熵 x=(1-p).*q+p.*(1-q);

I=-x.*log2(x)-(1-x).*log2(1-x)-Hnoise; mesh(p , q , I)

实验2

代码

clc;clear all;

N = input('输入信源符号X的个数N='); M = input('输出信源符号Y的个数M=');

p_yx=zeros(N,M); %程序设计需要信道矩阵初始化为零 fprintf('输入信道矩阵概率\\n') for i=1:N

for j=1:M

p_yx(i,j)=input('p_yx=');%输入信道矩阵概率 if p_yx(i)<0

error('不符合概率分布')

end end end

for i=1:N %各行概率累加求和 s(i)=0; for j=1:M

s(i)=s(i)+p_yx(i,j); end end

for i=1:N %判断是否符合概率分布 if (s(i)<=0.999999||s(i)>=1.000001) error('不符合概率分布') end end

b=input('输入迭代精度:');%输入迭代精度 for i=1:N

p(i)=1.0/N; %取初始概率为均匀分布 end

for j=1:M %计算q(j) q(j)=0; for i=1:N

q(j)=q(j)+p(i)*p_yx(i,j); end

end

for i=1:N %计算a(i) d(i)=0; for j=1:M if(p_yx(i,j)==0)

d(i)=d(i)+0; else

d(i)=d(i)+p_yx(i,j)*log(p_yx(i,j)/q(j)); end end

a(i)=exp(d(i)); end u=0;

for i=1:N %计算u u=u+p(i)*a(i); end

IL=log2(u); %计算IL

IU=log2(max(a));%计算IU n=1;

while((IU-IL)>=b) %迭代计算 for i=1:N

p(i)=p(i)*a(i)/u; %重新赋值p(i) end

for j=1:M %计算q(j) q(j)=0; for i=1:N

q(j)=q(j)+p(i)*p_yx(i,j); end end

for i=1:N %计算a(i) d(i)=0; for j=1:M

if(p_yx(i,j)==0) d(i)=d(i)+0; else

d(i)=d(i)+p_yx(i,j)*log(p_yx(i,j)/q(j)); end end

a(i)=exp(d(i)); end u=0;

for i=1:N %计算u u=u+p(i)*a(i); end

IL=log2(u); %计算IL IU=log2(max(a));%计算IU n=n+1; end

fprintf('信道矩阵为:\\n'); disp(p_yx);

fprintf('迭代次数n=%d\\n',n);

fprintf('信道容量C=%f比特/符号',IL);

实验3

哈夫曼编码和二进制编码优缺点比较

(1)哈夫曼编码所形成的码字不是唯一的,但编码效率是唯一的 在对最小的两个概率符号赋值时,可以规定为大的为“1”、小的为“0”,反之也可以。如果两个符号的出现概率相等时,排列时无论哪个在前都是可以的,所以哈夫曼所构造的码字不是唯一的,对于同一个信息源,无论上述的前后顺序如何排列,它的平均码长是不会改变的,所以编码效率是唯一的。

(2)只有当信息源各符号出现的概率很不平均的时候,哈夫曼编码的效果才明显。

(3)哈夫曼编码必须精确地统计出原始文件中每个符号的出现频率,如果没有这些精确的统计,将达不到预期的压缩效果。霍夫曼编码通常要经过两遍操作,第一遍进行统计,第二遍产生编码,所以编码速度相对慢。另外实现的电路复杂,各种长度的编码的译码过程也是比较复杂的,因此解压缩的过程也比较慢。

武汉理工大学信息理论编码实验

实验11.p=0.00001:0.001:0.99999;h=-p.*log2(p)-(1-p).*log2(1-p);plot(p,h);title('二进熵函数曲线');ylabel('H(p,1-p)')2.p=linspace(eps,1-eps,100);q=linspace(eps,1-eps,100);[P,Q]=me
推荐度:
点击下载文档文档为doc格式
4hbmb8vvgt48fsd2ak66
领取福利

微信扫码领取福利

微信扫码分享