实验八 费诺编码

一、实验目的

对某一离散无记忆信源实现费诺编码,输出消息符号及其对应的码字。
设离散无记忆信源在这里插入图片描述

编码过程如下:

1、将信源发出的N个消息符号按其概率的递减次序依次排列。

2、将依次排列的信源符号依概率分成两组,使两个组的概率和近于相同,并对各组赋予一个二进制代码符号“0”和“1”(编m进制 码就分成m组)。

3、将每一个大组的信源符号进一步再分成两组,使划分后的两个组的概率和近于相同,并又分别赋予两组一个二进制符号“0”和“1”

4、如此重复,直至每组值只剩下一个信源符号为止

5、信源符号所对应的码符号序列即为费诺码

二、实验环境

Dev

三、实验过程:

在这里插入图片描述

#include<stdio.h>
#include<math.h>
float sum1=0,sum2=0,num[100]= {
   0}, a[100]= {
   0},sum=0,temp,code[100]= {
   0},H=0,k=0;
int i,j,cnt,num1=0,codeside=0,ks[100]= {
   0},zj[100]= {
   0},zh[100]= {
   0},s[100][100]= {
   0},K[100]= {
   0};

int findPoint(int curPoint,int cnt) {
    //找出分界点


	int index=curPoint;

	for(i
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值