基于MATLAB的调制解调与信道编译码仿真

更新时间:2023-11-02 02:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于MATLAB的调制解调与信道编译码仿真

摘要:在当前飞速发展的信息时代,随着数字通信技术计算机技术的发展,以及通信网络与计算机网络的相互融合,信息技术已成为21世纪社会国际化的强大动力。Matlab软件包含众多的功能各异的工具箱,涉及领域包括:数字信号处理、通信技术、控制系统、神经网络、模糊逻辑、数值统计、系统仿真和虚拟现实技术等。作为一个功能强大的数学工具软件,在很多领域中得到了广泛的应用。

本文利用Matlab对通信进行仿真实验,实现信号从信源到信宿过程的模拟并获得信噪比与误码率的曲线图。在仿真中研究了无记忆相位调制和幅度调制和检测,对信号进行了线性分组码的编码,并对伴随式译码和最小汉明距离译码方式进行了仿真 关键字:MATLAB仿真;调制;编码;信噪比;误码率 1 .简介

1.1 课程设计的目的

1. 掌握建立通信系统仿真的基本过程。

2. 熟悉无记忆相位调制和幅度调制和检测的基本原理。 3. 熟悉线性分组码的编码实现方法。

4. 掌握伴随式译码和最小汉明距离译码的基本原理。 5. 掌握MATLAB编程和调试方法。 1.2 课程设计内容

1.二进制和四进制相移键控调制仿真设计 2.四进制幅度调制仿真设计

3.二进制对称信道下的重复码(或汉明码)编译码及错误概率统计仿真设计

4.加性高斯白噪声信道下的二进制相移键控调制(或四进制幅度调制)解调及其比特错误概率统计仿真设计

5.加性高斯白噪声信道条件下的二进制相移键控调制(或四进制幅度调制)解调和重复码(或汉明码)编译码及其比特错误概率统计仿真设计 1.3仿真环境简介

本次课程设计使用MATLAB,对通信系统进行仿真。 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和

其他初等数学运算、多维数组操作以及建模动态仿真等。

这里主要使用MATLAB提供的功能,包括:数值和符号计算,工程与科学绘图等,对通信系统进行仿真。最后给出几种不同通信系统的通信效果的可视化结果,并对结果进行分析,比较。 2.原理

2.1无记忆相位调制与检测原理

数字相位调制(phase shift keying,PSK)又称相移键控。二进制相移键控记做2PSK是相移键控最简单的形式,还有多进制相移键控MPSK是二进制相移键控的推广,本次仿真实验主要用到了二进制相移键控(BPSK)。

相位调制是指将数据通过载波的相位来传输,常见的二进制相移键控调制(BPSK)有两种初始相位分别为0、pi,通过相位0来传输数据0,相位pi来传输数据1。

通俗而言,如果输入调制器的信息为0,则调制器输出波形的初始相位为0;如果输入调制器的信息为1,则调制器输出波形的初始相位为pi。我们也可通过相位0来传输数据1,相位pi来传输数据0。

由于2PSK信号相当于DSB信号,因而不能采用包络解调,要采用相干解调。而在接收端进行解调检测时,要在单位周期内,将接收信号与正的余弦波进行相关运算,两个向量进行相关运算是将二者的对应元素相乘,再把所有相乘的结果相加。如果运算结果为正,则判决为0;如果运算结果为负,则判决为1。

2.2无记忆幅度调制与检测原理

幅度调制是指将数据通过载波的幅度来传输。常见的二进制幅度调制有两种幅度:+1,-1。通过幅度+1来传输数据0,幅度-1来传输数据 -1。

通俗而言,如果输入调制器的信息为0,则调制器输出波形的幅度为+1 ;如果输入调制器的信息为1,则调制器输出波形的初始相位为-1。我们也可通过幅度-1来传输数据0;幅度+1来传输数据1。

幅度调制产生信号的解调常用方法主要有两种:包络检波法和相干检测法。而解调后的信号进行检测时,是在单位周围内,将接收信号与幅度为1的余弦波进行相关运算,如果运算结果小于2,则判决为0;如果运算结果大于2,则判决为1。

2.3线性分组码编译码原理

分组码是一组固定长度的码组,可表示为(n , k),通常它用于前向纠错。

在分组码中,监督位被加到信息位之后,形成新的码。在编码时,k个信息位被编为n位码组长度,而n-k个监督位的作用就是实现检错与纠错。对于长度为n的二进制线性分组码,它有种2n可能的码组,从2n种码组中,可以选择M=2k个码组(k

2.4伴随式译码的原理

在已知的生成矩阵对数字序列进行编码后,可对编码后的序列进行伴随式的译码。方法原理为根据已有的生成矩阵G写出对应的校验矩阵H,对输入译码器的二元序列进行逐块译码。

每次取出n个二元符号,记为 r,利用c’计算伴随式 s: s= r HT,如果伴随式s为全0,则认为r中无错,即错误向量e为全0,直接将r作为译码结果 c。如果伴随式s非全0,则认为r中有错。如果有错则找出校验矩阵H中与伴随式s完全相同的列,记为第m列,认为错误向量e的第m个元素为1,则对r的第m个元素进行翻转处理,将此结果作为译码结果c’,这便是伴随式译码的原理。

2.5最小汉明距离译码的原理

根据已有的生成矩阵G写出该码的2k个n长许用码字,每次取出n个二元符号,记为r ,分别计算r与2k个许用码字的汉明距离,选择与r的汉明距离最小的码字作为译码结果c’ 。

这种译码方法的原理是根据原后的序列一定存在于2k个许用码字的序列之中,只要比较编码后的序列与许用码字的不同数字的数量,选择不同数字最少的许用码字序列,即与原序列最接近的序列作为他的译码序列,这样便完成了译码。

本文来源:https://www.bwwdw.com/article/8gv2.html

Top