资源简介
huffman_normal.m
代码片段和文件信息
clear
clc
N=255;
n=1920;
m=1080;
% N=10;%小数据量测试用
% n=4;%小数据量测试用
% m=5;%小数据量测试用
%产生正态分布随机数
E1=randn(nm);
E2= mapminmax(E101);%将数据归一化0-1之间
E3=round(0+N.*E2);
data=E3;
histogram(data)%绘制数据图像
title(‘正态分布‘)
Num=2*(N+1)-1;%总节点数
P=zeros(1N+1);
for i=0:N%计算每个随机数的概率
P(i+1)=length(find(data==i))/(n*m);
end
K=0:N;
%判断概率的合理性
if length(find(P<0))~=0
errordlg(‘出现小于0的概率!‘)
end
if abs(sum(P)-1)>10e-10
errordlg(‘概率不具备完备性!‘)
end
[P1index]=sort(P‘descend‘);%对概率进行降序排列
K1=K(index);%将数据按照概率的降序进行排列
%完成对所有节点的初始化
for i=1:Num
nodes(i).parent=0;
nodes(i).lchild=-1;
nodes(i).rchild=-1;
if i<=N+1
nodes(i).weight=P1(i);
nodes(i).data=K1(i);
else
nodes(i).weight=-1;
nodes(i).data=-2;
end
end
index1=[00];
Min=[00];
q=0;
%构造哈夫曼树
for i=1:N
for k=1:2
M=10;
for j=1:N+1+(i-1)
if(M>nodes(j).weight || nodes(j).weight==M)
M=nodes(j).weight;
index1(k)=j;
else
M=M;
end
end
Min(k)=M;
nodes(index1(k)).weight=10;
end
if(index1(1) q=q+1;
else
temp=index1(1);
index1(1)=index1(2);
index1(2)=temp;
end
nodes(N+1+i).weight=Min(1)+Min(2);
nodes(N+1+i).lchild=index1(1);
nodes(N+1+i).rchild=index1(2);
nodes(index1(1)).parent=N+1+i;
nodes(index1(2)).parent=N+1+i;
end
for i=1:N+1
code(i).data=0;
code(i).Code=[];
end
%用来存放每个节点的编码和原始数据
for i=1:N+1
code1(i).data=0;
code1(i).Code=[];
code1(i).P=[];
end
%获取每个数据的编码
for i=1:N+1
code(i).data=nodes(i).data;
code1(i).P=P1(i);
j=i;
now=N+1;
while(nodes(j).parent~=0)
k=nodes(j).parent;
if(nodes(k).lchild==j)
code(i).Code(now)=0;
else
code(i).Code(now)=1;
end
j=nodes(j).parent;
now=now-1;
end
for l=now:N
code1(i).Code(l-(now-1))=code(
- 上一篇:基于matlab的风功率预测模型及程序.rar
- 下一篇:最速下降法matlab
相关资源
- kreisDemod.m
- 数字信号处理matlab版_代码.rar
- RMSE.m
- GCSO.m
- C4.5算法matlab实现以及西瓜数据集.ra
- Matlab仿真_高勇.caj
- guangfu.mdl
- 无人驾驶车辆模型预测控制配套matl
- DVR.mdl
- 基于MATLAB的同步发电机励磁系统仿真
- MATLAB仿真[张雪英][程序源代码].rar
- Matlab学习视频.txt
- quan.mdl
- writetxt.m
- M_M_1.m
- Matlab2018aMacISO.txt
- SAR_Figure_7_5.m
- SAR_Figure_5_18.m
- SAR_Figure_5_16.m
- SAR_Figure_5_17.m
- MATLAB2019A破解版百度云链接(已亲测
- Matlab2018B破解版云盘链接.rar
- chap2_3.m
- MATLAB控制系统仿真与详解附书光盘.
- 使用Matlab解析HEX386格式数据.zip
- 交通灯信号控制系统02.ms10
- OFDM图.m
- FxNewton.m
- yalmipmatlab解决UC问题范例1补充.rar
- SAM_SSD.m
评论
共有 条评论