Advertisement

香农编码实验报告文档.doc

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本实验报告详细介绍了香农编码的基本原理及其应用,并通过具体实例阐述了香农编码的实现过程和效果分析。 湖南大学信息科学与工程学院实验报告 **实验名称**: 香农编码 **课程名称**: 信息论与编码 ### 实验目的: 1. 进一步熟悉香农编码算法; 2. 掌握C语言程序设计和调试过程中数值的进制转换、数值与字符串之间的转换等技术。 ### 实验要求 1. 输入:信源符号个数q,信源的概率分布p。 2. 输出:每个信源符号对应的Shannon编码的码字。 ### Shannon编码算法 ```plaintext procedure SHANNON(q, { }) 降序排列{ } for i = 1 to q do F() // 计算累加概率F() 将累加概率F(十进制小数)变换成二进制小数。 取小数点后的二进制数字作为第i个消息的码字。 end for end procedure ``` ### 调试过程 1. **错误**: fatal error C1083: Cannot open include file: unistd.h: No such file or directory 原因:unistd.h是Unix操作系统下所使用的头文件,Windows环境下不需要。 纠错:删除该行。 2. **错误**: - error C2144: syntax error : missing ) before type int - error C2064: term does not evaluate to a function 原因:l_i(int *)calloc(n,sizeof(int)); l_i后缺少赋值符号使之不能通过编译。 纠错:添加上赋值符号。 3. **错误**: - error C2018: unknown character 0xa1 原因:有不能被识别的字符。 纠错:在错误处将该字符改为符合C语言规范的字符 4. **错误**: - error C2021: expected exponent value, not 原因:if(fabs(sum-1.0)>DELTA); 这一行中 DELTA 宏定义不正确。 纠错:# define DELTA 0.000001 5. **错误**: - error C2143: syntax error : missing ; before } 原因:少写了;号。 纠错:在对应位置添加上;号。 参考代码: ```c #include #include #include #include #define DELTA 0.000001 //精度 void sort(float *p_i, int n); //排序函数声明 int main(void) { register int i,j; int n; //符号个数 float sum,p; //用sum来检验数据,用p来缓存了中间数据 fscanf(stdin,%d,&n); float *p_i = (float *)calloc(n,sizeof(float)); // 存储信道传输的概率 float *P_i = (float *)calloc(n,sizeof(float)); int *l_i = (int *)calloc(n,sizeof(int)); for(i=0;iDELTA) fprintf(stderr,Invalid input data \n); else { fprintf(stdout,Starting…\n\n); sort (p_i,n); //以降序排列概率 for(i=0;i

全部评论 (0)

还没有任何评论哟~
客服
客服
  • .doc
    优质
    本实验报告详细介绍了香农编码的基本原理及其应用,并通过具体实例阐述了香农编码的实现过程和效果分析。 湖南大学信息科学与工程学院实验报告 **实验名称**: 香农编码 **课程名称**: 信息论与编码 ### 实验目的: 1. 进一步熟悉香农编码算法; 2. 掌握C语言程序设计和调试过程中数值的进制转换、数值与字符串之间的转换等技术。 ### 实验要求 1. 输入:信源符号个数q,信源的概率分布p。 2. 输出:每个信源符号对应的Shannon编码的码字。 ### Shannon编码算法 ```plaintext procedure SHANNON(q, { }) 降序排列{ } for i = 1 to q do F() // 计算累加概率F() 将累加概率F(十进制小数)变换成二进制小数。 取小数点后的二进制数字作为第i个消息的码字。 end for end procedure ``` ### 调试过程 1. **错误**: fatal error C1083: Cannot open include file: unistd.h: No such file or directory 原因:unistd.h是Unix操作系统下所使用的头文件,Windows环境下不需要。 纠错:删除该行。 2. **错误**: - error C2144: syntax error : missing ) before type int - error C2064: term does not evaluate to a function 原因:l_i(int *)calloc(n,sizeof(int)); l_i后缺少赋值符号使之不能通过编译。 纠错:添加上赋值符号。 3. **错误**: - error C2018: unknown character 0xa1 原因:有不能被识别的字符。 纠错:在错误处将该字符改为符合C语言规范的字符 4. **错误**: - error C2021: expected exponent value, not 原因:if(fabs(sum-1.0)>DELTA); 这一行中 DELTA 宏定义不正确。 纠错:# define DELTA 0.000001 5. **错误**: - error C2143: syntax error : missing ; before } 原因:少写了;号。 纠错:在对应位置添加上;号。 参考代码: ```c #include #include #include #include #define DELTA 0.000001 //精度 void sort(float *p_i, int n); //排序函数声明 int main(void) { register int i,j; int n; //符号个数 float sum,p; //用sum来检验数据,用p来缓存了中间数据 fscanf(stdin,%d,&n); float *p_i = (float *)calloc(n,sizeof(float)); // 存储信道传输的概率 float *P_i = (float *)calloc(n,sizeof(float)); int *l_i = (int *)calloc(n,sizeof(int)); for(i=0;iDELTA) fprintf(stderr,Invalid input data \n); else { fprintf(stdout,Starting…\n\n); sort (p_i,n); //以降序排列概率 for(i=0;i
  • 基于MATLAB的《
    优质
    本实验报告通过MATLAB平台实现香农编码算法,详细记录了从信息源统计、概率计算到编码规则设计及验证的过程,并分析了编码效率。 1. 了解香农编码的基本原理及其特点; 2. 熟悉并掌握香纳编码的方法与步骤; 3. 能够熟练使用Matlab中的基本函数,并学会用Matlab编写香农编码程序。
  • Huffman.doc
    优质
    本实验报告详细介绍了Huffman编码的基本原理和实现方法,通过具体实例演示了如何构建最优二叉树,并进行了压缩效率分析。 输入一段字符序列后,通过程序可以计算出该字符序列中各个字符出现的次数及其概率,并能进一步得出信源符号熵、每个字符的哈夫曼编码以及相应的平均码长、编码效率和码方差。
  • Nmap.doc
    优质
    本实验报告详细记录了使用Nmap工具进行网络扫描的过程和结果分析,涵盖了服务检测、操作系统识别及安全漏洞探测等关键内容。 在网络攻击过程中,攻击者常常利用网络扫描软件如Nmap对目标主机进行深入分析与准备。本实验采用Nmap工具针对北京邮电大学官网(www.bupt.edu.cn, IP地址:10.3.9.254)进行了多样化的主机和端口扫描,并对其结果展开了详细解析。 1. **隐藏扫描(Stealth Scanning)** - 通过使用-sS选项进行TCP同步包发送,以探测目标主机的开放端口。当源设备(10.8.70.224)向目标地址(10.3.9.254)发送了针对大约1000个可能开启端口的SYN请求时,只有80和3306这两个特定端口回应了SYN|ACK包。这表明在这些位置上存在活动的服务:其中80号端口对应HTTP服务,而3306则为MySQL数据库接口。 2. **全连接扫描** - 采用-sT选项执行的全TCP链接建立测试相比同步扫描更加耗时。RTTVAR(往返时间变化)值较高可能意味着网络拥堵情况的存在。 3. **UDP端口检测** - UDP扫描通过发送空数据包至每一个目标端口来评估其状态,若收到ICMP不可达消息,则表明该端口未开启;如1031号端口即属此类。然而,在特定情况下(例如NTP服务的监控),实际被传输的数据并非为空。 4. **Ping扫描** - 针对源主机所在子网内的设备进行活动性探测,通过发送ARP请求以确定哪些IP地址对应的机器在线;在接收到回应后确认目标存在。 5. **TCP ACK扫描** - 向潜在端口投递ACK数据包,并根据所回传的RST信号来判断该位置的状态。 6. **操作系统识别** - 通过Nmap的结果可以获取到关于目标机器的操作系统类型等关键信息,比如在当前实验中发现其使用了AVM FRITZ!Box WLAN 7240 WAP版本。 7. **路由追踪扫描(Traceroute)** - 利用-trace命令来揭示从本地出发到达特定远程站点的路径详情。此次测试表明,要访问10.3.9.254需经历四个网络节点。 除了对北邮官网进行上述分析之外,还进一步探索了校内其他重要系统的连接情况以及外部互联网的连通性,以构建更全面的网络架构图谱。
  • SAS.doc
    优质
    本文档为某课程或项目中的SAS实验报告,包含数据处理、统计分析等内容,旨在展示实验过程与结果。适合学习SAS编程及数据分析参考使用。 实验目的:探讨农产量、农村人口、播种面积、受灾面积以及农业机械总动力之间的关联性。 数据来源:国家统计数据库 导入的数据包括以下变量: - 农产量(万吨) - 农村人口(万人) - 播种面积(千公顷) - 受灾面积(千公顷) - 农业机械总动力(万千瓦) 具体数值如下: | 地区 | 农产量 (万吨) | 农村人口(万人)| 播种面积(千公顷) | 受灾面积(千公顷) |农业机械总动力(万千瓦)| |--------------|---------------|-----------------|--------------------|--------------------|-----------------------| | 北京市 |124.77 | 263 | 226.29 | 14.6 | 271.54 | | 天津市 |156.29 | 270 | 306.64 | 58.53 | 595 | | 河北省 |2910.17 | 4009 | 6216.5 | 2627.5 | 9861.12 | | 山西省 |942 | 1851 |3146.67 | 1786.5 | 2655.04 | | 内蒙古自治区 |1981.7 | 1129 | 5424 | 4770.36 | 2891.64 | | 辽宁省 |1591 | 1712 | 3124.1 | 2171.8 | 2142.9 | | 吉林省 |2460 | 1279 | 4427.7 | 2670.6 | 2001.13 | | 黑龙江省 |4353 | 1703 | 11391 | 7393.7 | 3401.2 | | 上海市 |121.68 | 219 | 193.27 | 16.3 | 99.2 | | 江苏省 |3230 | 3430 |5272 | 1202.6 | 3810.5 | | 浙江省 |789.1 | 2181 | 1290 | 463.3 | 2384 | | 安徽省 |3069 | 3550 |6605 | 2101.3 | 5108.8 | | 福建省 |667 | 1763 | 1231 | 265.7 | 1175 | | 江西省 |2002 | 2518 |3604 | 1351.7 | 3359 | | 山东省 |4316 | 4894 |7030 | 2341.9 | 11080 | | 河南省 |5389 | 5910 |9683 | 2987.4 | 9817 | | 湖北省 |2309 | 3089 |4012 | 1827 | 3057 | | 湖南省 |2903 | 3639 |4799 | 1824.9 | 4352 | | 广东省 |1315 | 3528 |2538 | 643.3 | 2190 | | 广西壮族自治区|1463 | 2952 |3067 |
  • SAS.doc
    优质
    本文档为某课程的SAS实验报告,包含了学生在学习过程中使用统计分析软件SAS完成的各项数据分析任务和项目总结。 实验目的:探讨农产量、农村人口、播种面积、受灾面积以及农业机械总动力之间的关联性。 数据来源:国家统计数据库 导入数据如下所示(以下均为2009年的数据,number为各个省、直辖市及自治区的代号,y代表农产量(单位:万吨),x1表示农村人口数量(单位:万人),x2表示播种面积(单位:千公顷),x3表示受灾面积(单位:千公顷),x4表示农业机械总动力(单位:万千瓦)): | number | y | x1 | x2 | x3 | x4 | |--------|-------:|------:|---------:|----------:|-------:| | 北京市 | 124.77 | 263 | 226.29 | 14.6 | 271.54 | | 天津市 | 156.29 | 270 | 306.64 | 58.53 | 595 | | 河北省 | 2910.17| 4009 | 6216.5 | 2627.5 | 9861.12| | 山西省 | 942 | 1851 |3146.67 | 1786.5 | 2655.04| | 内蒙古自治区| 1981.7 | 1129 | 5424 | 4770.36| 2891.64 | | 辽宁省 | 1591 | 1712 |3124.1 | 2171.79| 2142.93 | | 吉林省 | 2460 | 1279 |4427.7 | 2670.63| 2001.13 | | 黑龙江省 | 4353.01 | 1703 |11391.03 | 7393.7 | 3401.27| | 上海市 | 121.68 | 219 |193.27 | 16.3 | 99.2258| | 江苏省 | 3230.1 | 3430 |5272.04 | 1202.6 | 3810.57 | | 浙江省 | 789.15 | 2181 |1290.09 | 463.31 | 2384.03 | | 安徽省 | 3069.87 | 3550 |6605.57 | 2101.32 | 5108.85 | | 福建省 | 666.86 | 1763 |1231.01 | 265.69 | 1175.00 | | 江西省 | 2002.56 | 2518 |3604.6 | 1351.68 | 3358.93 | | 山东省 | 4316.3 | 4894 |7030.09 | 2341.87 | 11080.66| | 河南省 | 5389 | 5910 |9683.61 | 2987.35 | 9817.84 | | 湖北省 | 2309.1 | 3089 |4012.53 | 1827.1 | 3057.24 | | 湖南省 | 2902.7 | 3639 |4799.1 | 1824.87
  • C++
    优质
    本文介绍了如何使用C++编程语言实现信息论中的香农编码算法,适用于数据压缩和传输领域。 本设计注重人性化体验,采用向量而非数组的方式,允许用户输入任意数量的信源符号,并最终计算编码效率。
  • MATLAB
    优质
    本资源提供基于香农信息论原理的MATLAB实现代码,涵盖信道编码与解码算法,适用于通信系统中的错误纠正和数据压缩研究。 用MATLAB实现香农编码,并在程序中包含子函数以供调用。
  • MATLAB 现.m
    优质
    本代码为MATLAB程序,实现香农编码算法,适用于信息理论与数据压缩的研究及教学场景。 根据给定的程序求以下信源的香农编码,并输出各符号的码字以及平均码长、编码效率:p=[0.2, 0.19, 0.18, 0.17, 0.15, 0.1, 0.01]。
  • 数据挖掘.doc
    优质
    本文档为数据挖掘课程的实验报告,详细记录了通过Python等工具进行数据分析与模型构建的过程及结果,涵盖数据预处理、特征选择、算法实现等多个方面。 《数据挖掘》 Weka实验报告 姓名:_ 学号:_ 指导教师: 开课学期 2015 至 2016 学年 第二学期 完成日期 2015年6月12日 ### 实验目的 基于威斯康辛州乳腺癌原始数据集,使用Weka平台进行分类分析。该数据集包含多种属性信息用于预测样本是否为恶性或良性肿瘤,并通过不同算法比较其性能。 ### 实验环境 实验采用Weka平台(由新西兰怀卡托大学开发的机器学习和数据分析软件),并利用威斯康辛州乳腺癌原始数据集进行操作,这些数据可以从UCI Machine Learning Repository获取。Weka使用Java编写而成,在GNU通用公共许可证下发布,适用于各种操作系统。 ### 实验步骤 #### 3.1 数据预处理 本实验针对的是威斯康星大学麦迪逊分校提供的乳腺癌数据库(原始版本)。该表包含Sample code number、Clump Thickness等共十一个属性。其中第二项至第十项取值范围为1-10,分类中2代表良性肿瘤,4表示恶性肿瘤。 #### 3.2 数据分析 通过将数据导入Excel进行预处理后转换成CSV格式,并手动添加每一列的标题信息。最终需要保存为ARFF文件以便于Weka平台使用。 具体步骤包括: - 将从UCI机器学习库下载的数据复制粘贴到Excel中,选择“分列”功能以逗号作为分隔符完成数据导入; - 在第一行手工添加属性名:Sample code number、Clump Thickness等共十一个字段信息; - 保存为CSV文件,并使用Weka自带的命令行工具将该文件转换成ARFF格式。 #### .csv -> .arff 在启动Weka后进入“Explorer”模块,选择打开文件功能加载已处理好的乳腺癌数据集.csv。通过内置的功能可以轻松地将其转化为适合于分类算法使用的.arff文件形式。 以上是实验报告的部分内容概述,后续将对具体的数据分析过程和结果进行详细描述与展示。