Matlab LZW编码
一、实验目的:
(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编码相关推荐
- MATLAB实现LZW编码与解码
clear all clc str = input('请输入一串字符:','s'); disp("编码开始..."); %% 编码 N = length(str); % 获得输入字 ...
- C语言实现LZW编码
LZW编码 算法思想 首先我们有一个0到255的ASCII码表,然后得到若干字符串对其进行编码,再对编码后的码流进行解码以验证. 编码: 初始化:前缀P为空,第一个字符进入后缀C 判断:P+C(P为a ...
- LZW编码与解码的那点事
1. 前言 在前面一片文章TIFF文件结构详解里,我们在解析TIF文件中,提到使用了LZW算法.那么LZW算法是什么呢?就让我们揭开它的神秘面纱. 2. 什么是LZW LZW算法又叫"串表压 ...
- 【编码译码】基于matlab LDPC编码和解码【含Matlab源码 2560期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [编码译码]基于matlab LDPC编码和解码[含Matlab源码 2560期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
- 科研小技巧——MATLAB的编码风格
引言 MATLAB是我们在科研工作常用的一种语言,虽然最近有说MATLAB开始禁止一部分中国高校对其的使用,将来国产软件也会逐步赶上,但是目前来说,MATLAB还是值得我们进一步学习的. 这一篇文章介 ...
- Python实现英文文本的LZW编码压缩
LZW编码采用隐字典码的形式完成压缩. 文本中符号并不是独立存在的,前一个符号对后一个符号的出现有着很大影响. LZW算法利用文本开头部分的特征,作为整个文本的特征,即利用文本开头部分的内容,生成固定 ...
- matlab simulink ldpc,matlab ldpc 编码解码
matlab ldpc 编码解码 关注次数: 138 下载次数: 5 文件大小: 22K 下载需要积分: 2 代码分类: 开发平台: matlab 上传会员: ulongshi 下载代码 预览代码 D ...
- Matlab Shannon编码实验
一.实验目的: (1)了解信源变长码的编码方法: (2)掌握香农编码方法: (3)掌握MATLAB的编程. ...
- Matlab Shannon编码
简述: 香农编码是是采用信源符号的累计概率分布函数来分配字码的.香农编码是根据香农第一定理直接得出的,指出了平均码长与信息之间的关系,同时也指出了可以通过编码使平均码长达到极限值.香农第一定理是将原始 ...
- LZW编码的学习与实现
大家好,现在是2020年5月19日,不知不觉5年过去了,看到最近还有很多人评论我的这篇文章,非常的开心和满足,显然我写这篇文章所做的微小贡献帮助到了一些人.今天我从头到尾再看了一遍我写的东西,还是有一 ...
最新文章
- 多目标pareto最优解集构造方法
- 大数据量txt文本数据分块去重
- ios ---常用的图片处理技术
- 编写更好的 Java 单元测试的 7 个技巧
- IE不能為讀(written)問題解決(轉載)
- 内核启动的C语言阶段——start_kernel函数
- map.clear还是重新new_JS 的 new 到底是干什么的?
- html时间自动,编辑自动结束时间.html
- 2017.8.10 loli 测试
- 2021-06-20 表单详解
- Go框架,库和软件的精选列表
- python 内存不足_python内存不够
- 数据库实验第七周【集合查询数据更新】
- 指纹识别综述(4): 指纹匹配
- 【python】使用pyautogui进行屏幕捕捉实现自动化操作
- Android使用Service播放音乐
- 计算机中颜色质量,win10系统更改颜色质量的操作技巧
- tesseract-ocr 识别图片中的数字
- Oracle 实例恢复--转自沙弥的世界
- 《大侦探福尔摩斯2:诡影游戏》蓝光高清720P 1080P下载[2011最新动作]
热门文章
- 华硕路由域名访问_域名绑定ip怎么做?有什么方法?
- 22牛客多校1 J.Serval and Essay (启发式合并)
- 本周开课 | 10年运营专家亲授,掌握9类运营的核心技能,强化运营实力
- 手机浏览器部分不支持8位rgba色值
- 友善串口助手使用教程_友善串口调试助手怎么进行配置-友善串口调试助手使用教程...
- 警告提示:Capturing ‘self‘ strongly in this block is likely to lead to a retain cycle
- 队列 front rear
- 行云当如流水,浪潮云新一代行业云MEP战略带来了什么?
- hsv白色h值是多少_rgb颜色模型与hsv颜色模型的理解
- 盘点百度 4 个牛逼哄哄的开源项目