永发信息网

用费诺编码实现信源编译码

答案:1  悬赏:10  手机版
解决时间 2021-07-29 03:07
用费诺编码方式实现信源编译码的程序
最佳答案

我回答你的问题啊!呵呵,你怎么不给分啊????


实验命令:


clc;clear all;
N=input('N=');%输入信源符号的个数
s=0;l=0;H=0;
for i=1:N
fprintf('第%d个',i);
p(i)=input('p=');%输入信源符号概率分布矢量,p(i)<1
if p(i)<=0
error('不符合概率分布')
end
s=s+p(i)
H=H+(- p(i)*log2(p(i)));%计算信源信息熵
end
if (s<=0.999999||s>=1.000001)
error('不符合概率分布')
end
tic;
for i=1:N-1 %按概率分布大小对信源排序
for j=i+1:N
if p(i)<p(j)
m=p(j);p(j)=p(i);p(i)=m;
end
end
end
x=f1(1,N,p,1);
for i=1:N %计算平均码长
L(i)=length(find(x(i,:)));
l=l+p(i)*L(i);
end
n=H/l; %计算编码效率
fprintf('按概率降序排列的码字:\n');
disp(x) %显示按概率降序排列的码字
fprintf('平均码长:\n');
disp(l)% 显示平均码长
fprintf('信源信息熵:\n');
disp(H)%显示信源信息熵
fprintf('编码效率:\n');
disp(n) %显示编码效率
fprintf('计算耗时time= %f\n',toc);
再建立两个M文件:


%函数f1存放于f1.m
function x=f1(i,j,p,r)
global x;
x=char(x);
if(j<=i)
return;
else
q=0;
for t=i:j %对于区间[i,j]自上而下求累加概率值
q=p(t)+q;y(t)=q;
end
for t=i:j%把所有自上而下的累加概率值与该区间总概率值减该累加概率值之差取绝对值存在一数组
v(t)=abs(y(t)-(q-y(t)));
end
for t=i:j
if(v(t)==min(v)) %求该数组中最小的一个值来确定分界点位置
for k=i:t %赋值码字
x(k,r)='0';
end
for k=(t+1):j
x(k,r)='1';
end
d=t;
f1(i,d,p,r+1); %递归调用及相互调用
f2(d+1,j,p,r+1);
f1(d+1,j,p,r+1);
f2(i,d,p,r+1);
else
end
end
end
return;


第二个:


%函数f2存放于f2.m
function x=f2(i,j,p,r)
global x;
x=char(x);
if(j<=i)
return;
else
q=0;
for t=i:j %对于区间[i,j]自上而下求累加概率值
q=p(t)+q;y(t-i+1)=q;
end
for t=1:j-(i-1)%把所有自上而下的累加概率值与该区间总概率值减该累加概率值之差取绝对值存在一数组
v(t)=abs(y(t)-(q-y(t)));
end
for t=1:j-(i-1)
if(v(t)==min(v)) %求该数组中最小的一个值来确定分界点位置
d=t+i-1;
for k=i:d %赋值码字
x(k,r)='0';
end
for k=(d+1):j
x(k,r)='1';
end
f2(d+1,j,p,r+1);%递归调用及相互调用
f1(i,d,p,r+1);
f2(i,d,p,r+1);
f1(d+1,j,p,r+1);
else
end
end
end
return;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁知道SORRY,SORRY中韩庚去哪了?
怎样可以让6岁左右的小朋友长得更高?
会日语的朋友帮帮忙翻译
海林市牡丹江完美擦鞋专业皮革保养店这个地址
nba 2k10 ps2
问道十级去哪升级快啊
北京一家文化传播公司真的以欺诈罪将东方神起
天然元 恒寿堂 新生命哪个补钙好
圣诞节和情人节送女朋友什么礼物好啊?
张涵韵今年多大了?还有她生日是几号?
刀锋之山成就卡在71/86
谁可以给个最牛B的红眼刷图加点
川汇区周口彭辉早餐店哪位知道具体地址啊
合肥哪里有恒源祥专卖店和豪门内衣专卖
QQ飞车在多人游戏房间怎么加人进车队呀
推荐资讯
用一个长10厘米,宽4厘米的长方形,剪一个最
想求一个书的名字
英语名言名句带翻译的,100句英语句子(谚语和
打篮球的天赋要怎么看?
为什么内存卡插完读卡器再放进手机就读不出来
抑 \郁 求求求,,
镶工副职11级 得需要多少活力
彩虹岛送红钻
阿斗当皇帝下一句,学知不足 的下一句是什么?
轿车 想问问 10万元多有的车 那个好些?
数学用一桶橡皮泥做一种四轮的汽车模型,如果
有关中秋节不同地方的风俗介绍.100字以下
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?