香农编码用matlab实验报告,通信系统仿真基于matlab的设计--2psk调制,香农编码,汉明编码...-程序员宅基地

技术标签: 香农编码用matlab实验报告  

课程设计实验报告,基于matlab的通信系统仿真,用2psk调制,香农编码,汉明编码。包含调制,高斯白噪声,可调信噪比,解调,解码。

1 课程设计目的

1.1 对数字通信系统主要原理和技术进行研究,包括二进制相移键控(2psk)及解调技术、高斯噪声信道原理、以及信源编码中香农编码、信道编码中hamming码的基本原理等。

1.2 建立完整的基于2psk和(7,4)循环码的数字通信系统仿真模型,包括2psk调制解调及香农、hamming码的编译码;

1.3 在信道中加入高斯噪声,观察系统的纠错能力,统计误码率,并进行分析。

1.4 锻炼我们查阅资料、方案比较、团结合作的能力。学会简单电路的实验调试和整机指标测试方法,增强我们的动手能力。

2 课程设计正文

这次课程设计的主要任务是运用MATLAB编程实现2PSK调制解调过程,并且输出其调制及解调过程中的波形,讨论其调制和解调效果。了解高斯噪声信道原理、以及香农编译码、hamming编译码的原理。

2.1 性能指标

2.1.1 用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。本实验详细介绍了PSK波形的产生和仿真过程。我们可以系统的了解基本原理,以及得到数字调制波形的方法。利用MATLAB仿真可更好的认识2PSK信号波形的调制过程。

图1 相应的信号波形的示例

1 0 1

1-121-png_6_0_0_0_0_0_0_893.25_1263.375-322-0-1268-322.jpg

、数据转换成规定的电脉冲信号。通过本次设计,了解香农—费诺编码的具体过程,通过编程实现编码,利用matlab实现费诺编码。

2.1.3 当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。

2.2 matlab代码

2.2.1 香农编码

%*******************************%香农编码***********************************

A=[0.4,0.3,0.1,0.09,0.04,0.07];

A=fliplr(sort(A));%降序排列

[m,n]=size(A);

for i=1:n

B(i,1)=A(i);%生成B的第1列

end

%生成B第2列的元素

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42300211/article/details/116046559

智能推荐

GRBL归位_grbl 关闭z轴-程序员宅基地

文章浏览阅读244次。其原理是在指定的方向上快速移动,碰到限位开关,说明已经到达初始位置,为了精确定位,还会回拉一小段距离进入精确定位阶段,然后慢速接近限位开关,为了更精确的定位,可能会重复多次精确定位,最后再回拉离开限位开关。$130=200.000 // x轴最大行进距离 归位时超过1.5倍距离会失败。$131=200.000 // y轴最大行进距离 归位时超过1.5倍距离会失败。$25=500.000 // 归位查找速率,单位是毫米/分钟。$24=25.000 // 归位速率单,位是毫米/分钟。用这个值乘以循环行程。_grbl 关闭z轴

Pycharm无法debug问题总结_pycharm不能debug-程序员宅基地

文章浏览阅读2.2w次,点赞7次,收藏7次。问题描述:在Pycharm中写python时可以运行程序却突然不能debug。出现debug提示——pydev debugger: process XXXX is connecting,但是之后却一直处于等待连接状态而报错。与该错误相关的网上的解决方案:解决方案一:Pycharm的网络被禁,需要解禁网络。解决方案二:去掉 ".idea"文件重启项目尝试了所有的方案后还是不能解决我的..._pycharm不能debug

安卓开源库_出门吃三碗饭-程序员宅基地

文章浏览阅读1.3k次。Smart-HeaderFooter-RecyclerView★198 - 将Recyclerview添加HeaderView和FooterView。AlphabetIndex-Fast-Scroll-RecyclerView★169 - 强大的AlphabetIndex FastScroller。android-data-binding-recyclerview★478 - 配有Android数据绑定的RecyclerView。_出门吃三碗饭

Python 3.x Error:TypeError: a bytes-like object is required, not 'str'_python3 typeerror: memoryview: a bytes-like object-程序员宅基地

文章浏览阅读9.1w次,点赞25次,收藏71次。分析了TypeError: a bytes-like object is required, not 'str'产生的原因并给出解决办法,并列举了Python内str和bytes相互之间的转化方法。_python3 typeerror: memoryview: a bytes-like object is required, not 'str

【Arma3脚本教程】一、基本介绍_arma3源码-程序员宅基地

文章浏览阅读3.5k次,点赞7次,收藏16次。想必看到此文章的人想要学习Arma3的地图编辑,不过国内很少有人研究这个,即使会的也不是专业程序员,即使是专业程序员,也需要花不少时间学习它的特定写法。如果你高中以上学历,英语及格,逻辑水平还行,应该可以看懂本教程。另外欢迎加群讨论:762195010。废话不多说开始。_arma3源码

删除oracle中的一列数据,Oracle删除表数据-程序员宅基地

文章浏览阅读6k次。本篇文章帮大家学习Oracle删除表数据,包含了Oracle删除表数据使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。在本教程中将学习如何使用Oracle DELETE语句从表中删除一行或多行数据记录。要从表中删除一行或多行,请按如下所示使用Oracle DELETE语句:DELETEFROMtable_nameWHEREcondition;在这个语句中,首先,指定要从..._oracle清空某一列数据

随便推点

OS短作业优先调度算法C语言,OS短作业优先调度算法C语言.doc-程序员宅基地

文章浏览阅读295次。采用短作业优先调度算法调度程序学 号:姓 名:专 业:指导老师:日 期:目录一、实验题目3二、课程设计的目的3三、设计内容3四、设计要求3五、主要数据结构及其说明4六、程序运行结果5七、流程图7八、源程序文件9九、实验体会13十、参考文献13摘要在多道程序环境下,主存中有着多个进程,其数目往往多于处理机数目。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程..._os长作业与短作业

黑马程序员--Java基础学习第十三天-程序员宅基地

文章浏览阅读84次。---------------------- android培训、java培训、期待与您交流! ----------------------一、String类概述String类被final修饰,不能被继承。字符串一旦被初始化就不能被改变。字符串在内存中的存储请参考:http://www.cnblogs.com/heima/archive/2012/03/25/2417253.html..._java黑马程序员di13天代码

svn merge 命令使用_svn merge指令-程序员宅基地

文章浏览阅读2.3k次。Subversion的分支通常用于在主干程序之外,对程序进行修改。这样 可以在不扰乱主干程序进行的开发、测试、发布流程之外,尝试一下新功能的研究、修改。如果觉得新功能没问题,可以将分支合并到主干程序中。  合并前,需要将分支提交(Commit),由此看来,合并操作好象是在服务端和本地客户端同时进行的操作。  合并时,要从主干的working copy的右键菜单开始,"From" Url是合_svn merge指令

正则表达式 提取中括号的内容 匹配中英文_正则表达式匹配中英文括号-程序员宅基地

文章浏览阅读2k次。/** * 使用正则表达式提取中括号中的内容 * * @param msg * @return */ public static String extractMessageByRegular(String msg) { String s = null; Pattern p = Pattern.compi..._正则表达式匹配中英文括号

Thingsboard开源平台(一)1.基本介绍_thingsboard概念-程序员宅基地

文章浏览阅读1.8k次。Thingsboard开源平台(一)--基本介绍_thingsboard概念

第一课:调试信息和调试原理_调试信息表的结构-程序员宅基地

文章浏览阅读4.4k次。第01课:调试信息与调试原理Linux 下 C++ 程序开发,即使使用 makefile、cmake 等编译工具,其最终都是调用 gcc 这一编译工具组的。这里说的工具组,是因为编译 C 程序和 C++ 程序使用的编译工具还是有一点差别的,一般编译 C 程序使用gcc,编译 C++ 程序使用g++。(下面为了叙述方便,除非特别说明,否则不做具体区分是 gcc 还是 g++,统一使用 gcc ..._调试信息表的结构