一、简介
matlab 基于霍夫曼编码译码界面设计
二、部分源码
function bm_Callback(hObject, eventdata, handles)
% hObject handle to bm (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clc; %清除command window
data=get(handles.xy,'String'); %读入信源
data=uint8(data); %将信源转化为uint8
[codeword_OK,simbolsout1,fout1,simbolsout2,fout2,zipped,info] = norm2huff(data); %编码
%排序前
for i=1:length(fout1)
fout1str{i}=num2str(fout1(i)); %将排序之前的概率转换成cell型数据,方便listbox使用
str1{i}=char(simbolsout1(i)-1); %将排序之前的码元转换成cell型数据,方便listbox使用,char将ASCII码转成字符
end
handles.str1=str1; %得到排序前码元
handles.fout1str=fout1str; %得到排序前概率
%排序后
for i=1:length(fout2)
str2{i}=char(simbolsout2(i)-1); %将排序之后的码元转换成cell型数据,方便listbox使用,char将ASCII码转成字符
end
handles.str2=str2; %得到排序后码元
%得到编码
for i=1:length(codeword_OK)
codestr{i}=num2str(double(codeword_OK{i}));
codestr{i}=codestr{i}(find(codestr{i}~=' ')); %去掉字符串里的空格,得到霍夫曼码
end
handles.codestr=codestr; %保存霍夫曼码
handles.zipped=zipped; %保存编码的结果
handles.info=info;
guidata(hObject, handles); %更新handles结构体
三、运行结果
四、matlab版本
MATLAB R2019a
五、学习与交流
文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信