实验一 信息熵计算

一、实验目的和要求

1、掌握MATLAB的基本运算功能;
2、掌握信息熵的计算方法。
二、实验的主要内容
信源概率分布数据参考教材的练习题2.24(1) 计算该信源(前后无依赖关系)的信息熵H(X)。
建立文件ex1.m,调用 entropy.m,输入概率分布及个数,计算信息熵。
entropy.m如下:
function H=entropy(P,r)
要求:
1)判断是否符合概率分布条件;
2)判断是否符合概率和为1。

#-信源概率分布数据参考教材的练习题2.24(1) 计算该信源(前后无依赖关系)的信息熵H(X)。
#-要求:
#-1)判断是否符合概率分布条件;
#-2)判断是否符合概率和为1。
import numpy as np

print("----------------实验一-信息熵的计算------------------")

m=0
def judge(list1,num):
    global m
    result=0
    
    for i in range(num):
        if 0<= list1[i] <=1:
            print("P(a%d)符合概率分布条件"%(i+1))
            result +=list1[i]
        else:
            print("P(a%d)不符合概率分布条件"%(i+1))
    if result ==1:
        m=1
        print("全部的概率和为1,符合条件。")
    else :
        print("请输入符合概率分布的数值!")
            

def entropy(judge):
    
    pro=input("请输入概率分布,不同概率之间用空格隔开:")
    num=int(input("请输入概率分布的个数:"))
    a=pro.split(" ")
    b=[]
    for i in a:
        b.append(float(i))
    judge(b,num)
    if m==1:
        result=0
        for i in range(num):
            result -= b[i]*np.log2(b[i])
        return print("熵H(X)= %.4f (比特/符号)"%(result))
    else: return print("程序结束,请重新输入调用函数!")

entropy(judge)
            
        
        
    

    






    


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值