一、实验目的:
(1) 掌握LZW编码的原理;
(2) 用MATLAB的编程实现LZW编码;                                                  

二、实验仪器:

Matlab2015a

三、实验原理:                                                           

四、实验步骤:                                                                                                               

1.先利用Matlab编写函数;

2.再根据函数将实验要求生成实验结果;

3.根据实验内容填写实验报告;                                                          

五、实验内容及数据整理:  

用Matlab软件编程实现LZW编码

六、实验结果及讨论

clc;clear;close all%% 主函数Str_input = input('请输入一串字符:\n','s');N = length(Str_input);  % 获得输入字符串长度Str1 = unique(Str_input);dic_ini = { }; %字典初始时为空for i =1 : length(Str1)dic_ini(i,1)={Str1(i)};dic_ini(i,2)={num2str(i)};end% 循环走完整个字符串,扩充字典P = '';     % 初始化PC = '';     % 初始化Cdic = dic_ini; % 初始化待扩充字典Out_bits = ''; % 初始化输出码流for i=1:N   % 循环每一个字符Len_dic = size(dic,1);  % 当前字典长度C = Str_input(i);PC = strcat(P,C);for m=1:Len_dic    % 循环判断整个字典是否有当前的PCif strcmp(PC, dic(m,1))==1P = PC;break;else if m==Len_dic    % PC不在当前的字典里% 更新字典dic(Len_dic+1,1) = {PC};dic(Len_dic+1,2) = {num2str(Len_dic+1)};% 找到P在字典的位置,并输出相应码流for n=1:Len_dic    % 循环判断整个字典中当前P的位置if strcmp(P, dic(n,1))==1Out_bits = strcat(Out_bits,num2str(n));endend% 更新PP = Str_input(i);endendendend% 将最后一步的输出码流加上% 找到P在字典的位置,并输出相应码流for n=1:Len_dic    % 循环判断整个字典中当前P的位置if strcmp(P, dic(n,1))==1Out_bits = strcat(Out_bits,num2str(n));endend% 输出初始字典fprintf('初始字典:\n');disp(dic_ini);% 输出LZW编码后的码字流fprintf('LZW编码后的码字流:\t');disp(Out_bits);% 输出扩充的字典fprintf('扩充字典:\n');disp(dic);

Matlab LZW编码相关推荐

  1. MATLAB实现LZW编码与解码

    clear all clc str = input('请输入一串字符:','s'); disp("编码开始..."); %% 编码 N = length(str); % 获得输入字 ...

  2. C语言实现LZW编码

    LZW编码 算法思想 首先我们有一个0到255的ASCII码表,然后得到若干字符串对其进行编码,再对编码后的码流进行解码以验证. 编码: 初始化:前缀P为空,第一个字符进入后缀C 判断:P+C(P为a ...

  3. LZW编码与解码的那点事

    1. 前言 在前面一片文章TIFF文件结构详解里,我们在解析TIF文件中,提到使用了LZW算法.那么LZW算法是什么呢?就让我们揭开它的神秘面纱. 2. 什么是LZW LZW算法又叫"串表压 ...

  4. 【编码译码】基于matlab LDPC编码和解码【含Matlab源码 2560期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [编码译码]基于matlab LDPC编码和解码[含Matlab源码 2560期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  5. 科研小技巧——MATLAB的编码风格

    引言 MATLAB是我们在科研工作常用的一种语言,虽然最近有说MATLAB开始禁止一部分中国高校对其的使用,将来国产软件也会逐步赶上,但是目前来说,MATLAB还是值得我们进一步学习的. 这一篇文章介 ...

  6. Python实现英文文本的LZW编码压缩

    LZW编码采用隐字典码的形式完成压缩. 文本中符号并不是独立存在的,前一个符号对后一个符号的出现有着很大影响. LZW算法利用文本开头部分的特征,作为整个文本的特征,即利用文本开头部分的内容,生成固定 ...

  7. matlab simulink ldpc,matlab ldpc 编码解码

    matlab ldpc 编码解码 关注次数: 138 下载次数: 5 文件大小: 22K 下载需要积分: 2 代码分类: 开发平台: matlab 上传会员: ulongshi 下载代码 预览代码 D ...

  8. Matlab Shannon编码实验

    一.实验目的: (1)了解信源变长码的编码方法: (2)掌握香农编码方法: (3)掌握MATLAB的编程.                                                ...

  9. Matlab Shannon编码

    简述: 香农编码是是采用信源符号的累计概率分布函数来分配字码的.香农编码是根据香农第一定理直接得出的,指出了平均码长与信息之间的关系,同时也指出了可以通过编码使平均码长达到极限值.香农第一定理是将原始 ...

  10. LZW编码的学习与实现

    大家好,现在是2020年5月19日,不知不觉5年过去了,看到最近还有很多人评论我的这篇文章,非常的开心和满足,显然我写这篇文章所做的微小贡献帮助到了一些人.今天我从头到尾再看了一遍我写的东西,还是有一 ...

最新文章

  1. 多目标pareto最优解集构造方法
  2. 大数据量txt文本数据分块去重
  3. ios ---常用的图片处理技术
  4. 编写更好的 Java 单元测试的 7 个技巧
  5. IE不能為讀(written)問題解決(轉載)
  6. 内核启动的C语言阶段——start_kernel函数
  7. map.clear还是重新new_JS 的 new 到底是干什么的?
  8. html时间自动,编辑自动结束时间.html
  9. 2017.8.10 loli 测试
  10. 2021-06-20 表单详解
  11. Go框架,库和软件的精选列表
  12. python 内存不足_python内存不够
  13. 数据库实验第七周【集合查询数据更新】
  14. 指纹识别综述(4): 指纹匹配
  15. 【python】使用pyautogui进行屏幕捕捉实现自动化操作
  16. Android使用Service播放音乐
  17. 计算机中颜色质量,win10系统更改颜色质量的操作技巧
  18. tesseract-ocr 识别图片中的数字
  19. Oracle 实例恢复--转自沙弥的世界
  20. 《大侦探福尔摩斯2:诡影游戏》蓝光高清720P 1080P下载[2011最新动作]

热门文章

  1. 华硕路由域名访问_域名绑定ip怎么做?有什么方法?
  2. 22牛客多校1 J.Serval and Essay (启发式合并)
  3. 本周开课 | 10年运营专家亲授,掌握9类运营的核心技能,强化运营实力
  4. 手机浏览器部分不支持8位rgba色值
  5. 友善串口助手使用教程_友善串口调试助手怎么进行配置-友善串口调试助手使用教程...
  6. 警告提示:Capturing ‘self‘ strongly in this block is likely to lead to a retain cycle
  7. 队列 front rear
  8. 行云当如流水,浪潮云新一代行业云MEP战略带来了什么?
  9. hsv白色h值是多少_rgb颜色模型与hsv颜色模型的理解
  10. 盘点百度 4 个牛逼哄哄的开源项目