没有合适的资源?快使用搜索试试~ 我知道了~
shannon编码的MATLAB代码 function [W,L,q] =shannon(p)
资源推荐
资源详情
资源评论
function [W,L,q] =shannon(p)
if (length(find(p<=0))~=0)
error('Not a prob.vector.negative component');
end
if (abs(sum(p)-1)>10e-10)
error('Not a prob.vetor.component do not add up to 1')
end
[p,x]=array(p);
l=ceil(-log2(p));
P(l)=0;
n=length(p);
for i=2:n
P(i)=P(i-1)+p(i-1);
end
for i=1:n
for j=1:l(i)
temp(i,j)=floor(P(i)*2);
P(i)=P(i)*2-temp(i,j);
end
end
for i=1:n
for j=1:l(i)
if (temp(i,j)==0)
W(i,j)=48;
if (length(find(p<=0))~=0)
error('Not a prob.vector.negative component');
end
if (abs(sum(p)-1)>10e-10)
error('Not a prob.vetor.component do not add up to 1')
end
[p,x]=array(p);
l=ceil(-log2(p));
P(l)=0;
n=length(p);
for i=2:n
P(i)=P(i-1)+p(i-1);
end
for i=1:n
for j=1:l(i)
temp(i,j)=floor(P(i)*2);
P(i)=P(i)*2-temp(i,j);
end
end
for i=1:n
for j=1:l(i)
if (temp(i,j)==0)
W(i,j)=48;
资源评论
wdvgy0
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功