博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验七 香农编码
阅读量:3966 次
发布时间:2019-05-24

本文共 564 字,大约阅读时间需要 1 分钟。

一、实验目的

编程,对某一离散无记忆信源实现香农编码,输出消息符号及其对应的码字。

设离散无记忆信源,在这里插入图片描述
在这里插入图片描述
。二进制香农编码过程如下:

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

2、按下式计算第i个消息的二进制代码组的码长,并取整。

3、为了编成唯一可译码,首先计算第i个消息的累加概率

4、将累加概率Pi (为小数)变成二进制数

5、除去小数点,并根据码长li ,取小数点后li 位数作为第i个消息的码字。

二、实验环境

Dev

三、实验过程:

在这里插入图片描述

#include
#include
int main(){
float a[100]={
0},sum=0,temp,p[100]={
0},q[100]={
0}; int i,j,cnt,k[100]={
0},s[100][100]={
0}; printf("请输入信源符号个数:"); scanf("%d",&cnt); for(i=0;i
1.0001){
printf("您输入的数据不符合要求,请重新输入:\n"); return 0; } else{
//冒泡排序 for(i=0;i
j&&q[i]

转载地址:http://dmfki.baihongyu.com/

你可能感兴趣的文章
libreoffice/openoffice c/c++转换office格式为pdf
查看>>
Tomcat 7.0 64位免安装解压版 安装及配置
查看>>
Android 网络编程 初级入门(一)
查看>>
No enclosing instance of type Demo06 is accessible.
查看>>
计算机发展中的两大“杀手”
查看>>
MDK5(Keil for ARM) 工程建立时遇到的问题集锦
查看>>
Ubuntu下安装GTK+及Glade开发C应用界面
查看>>
assertion 'GTK_IS_WIDGET (widget)' failed的解决办法
查看>>
Ubuntu登录管理员账户时,输入密码后一直在登录界面循环
查看>>
Linux下的定时器以及POSIX定时器:timer_settime()
查看>>
POSIX定时器timer_create()以及线程中的gettid() 和pthread_self()
查看>>
c /c++中日期和时间的获取:strftime()函数
查看>>
C语言 回调函数
查看>>
c语言swap(a,b)值交换的4种实现方法
查看>>
C++小知识点
查看>>
【转载】zedboard中PL_GPIO控制(8个sw、8个leds)
查看>>
zedboard烧写程序到FLASH,用于QSPI Flash启动
查看>>
软件工程师,你必须知道的20个常识
查看>>
常用STL算法2_查找
查看>>
常用STL算法3_排序
查看>>