香农编码的matlab仿真实现实验报告_香农编码例题

香农编码的matlab仿真实现实验报告_香农编码例题实验目的:通过该实验,掌握通过计算机实验可变长信源编码方法,进一步熟悉香农编码,费诺编码以及霍夫曼编码方法。实验环境:Matlab7.1实验内容及过程:1.对于给定的信源的概率分布,用MATLAB语言实现香农编码。2.对于给定的信源的概率分布,用MATLAB语言实现霍夫曼编码。3.对于给定的信源的概率分布,用MATLAB语言实现游程编码。以下为M文件:1.funct…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

实 验 目 的: 通过该实验,掌握通过计算机实验可变长信源编码方法,进一步熟悉香农编码,费诺编码以及霍夫曼编码方法。

实 验 环 境: Matlab7.1

实 验 内 容 及 过 程:

1.对于给定的信源的概率分布,用MATLAB语言实现香农编码。

2. 对于给定的信源的概率分布,用MATLAB语言实现霍夫曼编码。

3. 对于给定的信源的概率分布,用MATLAB语言实现游程编码。

以下为M文件:

1.

function c = shannon(p)% p = [0.2 0.15 0.15 0.1 0.1 0.1 0.1 0.1]% shannon(p)[p , index] = sort(p) ;p = fliplr(p) ; n = length(p) ;pa = 0 ; for i = 2:n??? pa(i) = pa(i – 1) + p(i – 1) ;?? endk = ceil(-log2(p)) ; c = cell(1,n) ; for i = 1:n??? c{i} = ” ;??? tmp = pa(i) ;??? for j = 1:k(i)??????? tmp = tmp * 2 ;??????? if tmp >= 1 ??????????? tmp = tmp – 1 ;??????????? c{i}(j) = ‘1’ ;??????? else??????????? c{i}(j) = ‘0’ ;??????? end??? endendc = fliplr(c) ;c(index) = c ;

2.

function c = huffman(p)n = size(p , 2) ;if n == 1 ??? c = cell(1,1) ;??? c{1} = ” ;??? return???? end[p1 , i1] = min(p) ;index = [(1:i1-1) , (i1+1:n)] ;p = p(index) ;n = n – 1 ;[p2 , i2] = min(p) ;index2 = [(1:i2-1) , (i2+1:n)] ;p = p(index2);i2 = index(i2) ; index = index(index2) ; p(n) = p1 + p2 ; c = huffman(p) ; c{n+1} = strcat(c{n} , ‘1’) ; c{n} = strcat(c{n} , ‘0’) ; index = [index , i1 , i2] ;c(index) = c ;

3.

>> image1=imread(‘C:\Program Files\MATLAB71\work\1\girl.jpg’); %读入图像

>> imshow(image1); %显示原图像(右图)

% 以下程序是将原图像转换为二值图像

image2=image1(:); %将原始图像写成一维的数据并设为 image2

image2length=length(image2); % 计算image2的长度

for i=1:1:image2length % for 循环,目的在于转换为二值图像

if image2(i)>=127

image2(i)=255;

else image2(i)=0;

end

end

image3=reshape(image2,146,122); % 重建二维数组图像

,并设为image3

figure,imshow(image3);%(右图)

% 以下程序为对原图像进行游程编码,压缩

X=image3(:); %令X为新建的二值图像的一维数据组

x=1:1:length(X); % 显示游程编码之前的图像数据

figure,plot(x,X(x));

j=1;

image4(1)=1;

for z=1:1:(length(X)-1) % 游程编码程序段

if X(z)==X(z+1)

image4(j)=image4(j)+1;

else

data(j)=X(z); % data(j)代表相应的像素数据

j=j+1;

image4(j)=1;

end

end

data(j)=X(length(X)); %

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197225.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月8日 上午7:43
下一篇 2025年9月8日 上午8:31


相关推荐

  • div内图片和文字水平垂直居中「建议收藏」

    div内图片和文字水平垂直居中「建议收藏」大小不固定的图片、多行文字的水平垂直居中本文综述想必写css的都知道如何让单行文字在高度固定的容器内垂直居中,但是您知道或者想过让行数不固定的文字在高度固定的容器内垂直居中呢?本文将会告诉你如何实现多行文字的垂直居中显示。关于图片垂直居中显示,想必很多写css的人都研究过,或者说是搜寻过方法。淘宝团队似乎提供了一种不错的方法,用font-size解决IE下垂直居中的问题,是

    2025年6月26日
    4
  • 查看修改qcow2文件

    查看修改qcow2文件描述可以通过 qemu nbd 工具映射 qcow2 文件到本地设备 然后 mount 到本地目录进行查看或者修改 步骤 1 安装相关软件 kpartx qemu nbdapt getintallkpa 加载内核模块 nbdmodproben part 8 查看 nbd 模块的加载 lsmod grepnbd3 映射 qcow2 文件到本地设备 qemu nbd c

    2026年3月19日
    1
  • AMD锐龙Ryzen CPU系列安装黑苹果MacOS 10.14 Mojave安装教程[通俗易懂]

    AMD锐龙Ryzen CPU系列安装黑苹果MacOS 10.14 Mojave安装教程[通俗易懂]教程需要的工具BootDiskUtility:http://cvad-mac.narod.ru/index/bootdiskutility_exe/0-5ParagonHardDiskManager:https://china.paragon-software.com/这个要注册账号才能用hf…

    2022年5月23日
    156
  • python tkinter窗口美化_jquery进度条插件

    python tkinter窗口美化_jquery进度条插件前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月30日
    7
  • wep激活成功教程——模拟chopchop攻击

    wep激活成功教程——模拟chopchop攻击在本文中 主要讲解了 chopchop 攻击的思想 用一道题目来感受 chopchop 攻击 该题目不是在于激活成功教程实际场景中的 wep 而是感受 chop 的思想 毕竟现在攻击 wep 的网上脚本比比皆是 比较著名的就是 Aircrack ng 无线激活成功教程工具套件 WEP WiredEquiVal 有线等效加密 其激活成功教程为利用加密体制缺陷 通过收集足够的数据包 使用分析密算法还原出密码 协议要求

    2026年3月16日
    2
  • JAVA客户端功能的实现QQ_java实现QQ聊天(JFrame客户端+服务器)

    JAVA客户端功能的实现QQ_java实现QQ聊天(JFrame客户端+服务器)【实例简介】用java实现简易QQ聊天工具,具有JFrame客户端和服务器,可以体验登陆、多人之间聊天、服务器后台管理等功能。【实例截图】【核心代码】QQ聊天工具└──简易版QQ聊天工具├──QQClient│├──QQClient.cfg│├──QQClient.exe│├──QQClient.jar│├──id││└──id.txt│└─…

    2022年7月7日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号