数字通信系统matlab仿真
(完整word版)基于matlab的数字通信系统
目录第一章绪论 (3)1.1什么是数字通信系统? (3)1.2数字通信系统的基本组成 (3)1.3 数字通信系统的特点 (4)第二章MATLAB软件 (6)2.1 MATLAB软件介绍 (6)2.2 MATLAB软件的应用 (6)第三章2ASK仿真设计和运行结果 (8)3.1 2ASK调制和解调原理 (8)3.2主要程序的介绍 (9)3.2.1基带信号的产生 (9)3.2.2 载波的产生 (9)3.2.3 噪声的产生 (10)3.2.4 2ASK的调制 (10)3.2.5 2ASK的解调 (10)3.2.6 判决输出 (11)3.3仿真结果 (11)第四章2FSK仿真设计和运行结果 (12)4.1 2FSK调制和解调原理 (12)4.2主要程序的介绍 (13)4.2.1基带信号和的产生 (13)4.2.2两种不同频率载波的产生 (14)4.2.3 2FSK调制 (14)4.2.4 2FSK解调 (15)4.2.5判决输出 (15)4.3 仿真结果 (16)第五章2PSK仿真设计和运行结果 (17)5.1 2PSK的调制和解调原理 (17)5.2主要程序的介绍 (18)5.2.1基带信号的产生 (18)5.2.2双极型码的产生 (18)5.2.3载波信号的产生 (18)5.2.4 2PSK调制 (19)5.2.5 2PSK的解调 (19)5.2.6判决输出 (19)5.3 仿真结果 (20)第六章2DPSK的仿真设计和运行结果 (21)6.1 2DPSK的调制与解调原理 (21)6.2主要程序的介绍 (22)6.2.1基带信号(绝对码)的产生 (22)6.2.2相对码及其反码的产生 (23)6.2.3载波信号的产生 (23)6.2.4 2DPSK调制 (24)6.2.5 2DPSK解调 (24)6.2.6判决输出 (25)6.2.7码反变换 (25)6.3 仿真结果 (25)第七章GUI界面仿真设计及结果 (27)7.1 GUI界面设计 (27)7.2 仿真结果 (27)第八章总结和体会 (30)第一章绪论1.1什么是数字通信系统?数字通信系统是利用数字信号传输信息的系统,是构成现代通信网的基础。
基于MATLAB的MIMO-OFDM通信系统的仿真
基于MATLAB的MIMO-OFDM通信系统的仿真0 引言5G技术的逐步普及,使得我们对海量数据的存储交换,以及数据传输速率、质量提出了更高的要求。
信号的准确传播显得越发重要,随之而来的是对信道模型稳定性、抗噪声性能以及低误码率的要求。
本次研究通过构建结合空间分集和空间复用技术的MIMO信道,引入OFDM 技术搭建MIMO-OFDM 系统,在添加保护间隔的基础上探究其在降低误码率以及稳定性等方面的优异性能。
1 概述正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术通过将信道分成数个互相正交的子信道,再将高速传输的数据信号转换成并行的低速子数据流进行传输。
该技术充分利用信道的宽度从而大幅度提升频谱效率达到节省频谱资源的目的。
作为多载波调制技术之一的OFDM 技术目前已经在4G 中得到了广泛的应用,5G 技术作为新一代的无线通信技术,对其提出了更高的信道分布和抗干扰要求。
多输入多输出(Multi Input Multi Output,MIMO)技术通过在发射端口的发射机和接收端口的接收机处设计不同数量的天线在不增加频谱资源的基础上通过并行传输提升信道容量和传输空间。
常见的单天线发射和接收信号传输系统容量小、效率低且若出现任意码间干扰,整条链路都会被舍弃。
为了改善和提高系统性能,有学者提出了天线分集以及大规模集成天线的想法。
IEEE 806 16 系列是以MIMO-OFDM 为核心,其目前在欧洲的数字音频广播,北美洲的高速无线局域网系统等快速通信中得到了广泛应用。
多媒体和数据是现代通信的主要业务,所以快速化、智能化、准确化是市场向我们提出的高要求。
随着第五代移动通信5G 技术的快速发展,MIM-OFDM 技术已经开始得到更广泛的应用。
本次研究的MIMO-OFDM 系统模型是5G的关键技术,所以对其深入分析和学习,对于当下无线接入技术的发展有着重要的意义。
通信原理基于matlab的计算机仿真
通信原理基于matlab的计算机仿真通信原理基于matlab的计算机仿真已经成为通信领域中一项重要的研究工具。
此类仿真软件通过模拟现实情形,能够极大地加快通信设备的开发进程,并且可以帮助工程师进行实验,发现并解决通讯中可能存在的问题。
同时,matlab的通信仿真功能也成为了相关教材和教学实验的首选,许多大学,尤其是通信工程专业的学生要通过matlab的仿真来更好地理解通信原理和通信设备的工作原理。
由于matlab的专业性,无论是对于传输介质的模型计算,还是信号的传输过程的计算仿真,都非常适合。
通信原理的matlab仿真可以有效地帮助工程师分析各种信号,包括模拟信号、数字信号及混合信号。
这种仿真可用于计算机网络、通信系统设计以及无线通信和移动通信等领域。
在matlab中,通信原理的仿真重点是信号的传输与接收。
目前,通信设备主要采用数字信号的传输方式,而matlab中也能够实现该方式的仿真。
通过模拟数字信号的传输过程,可以帮助工程师分析此类信号在不同媒介下的传输效果。
所以,在进行数字信号的仿真时,matlab会考虑到以下几个因素:1.噪声在数字通信中,噪声是一个常见的问题。
因此,在matlab 的仿真中也要考虑到噪声的影响因素。
matlab能够对噪声进行建模,模拟各种环境下的噪声对数字信号的影响程度。
2.数据传输速率数据传输速率也会影响数字信号的仿真结果。
matlab可以模拟数字信号传输的速率以及不同速率下的传输效果。
3.差错率差错率也是数字信号传输中的一个显著因素,matlab在通信原理仿真中也会进行模拟。
除数字信号外,模拟信号的仿真也是通信原理仿真领域的一项重要工作。
在matlab的仿真中,通常对模拟信号的传输和接收会更加复杂。
通信原理的matlab仿真的一个重要应用就是误码率和比特误差率测试。
误码率和比特误差率都是评估数字信号传输质量的指标。
通信系统的设计旨在在受到最小干扰时保持误差率的最小化。
基于matlab的simulink的cdma系统多用户仿真要点
基于 Matlab 的 Simulink 的 CDMA 系统多用户仿真要点简介CDMA(Code Division Multiple Access)是一种数字无线通信技术,其中多个用户在同一频带上传输数据,每个用户使用唯一的编码序列来区分其他用户的信息。
在CDMA系统中,使用扩频技术将数据编码成宽带信号,然后使用独立的编码序列将它们混合在一起,并在接收端进行解码以恢复原始数据,因此CDMA技术可以提供更高的信道容量。
通过使用基于 Matlab 的 Simulink,可以方便地进行CDMA系统的仿真,并对多个用户进行仿真,以评估系统性能。
要点1. CDMA系统的建模在CDMA系统的仿真过程中,需要首先建立系统模型。
我们可以使用 Simulink 中的 Signal Processing Blockset 来实现CDMA系统模型的建模。
Signal Processing Blockset 中包含了各种信号处理模块,包括滤波器、混合器和解扰器等等,这些模块可以用来构建CDMA系统的传输通道。
2. 多用户仿真在CDMA系统中,多个用户可以同时传输数据,因此我们需要对多个用户进行仿真,并分别评估其性能。
为了实现这个目标,我们可以使用 Signal Processing Blockset 中的 Multiport Switch 模块,将多个用户的数据流合并成一个流,然后通过解码器对其进行解码。
在这个过程中,我们可以使用不同的编码序列对每个用户进行编码,以确保数据的安全性。
3. 性能评估在CDMA系统中,我们可以通过 BER(Bit Error Rate)来评估系统的性能。
在仿真过程中,我们可以通过向系统中注入固定数量的错误比特,并计算接收端出现错误的比特数量来计算BER。
通过多次仿真,可以评估不同编码序列、码元速率、信噪比等因素对系统性能的影响。
在本篇文档中,我们介绍了基于 Matlab 的 Simulink 的 CDMA 系统多用户仿真的要点。
毕业设计(论文)基于matlab的数字基带通信系统仿真
基于matlab的数字基带通信系统仿真1.课程设计的目的(1)增加对仿真软件的认识,学会对各种软件的操作和使用方法(2)加深理解数字基带通信系统的概念(3)初步掌握系统的设计方法,培养独立工作能力2.设计方案论证2.1数字基带传输系统在数字传输系统中,其传输的对象通常是二进制数字信号,它可能是来自计算机、电传打字机或其它数字设备的各种数字脉冲,也可能是来自数字终端的脉冲编码调制(PCM)信号。
这些二进制数字信号的频带范围通常从直流和低频开始,直到某一频率m f ,我们称这种信号为数字基带信号。
在某些有线信道中,特别是在传输距离不太远的情况下,数字基带信号可以不经过调制和解调过程在信道中直接传送,这种不使用调制和解调设备而直接传输基带信号的通信系统,我们称它为基带传输系统。
而在另外一些信道,特别是无线信道和光信道中,数字基带信号则必须经过调制过程,将信号频谱搬移到高频处才能在信道中传输,相应地,在接收端必须经过解调过程,才能恢复数字基带信号。
我们把这种包括了调制和解调过程的传输系统称为数字载波传输系统。
数字基带传输系统的模型如图 1所示,它主要包括码型变换器、发送滤波器、信道、接收滤波器、均衡器和取样判决器等部分。
图1 数字基带传输系统模型1.2 数字基带信号1.2.1数字基带信号波形对不同的数字基带传输系统,应根据不同的信道特性及系统指标要求,选择不同的数字脉冲波形。
原则上可选择任意形状的脉冲作为基带信号波形,如矩形脉冲、三角波、高斯脉冲及升余弦脉冲等。
但实际系统常用的数字波形是矩形脉冲,这是由于矩形脉冲纤数字传输系统中的线路传输码型。
此外,CMI 码和曼彻斯特码一样都是将一位二进制码用一组两位二进制码表示,因此称其为1B2B 码。
(5)4B/3T 码4B/3T 码是1B/1T 码的改进型它把4 个二进制码元变换为3个三进制码元。
显然,在相同信息速率的条件下,4B/3T 码的码元传输速率要比1B/1T 码的低,因而提高了系统的传输效率。
Matlab在数字通信系统仿真中的应用
墙 池 r一‘ 一 …
*
H r 一~ … 一
B S 频带 系 统 的原理 图 , 户输 入所 需 的 参数 进 PK 用 行系统设置; 当用 户 按 下 第 二 个 按 钮 ( 真 波形 ) 仿
Vo1 25 No. . 4
J1 0 7 u .2 0
文章 编号 ’ 0 8 O 7 ( 0 7 0 — 0 4 0 : 0一 1 12 0 )40 2— 3 1
Malb在 数 字通 信 系统 仿真 中的 应 用 t a
胡 培 勤
( 山 市 高级 技 工 学 校 , 东 佛 山 5 8 0 ) 佛 广 2 0 0
频 带调 制 信号 ; ( ) 性 高 斯 白噪 声 信 道 ( 3加 AWGN C a n 1 。 位 于 B ok / o hn e) lc s C mmu i t n 1c s c a n 1 nc i s Bo k / h n e/ ao AWG h n e , 用是 在输 入 信号 中加 入高斯 白噪声 ; N C a n l作 () 波 器 (cp ) 4示 S o e 。接 四个 入 口, 别 是 信 源 端 、 制 后 、 信 道 加 噪 后 和 解 调 后 的 信 号 。把 分 调 经 Nu e f x s 置 为 4 可 以 同时 看到 并 比较各 信号 。 mb ro e 设 a ,
图 3 B S 频 带系统的 G PK UI 面 设 置 界
设计 完 GUI 界面 并且保 存后 , t b系 统 会 自动 生 成相 应 的 M 文件 , 缀 为. 。 Mal a 后 m
qpsk、bpsk蒙特卡洛仿真matlab代码
qpsk、bpsk的蒙特卡洛仿真是一种用于测试和验证通信系统性能的重要工具。
通过模拟大量的随机输入数据,并对系统进行多次仿真运算,可以对系统的性能进行全面评估,包括误码率、信噪比要求等。
在matlab中,我们可以通过编写相应的仿真代码来实现qpsk、bpsk 的蒙特卡洛仿真。
下面将分别介绍qpsk和bpsk的蒙特卡洛仿真matlab代码。
一、qpsk的蒙特卡洛仿真matlab代码1. 生成随机的qpsk调制信号我们需要生成一组随机的qpsk调制信号,可以使用randi函数生成随机整数序列,然后将其映射到qpsk符号点上。
2. 添加高斯白噪声在信号传输过程中,会受到各种干扰,其中最主要的干扰之一就是高斯白噪声。
我们可以使用randn函数生成高斯白噪声序列,然后与调制信号相加,模拟信号在传输过程中受到的噪声干扰。
3. 解调和判决接收端需要进行解调和判决操作,将接收到的信号重新映射到qpsk符号点上,并判断接收到的符号与发送的符号是否一致,从而判断是否发生误码。
4. 统计误码率通过多次仿真运算,记录错误判决的次数,从而可以计算出系统的误码率。
二、bpsk的蒙特卡洛仿真matlab代码1. 生成随机的bpsk调制信号与qpsk相似,我们需要先生成一组随机的bpsk调制信号,然后模拟信号传输过程中的噪声干扰。
2. 添加高斯白噪声同样使用randn函数生成高斯白噪声序列,与bpsk调制信号相加。
3. 解调和判决接收端对接收到的信号进行解调和判决,判断接收到的符号是否与发送的符号一致。
4. 统计误码率通过多次仿真运算,记录错误判决的次数,计算系统的误码率。
需要注意的是,在编写matlab代码时,要考虑到信号的长度、仿真次数、信噪比的范围等参数的选择,以及仿真结果的统计分析和可视化呈现。
qpsk、bpsk的蒙特卡洛仿真matlab代码可以通过以上步骤实现。
通过对系统性能进行全面评估,可以帮助工程师优化通信系统设计,提高系统的可靠性和稳定性。
数字通信系统matlab仿真
课程设计报告题目:基于MATLAB的通信系统仿真———信道编码对通信系统性能的影响专业:通信工程姓名:XXX学号:0730xxxx基于MATLAB 的通信系统仿真———信道编码对通信系统性能的影响 摘要:简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB 仿真有无信道编码条件下对通信系统性能的影响及信道编码在不同信道下对通信系统性能的影响,如AWGN 信道和深衰落信道。
关键词:信道编码、分组码、MATLAB 仿真、性能一、引言提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。
1948年,信息论的奠基人C.E.Shannon 在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理.他指出:对任何信道,只要信息传输速率R 不大于信道容量C, 就一定存在这样的编码方法:在采用最大似然译码时,其误码率可以任意小.该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法.在信道编码定理中,香农提出了实现最佳编码的三个基本条件 :(1 )采用随机编译码方式 ; (2 )编码长度L→∞ , 即分组的码组长度无限 ; (3)译码采用最佳的最大似然译码算法。
【1】二、信道编码理论1、信道编码的目的在数字通信系统中由于信道内存在加性噪声及信道传输特性不理想等容易造成码间串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。
为了确保系统的误比特率指标通常采用信道编码。
信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。
它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。
2、信道编码的实质信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。
举例而言,欲传输k 位信息,经过编码得到长为n(n>k)的码字,则增加了 n - k = r 位多余码元,我们定义 R = k / n 为编码效率。
matlab(n,k,m)卷积码原理及仿真
matlab(n,k,m)卷积码原理及仿真====================卷积码是一种重要的纠错码,它在通信系统中扮演着重要的角色。
特别是在高噪环境下,卷积码具有较好的性能表现,因此被广泛用于卫星通信、光纤通信等领域。
本文将介绍Matlab中实现(n,k,m)卷积码的基本原理以及仿真过程。
一、卷积码原理-------卷积码是一种非线性编码技术,它通过将信息序列与多个冗余序列进行卷积运算,生成新的编码序列。
卷积码具有较高的编码增益,同时具有较低的编码复杂度。
在(n,k,m)卷积码中,n表示编码长度,k 表示信息比特数,m表示每个码字所包含的冗余比特数。
二、Matlab仿真环境---------Matlab是一种强大的数学计算和仿真软件,它提供了丰富的工具和函数库,可以方便地实现各种数字通信系统。
在Matlab中,我们可以利用卷积码工具箱实现(n,k,m)卷积码的编码、译码和仿真。
三、仿真步骤------1.定义系统参数:包括信息比特数k、编码长度n、冗余比特数m 等。
2.生成随机信息序列:在Matlab中,可以使用rand函数生成随机比特序列作为信息序列。
3.编码:使用卷积码工具箱中的函数实现编码过程,生成冗余比特序列。
4.添加噪声:在通信系统中,噪声是不可避免的。
为了模拟高噪环境,可以在编码后的数据上添加高斯噪声。
5.译码:使用卷积码工具箱中的函数实现译码过程,恢复原始信息序列。
6.仿真结果分析:通过比较译码结果和原始信息序列,可以评估卷积码的性能。
四、示例代码------以下是一个简单的Matlab代码示例,用于实现(7,4,3)卷积码的编码、译码和仿真:```matlab%定义系统参数k=4;%信息比特数n=7;%编码长度m=3;%冗余比特数data=randi([0k-1],n,1);%生成随机信息序列noise=sqrt(0.1)*data+sqrt(0.9)*(randn(n,1));%添加高斯噪声con_code=codegen(k,m);%编码encoded=conv_mat(data',con_code');%卷积码矩阵表示法decoded=indelcod(con_code);%译码%比较译码结果和原始信息序列ifall(decoded==data)disp('译码成功!')elsedisp('译码失败!')end```五、总结----Matlab作为一种强大的数学计算和仿真软件,提供了丰富的工具和函数库,可以方便地实现各种数字通信系统。
基于MATLAB的2ASK数字调制与解调的系统仿真
基于MATLAB的2ASK数字调制与解调的系统仿真一、本文概述随着信息技术的飞速发展,数字通信在现代社会中扮演着日益重要的角色。
作为数字通信中的关键技术之一,数字调制技术对于提高信号传输的可靠性和效率至关重要。
在众多的数字调制方式中,2ASK (二进制振幅键控)因其实现简单、抗干扰能力强等优点而备受关注。
本文旨在通过MATLAB软件平台,对2ASK数字调制与解调系统进行仿真研究,以深入理解和掌握其基本原理和性能特点。
本文首先介绍了数字调制技术的基本概念,包括数字调制的基本原理、分类和特点。
在此基础上,重点阐述了2ASK调制与解调的基本原理和实现方法。
通过MATLAB编程,本文实现了2ASK调制与解调系统的仿真模型,并进行了性能分析和优化。
在仿真研究中,本文首先生成了随机二进制信息序列,然后利用2ASK调制原理对信息序列进行调制,得到已调信号。
接着,对已调信号进行信道传输,模拟了实际通信系统中的噪声和干扰。
在接收端,通过2ASK解调原理对接收到的信号进行解调,恢复出原始信息序列。
通过对比分析原始信息序列和解调后的信息序列,本文评估了2ASK 调制与解调系统的性能,并讨论了不同参数对系统性能的影响。
本文的仿真研究对于深入理解2ASK数字调制与解调原理、优化系统性能以及指导实际通信系统设计具有重要意义。
通过MATLAB仿真平台的运用,本文为相关领域的研究人员和实践工作者提供了一种有效的分析和优化工具。
二、2ASK数字调制技术原理2ASK(二进制振幅键控)是一种数字调制技术,主要用于数字信号的传输。
它的基本思想是将数字信号(通常是二进制信号,即0和1)转换为模拟信号,以便在模拟信道上进行传输。
2ASK调制的关键在于根据数字信号的不同状态(0或1)来控制载波信号的振幅。
在2ASK调制过程中,当数字信号为“1”时,载波信号的振幅保持在一个较高的水平;而当数字信号为“0”时,载波信号的振幅降低到一个较低的水平或者为零。
MATLAB通信系统仿真实验报告
MATLAB通信系统仿真实验报告实验一、MATLAB的基本使用与数学运算目的:学习MATLAB的基本操作,实现简单的数学运算程序。
内容:1-1 要求在闭区间[0,2π]上产生具有10个等间距采样点的一维数组。
试用两种不同的指令实现。
运行代码:x=[0:2*pi/9:2*pi]运行结果:1-2 用M文件建立大矩阵xx=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]代码:x=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]m_mat运行结果:1-3已知A=[5,6;7,8],B=[9,10;11,12],试用MATLAB分别计算A+B,A*B,A.*B,A^3,A.^3,A/B,A\B.代码:A=[5 6;7 8] B=[9 10;11 12] x1=A+B X2=A-B X3=A*B X4=A.*B X5=A^3 X6=A.^3 X7=A/B X8=A\B运行结果:1-4任意建立矩阵A,然后找出在[10,20]区间的元素位置。
程序代码及运行结果:代码:A=[12 52 22 14 17;11 10 24 03 0;55 23 15 86 5 ] c=A>=10&A<=20运行结果:1-5 总结:实验过程中,因为对软件太过生疏遇到了些许困难,不过最后通过查书与同学交流都解决了。
例如第二题中,将文件保存在了D盘,而导致频频出错,最后发现必须保存在MATLAB文件之下才可以。
计算机仿真Matlab通信系统链路级仿真
– The sum is over all the values of j which lead to legal subscripts for u(j) and v(k+1-j), j = max(1,k+1-n): min(k,m).
其他常用信号处理函数
• filter:滤波
• 30
• 标准差分仿真的直接II型横向滤波器结构
– out = compand(in,param,v)
– out = compand(in,Mu,v,'mu/compressor')
– out = compand(in,Mu,v,'mu/expander')
– out = compand(in,A,v,'A/compressor')
– out = compand(in,A,v,'A/expander')
•7
• 通信系统链路级仿真的一般性假设前提
• Matlab中的通信系统仿真资源
– 信号处理工具箱及常用信号处理函数
– 通信工具箱
通信系统链路级仿真的一般假设前提
• 带通信号的基带等效
•8
• 最佳接收机
带通信号的基带等效表示
z(t ) fL (t )e jct
•9
a(t )e jct (t )
后总功率则减小到原来的1/N。
常用变换函数
• fftshift:作用是将fft之后数据的零频移到• 28 数据的中间,实际上就是将向量的左右 两个半边交换位置。
• ifftshift:注意奇数时的处理 • fftw:能够进一步提高fft的执行效率,在
真正做fft以前先执行一次plan选择最适当 的fft算法。
基于MATLAB的模拟通信系统的仿真与实现
• 139•针对通信原理课程的教学特点和传统实验教学存在的问题,讨论了将Matlab软件引入到通信原理课程教学的必要性。
以模拟调制系统为例,利用Matlab的工具箱和Simulink界面对通信系统进行可视化教学,并给出了仿真结果。
实践证明,不仅在课堂教学中以更加直观的方式进行讲解,而且补充和完善传统实验的不足,提高学生学习积极性,教学效果得到较大提升。
随着5G通信的到来,通信技术在人们日常生活中是无处不在,现代通信技术取得了显著进展。
通信原理作为高校通信工程和电子信息等本科专业课程体系中重要的专业基础课,系统阐述了模拟和数字通信系统的基本概念、基本原理和基本分析方法,为学生学习后续课程储备专业素养(王海华,Matlab/Simulink仿真在“通信原理”教学中的应用研究:湖北理工学院学报,2015)。
然而这门课程理论内容丰富,系统模型抽象,数学公式多,推理过程繁琐,学生普遍感到枯燥难懂,抓不住重点,学习吃力,不能顺利学好本课程(基于Matlab_Simulink的通信原理虚拟仿真实验教学方法研究:现代电子技术,2015;邵玉斌,Matlab/Simulink通信系统建模与仿真实例分析:清华大学出版社,2008)。
为此,在教学过程中引入Matlab仿真技术,理论联系实践开展教学工作,通过simulink界面搭建系统模型,调整参数,观察通信系统性能,激发学生的学习积极性,提升教学质量,实现良好的教学模式。
1 Matlab软件介绍Matlab在工程数值运算和系统仿真方面具有强大的功能,主要包括数值分析、仿真建模、系统控制和优化等功能(牛磊,赵正平,郭博,Matlab仿真在通信原理教学中的应用:阜阳师范学院学报,2014)。
在Matlab的Communication Toolbox(通信工具箱)中提供了许多仿真函数和模块,用于对通信系统进行仿真和分析。
Simulink平台是Matlab中一种可视化仿真工具,提供了建立模型方框图的图形用户界面(GUI),可以将图形化的系统模块连接起来,从而建立直观、功能丰富的动态系统模型(黄琳,曹杉杉,熊旭辉.基于Matlab的通信原理实验课程设计:湖北师范大学学报,2017)。
MATLABSimulink通信仿真案例设计
设计应用TLAB/Simulink通信仿真案例设计王明慧(陆军装甲兵学院,安徽蚌埠233000随着社会经济的快速发展及科学技术的进步,通信技术得到了迅猛发展,并且其技术手段日益成熟。
通信技术发展的主要目的在于实现数据信息的有效传输,实现人与人之间的沟通和交流。
在通信技术发展过程中,如何把握系统性能,做好系统的有效调制工作,成为通信技术发展必须把握的重要议题。
结合通信技术的发展形势,MATLAB/Simulink软件进行通信仿真,从而对通信技术的有效发展提供重要的参考及指引,以推进通信技术的长远发展及进步,使通信息技术更好地满足人们的实际需要。
平台;通信仿真;技术分析MATLAB/Simulink Communication Simulation Case DesignWANG Minghui(Army Armored Force Academy, Bengbudevelopment of social economy andcommunication technology has been rapidly developed, and its technical means increasingly mature.The main purpose图1 仿真分析过程如图1所示,在开展仿真分析过程中,要注重结合仿真建模、仿真实验以及仿真分析3个步骤,突出螺旋式推进过程,有效把握当前系统中存在的问题及不足,并结合仿真分析结论对系统做好有效改进,使改造后的系统性能水平得到大幅度提升[2-4]。
在开展通信仿真分析的过程中要注重对数字通信系统模型进行有效地构建,反馈通信系统的实际情况,从而科学有效地分析通信系统的情况,有效把握系统性能水平,以实现系统功能,更好地满足实际发展需要。
在进行数字通信系统构建过程中涉及到的技术问题相对较多,主要包括了信号源的编码和译码、信道编码和译码、数字调制与解码、同步及加密和解图2 数字通信系统示意图结合图2所示内容来看,在进行通信仿真分析过程中,要注重做好通信系统模型的有效把握,分析数据通信系统,从而有效把握数字通信性能,以提升系统仿真的效果及质量。
通信原理MATLAB仿真实验指导书V1.1
leansmall@
表 5 MATLAB 特殊运算 符号 : ; , () [] {} 5.MATLAB的一维、二维数组的寻访 表6 子数组访问与赋值常用的相关指令格式 指令格式 A(r,c) A(r,:) A(:,c) A(:) A(i) A(r,c)=Sa A(:)=D(:) 指令功能 数组A中r指定行、c指定列之元素组成的子数组 数组A中r指定行对应的所有列之元素组成的子数组 数组A中c指定列对应的所有行之元素组成的子数组 数组A中各列元素首尾相连组成的“一维长列”子数组 "一维长列"子数组中的第i个元素 数组A中r指定行、c指定列之元素组成的子数组的赋值 数组全元素赋值,保持A的行宽、列长不变,A、D两组元素 总合应相同 构成向量、矩阵 构成单元数组 功能说明示例 1:1:4;1:2:11 分隔行 分隔列 符号 . .. … % ! = 注释 调用操作 系统命令 用于赋值 功能说明 示例
4.MATLAB变量与运算符 变量命名规则如下: (1) 变量名可以由英语字母、数字和下划线组成
Leansmall Lin
第 3 页
2013-4-26
通信原理 Matlab 仿真实验指导书 V1.1
leansmall@
(2) 变量名应以英文字母开头 (3) 长度不大于 31 个 (4) 区分大小写 MATLAB中设置了一些特殊的变量与常量,列于下表。 表1 MATLAB的特殊变量与常量 变量名 ANS i或j pi eps realmax 功能说明 默认变量名,以应答 最近一次操作运算结果 虚数单位 圆周率 浮点数的相对误差 最大的正实数 变量名 realmin INF(inf) NAN(nan) nargin nargout 功能说明 最小的正实数 无穷大 不定值(0/0)
基于MATLAB的MIMO通信系统仿真
其中卷积码的解码深度设为8
调制
在进行编写的进程中,最初没有想到挪用Matlab已经封装好了的QPSK的调制函数而是自己编写了一个函数,先进行了仿真。
先进行了符号映射。
加入噪声,因为输入的是复信息,因此加入的噪声为复噪声
以下图为QPSK系统调制图。
AWGN信道
加性高斯白噪声AWGN(Additive White Gaussian Noise)是最大体的噪声与干扰模型。
加性噪声:叠加在信号上的一种噪声,通常记为n(t),而且不管有无信号,噪声n(t)都是始终存在的。因此通常称它为加性噪声或加性干扰。
白噪声:噪声的功率谱密度在所有的频率上均为一常数,那么称如此的噪声为白噪声。若是白噪声取值的概率散布服从高斯散布,那么称如此的噪声为高斯白噪声。
从上图能够看到,MIMO模型中有一个空时编码器,有多根天线,其系统模型和上述MIMO系统理论一致。发送天线的数量要大于接收天线,因为一样来讲,移动终端所支持的天线数量老是比基站端要少。
(3)分集与复用:
依照各根天线上发送信息的不同,MIMO能够分为发射分集技术和空间复用技术。
发射分集:在不同的天线上发射包括一样信息的信号(信号的具体形式不必然完全相同),达到空间分集的成效,起到抗衰落的作用
图2 分层空时码的接收端系统模型
最后的系统结构图:
三、仿真设计
(1)流程图
(2)要紧模块
信源产生
要求:产生独立等概二进制信源
Matlab函数:randsrc()
信道编码
利用卷积码来进行信道编码
依照3GPP的规定,可选取如上所示的卷积码来进行信道编码。
matlab通信仿真实例
matlab通信仿真实例Matlab通信仿真实例:频移键控(FSK)调制与解调引言:通信系统在现代社会的发展中起着关键作用,其性能的评估和优化是一个重要的研究方向。
Matlab作为通信仿真的强大工具,具有广泛的应用。
本文将以频移键控(FSK)调制与解调为例,介绍如何使用Matlab进行通信仿真实例。
我们将从FSK调制与解调的基本原理开始,逐步介绍Matlab编程实现。
第一节:FSK调制原理频移键控(FSK)是一种基于频率调制的数字调制技术。
在FSK调制中,数字数据被映射到不同的频率,即0和1分别对应不同的载波频率。
调制信号可以表示为:s(t) = Acos(2πf1t) ,当输入为0s(t) = Acos(2πf2t) ,当输入为1其中s(t)为调制信号,A为幅度,f1和f2分别为两个载波频率。
FSK信号的频谱包含这两个载波频率。
下面我们将使用Matlab实现FSK调制。
第二节:Matlab编程实现FSK调制在Matlab中,我们可以使用频率生成器函数freqgen来生成不同频率的信号。
首先,我们需要在Matlab中定义载波频率f1和f2,和待调制的数字数据序列x。
f1 = 1000; 第一个载波频率f2 = 2000; 第二个载波频率x = [0 1 0 1 0]; 待调制的数字数据序列接下来,我们可以根据以上公式,使用正弦函数生成相应的调制信号。
t = 0:0.0001:0.001; 时间间隔s = zeros(size(t)); 初始化调制信号为0for i = 1:length(x)if x(i) == 0s = s + cos(2*pi*f1*t);elses = s + cos(2*pi*f2*t);endend在上述代码中,我们使用for循环遍历输入数据序列的每个元素,根据输入数据的值选择不同的载波频率,并将调制信号叠加在一起。
最后,我们得到了FSK调制信号s。
接下来,我们将介绍FSK解调的原理和Matlab 的实现。
详解matlab simulink 通信系统建模与仿真
详解matlab simulink 通信系统建模与仿真MATLAB Simulink是一款广泛应用于通信系统建模和仿真的工具。
它提供了一种直观的方式来设计和测试通信系统,使得工程师可以更快地开发出高质量的通信系统。
本文将详细介绍MATLAB Simulink在通信系统建模和仿真方面的应用。
一、MATLAB Simulink的基本概念MATLAB Simulink是一种基于图形化界面的建模和仿真工具。
它可以通过拖拽和连接不同的模块来构建一个完整的系统模型。
每个模块代表了系统中的一个组件,例如滤波器、调制器、解调器等。
用户可以通过设置每个模块的参数来调整系统的性能。
二、通信系统建模在MATLAB Simulink中建立通信系统模型的第一步是选择合适的模块。
通信系统通常包括以下几个部分:1.信源:产生数字信号,例如文本、音频或视频。
2.编码器:将数字信号转换为模拟信号,例如调制信号。
3.信道:模拟信号在信道中传输,可能会受到干扰和噪声的影响。
4.解码器:将接收到的模拟信号转换为数字信号。
5.接收器:接收数字信号并进行后续处理,例如解码、解调、解密等。
在MATLAB Simulink中,每个部分都可以用一个或多个模块来表示。
例如,信源可以使用“信号生成器”模块,编码器可以使用“调制器”模块,解码器可以使用“解调器”模块等。
三、通信系统仿真在建立通信系统模型后,可以使用MATLAB Simulink进行仿真。
仿真可以帮助工程师评估系统的性能,例如误码率、信噪比等。
仿真还可以帮助工程师优化系统的设计,例如调整滤波器的参数、改变编码器的类型等。
在MATLAB Simulink中,可以使用“仿真器”模块来进行仿真。
用户可以设置仿真的时间范围、仿真步长等参数。
仿真器会根据系统模型和参数进行仿真,并输出仿真结果。
用户可以使用MATLAB的绘图工具来可视化仿真结果,例如绘制误码率曲线、信号波形等。
四、MATLAB Simulink的优点MATLAB Simulink具有以下几个优点:1.直观易用:MATLAB Simulink提供了一个直观的图形化界面,使得工程师可以更快地建立和调整系统模型。
基于matlab的通信系统仿真
创新实践报告报告题目:基于matlab的通信系统仿真学院名称: 信息工程学院姓名:班级学号:指导老师:二O一四年十月十五日一、引言现代社会发展要求通信系统功能越来越强,性能越来越高,构成越来越复杂;另一方面,要求通信系统技术研究和产品开发缩短周期,降低成本,提高水平。
这样尖锐对立的两个方面的要求,只有通过使用强大的计算机辅助分析设计技术和工具才能实现。
在这种迫切的需求之下,MATLAB应运而生。
它使得通信系统仿真的设计和分析过程变得相对直观和便捷,由此也使得通信系统仿真技术得到了更快的发展。
通信系统仿真贯穿着通信系统工程设计的全过程,对通信系统的发展起着举足轻重的作用。
通信系统仿真具有广泛的适应性和极好的灵活性,有助于我们更好地研究通信系统性能。
通信系统仿真的基本步骤如下图所示:二、仿真分析与测试(1)随机信号的生成利用Matlab中自带的函数randsrc来产生0、1等概分布的随机信号.源代码如下所示:global NN=300;global pp=0。
5;source=randsrc(1,N,[1,0;p,1—p]);(2)信道编译码1、卷积码的原理卷积码(convolutional code)是由伊利亚斯(p。
Elias)发明的一种非分组码。
在前向纠错系统中,卷积码在实际应用中的性能优于分组码,并且运算较简单.卷积码在编码时将k比特的信息段编成n个比特的码组,监督码元不仅和当前的k比特信息段有关,而且还同前面m=(N—1)个信息段有关。
通常将N称为编码约束长度,将nN称为编码约束长度。
一般来说,卷积码中k和n的值是比较小的整数.将卷积码记作(n,k,N)。
卷积码的编码流程如下所示。
可以看出:输出的数据位V1,V2和寄存器D0,D1,D2,D3之间的关系。
根据模2加运算特点可以得知奇数个1模2运算后结果仍是1,偶数个1模2运算后结果是0。
2、译码原理卷积码译码方法主要有两类:代数译码和概率译码.代数译码主要根据码本身的代数特性进行译码,而信道的统计特性并没有考虑在内.目前,代数译码的主要代表是大数逻辑解码.该译码方法对于约束长度较短的卷积码有较好的效果,并且设备较简单。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告题目:基于MATLAB的通信系统仿真———信道编码对通信系统性能的影响专业:通信工程姓名:XXX学号:0730xxxx基于MATLAB 的通信系统仿真———信道编码对通信系统性能的影响 摘要:简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB 仿真有无信道编码条件下对通信系统性能的影响及信道编码在不同信道下对通信系统性能的影响,如AWGN 信道和深衰落信道。
关键词:信道编码、分组码、MATLAB 仿真、性能一、引言提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。
1948年,信息论的奠基人C.E.Shannon 在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理.他指出:对任何信道,只要信息传输速率R 不大于信道容量C, 就一定存在这样的编码方法:在采用最大似然译码时,其误码率可以任意小.该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法.在信道编码定理中,香农提出了实现最佳编码的三个基本条件 :(1 )采用随机编译码方式 ; (2 )编码长度L→∞ , 即分组的码组长度无限 ; (3)译码采用最佳的最大似然译码算法。
【1】二、信道编码理论1、信道编码的目的在数字通信系统中由于信道内存在加性噪声及信道传输特性不理想等容易造成码间串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。
为了确保系统的误比特率指标通常采用信道编码。
信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。
它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。
2、信道编码的实质信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。
举例而言,欲传输k 位信息,经过编码得到长为n(n>k)的码字,则增加了 n - k = r 位多余码元,我们定义 R = k / n 为编码效率。
【2】3、 信道编码公式令信息速率为f b ,经过编码以后的速率为f t ,定义:R =f b /f t 为编码率。
则对于任何一个信道,总存在一个截止速率R 0,只要R <R 0,总可以达到:BER <C R 2-nR0,其中C R 为某个常数,n 为编码的约束长度。
对于等概二进码、AWGN 信道,有:)1(log 100/20N E R b e R -+-=121ln 1)1(000-=-R b R N E三、线性分组码的编译码原理1、 线性分组码的基本概念一个[n ,k ]线性分组码, 是把信息划成k 个码元为一段(称为信息组), 通过编码器变成长为n 个 码元的一组, 作为[n , k ]线性分组码的一个码字。
若每位码元的取值有q 种(q 为素数幂), 则共有q k 个码字。
n 长的数组共有q n 组, 在二进制情况下, 有2n 个数组。
显然, q n 个n 维数组(n 重)组成一个GF(q )上的n 维线性空间。
如果q k (或2k )个码字集合构成了一个k 维线性子空间, 则称它是一个[n ,k ]线性分组码。
即将k 维k 重信息空间的元素线性映射到n 维n 重矢量空间(接收矢量/收码) 的k 维n 重子空间(码空间)。
如下图为[7,3]码2、生成矩阵和校验矩阵生成矩阵:[]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡==0110001101001011001001111000 Q G k IG 称为生成矩阵,因为可以用它产生整个码组A ,即有[][]G 34560123456a a a a a a a a a a a A ==生成矩阵的性质:具有[I k Q ]形式的生成矩阵称为典型生成矩阵。
由典型生成矩阵得出的码组A 中,信息位的位置不变,监督位附加于其后。
这种形式的码组称为系统码。
矩阵G 的各行也必须是线性无关的。
如果已有k 个线性无关的码组,则可以将其用来作为生成矩阵G ,并由它生成其余码组。
【3】监督矩阵:[]r PI H =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=001101101011011001110监督矩阵可用来校验和纠错。
四、MATLAB仿真源程序及说明采用模块化编程,力求把每个功能独立成各个模块,让程序更清晰。
首先介绍各个子程序及其实现的基本功能。
运行环境为Matlab7.0版本通信过程的每个模块写成子程序函数:Channelcoding 为信道编码函数Channeldecoding 为信道解码纠错子函数Interwaving 为交积子函数Deinterwaving 为解交积子函数addfade为向信道加入衰落参数的子函数awgn 为库函数,向信源加高斯白噪声pskmod 为库函数,用于信号调制,输出为复数pskdemod 为库函数,用于信号解调脚本文件:file1:信道编码对通信系统性能的影响,有无信道编码的影响file2:在周期性深衰落的信道条件下,交织对通信系统性能的影响file3:在交织条件下,不同时长的周期性深衰落对系统性能影响的比较信道编码子程序:%信道编码子函数,sym为编码码流,G为生成矩阵,k为编码方式的长度,如(7,4)码的4 function bitcoded=channelcoding(sym,G,k)A=vec2mat(sym,k);U=A*G;U=mod(U,2);bitcoded=reshape(U',1,[]);信道解码子程序:function bitdecoded=channeldecoding(recode,Etab,Smatrix,H,n,k)% 前向纠错函数,实现纠错功能% bidecoded为纠错后返回的比特流% recode为输入的比特流% E为错误图样表,S为对应的伴随式表% H为监督矩阵,n,k为码的类型,如(7,4)码,n=7,k=4row=length(recode)/n; %行数E=zeros(row,n); %错误图样RM=zeros(row,n); %纠错之后的矩阵R=vec2mat(recode,n);S=R*H'; %伴随矩阵S=mod(S,2);for i=1:rowfor j=1:2^(n-k) %查表纠错if(S(i,:)==Smatrix(j,:))E(i,:)=Etab(j,:);RM(i,:)=R(i,:)+E(i,:);RM(i,:)=mod(RM(i,:),2);break;endendendbitdecoded=reshape(RM',1,[]); %转化为比特流交织子程序:function retbit=interweaving(bitstream,row,col)%功能:实现对输入比特的交积% retbit为交积后返回的比特流向量% bitstream 为需要交积的比特流向量% row 和 col为交积器的行和列,% 通过改变col就可以改变交积深度retbit=zeros(1,length(bitstream));bitarr=vec2mat(bitstream,row);bitarr=bitarr';for i=1:length(bitstream)/(row*col)temp=bitarr(:,((i-1)*col+1):i*col);retbit(1,((i-1)*(row*col)+1):(i*(row*col)))=reshape(temp',1,[]); end解交织子程序:function retbits=deinterweaving(bitstream,row,col)%功能:实现对输入比特的解交积%rebits为解交积后返回的比特流% bitstream输入的比特流%row 和 col为交积器的行和列,通过改变col就可以改变交积器的长度 retbits=zeros(1,length(bitstream));bitarr=vec2mat(bitstream,col);for i=1:length(bitstream)/(row*col)temp=bitarr((i-1)*row+1:i*row,:);retbits(1,(i-1)*row*col+1:i*row*col)=reshape(temp,1,[]); end信道衰落子程序:function code=addfade(modcode,Tf,isperiod,isfade)%功能:向传输序列modcode叠加衰落性信道的衰落参数k(t)%code为加入衰减参数之后返回的序列。
% modcode为调制之后的序列% Tf 为衰落时间,以ms为单位,小于10ms,% Tf=1,表示衰落1ms% isperiod 周期衰落和一次性衰落的标志,% isperiod=1表示周期性衰落,0表示一次性衰落% isfade表示是否存在衰落,1存在,0不存在衰落直接返回modcodeif(isfade==1)if(isperiod==1) %周期性衰落for k=1:length(modcode)/(100*Tf)a=(k-1)*100*Tf+31;b=(k-1)*100*Tf+30+10*Tf;modcode(1,a:b)=0.1*modcode(1,a:b);endelse %一次衰落a=31;b=30+10*Tf;modcode(1,a:b)=0.1*modcode(1,a:b);endcode=modcode;elsecode=modcode;end1、 file1:信道编码对通信系统性能的影响,有无信道编码的影响执行时间:Elapsed time is 355.023518 seconds.ticclc%功能:有无信道编码性能比较M=2; %进制b=log2(M) ; %每符号比特数n=128*10000 ; %符号数G=[1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1] ; %生成矩阵H=[1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0] ; %监督矩阵Etab= [0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样0 0 0 0 0 1 0;0 0 0 0 1 0 0;0 0 0 1 0 0 0;0 0 1 0 0 0 0;0 1 0 0 0 0 0;1 0 0 0 0 0 0];Smatrix=Etab*H'; %对应的伴随式sym=randint(n,1,M);sym=de2bi(sym,'left-msb'); %模拟信源编码bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码modbit=pskmod(bitcoded,M);%在传输序列modbit加入AWGN噪声snr=0:0.2:15; %噪声为0到15dL=length(snr)ser=zeros(1,L);ser2=zeros(1,L);for k=1:Ly=awgn(modbit,10*log10(b)+snr(k),'measured');zsym=pskdemod(y,M); %复数解调zbit=de2bi(zsym,'left-msb');recode=reshape(zbit',1,[]);Rstream=recode;err=(Rstream~=bitcoded);errnum=sum(err);ser(k)=log10(errnum/length(bitcoded));%纠错bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4);err=(bitdecoded~=bitcoded);errbits=sum(err);ser2(k)=log10(errbits/(length(bitcoded)));endplot(snr,ser,'b-*')hold onplot(snr,ser2,'r-o')grid onlegend('没有信道编码','信道编码');xlabel('Eb/No(dB)');ylabel('SER');title('2PSK有无信道编码性能比较');toc %Elapsed time is 278.288819 seconds.程序运行时间结论:由上图在较高信噪比的时候编码增益很明显大大提高了误码性能,但是在低信噪被的时候编码增益较小甚至可能是负值,则是因为编码后信息比特能量扩散到多个编码比特上,每个编码比特能量有所降低,如果信噪比低的话,编码冗余带来的性能增益可能弥补不了编码比特的能量的降低,因此信道中信噪比的波动会显著降低编码性能2、 file2:在周期性深衰落的信道条件下,交织对通信系统性能的影响ticclc%功能:有无信道编码性能比较M=2; %进制b=log2(M) ; %每符号比特数n=128*10000 ; %符号数interrow=8;intercol=10;%交积矩阵的行和列G=[1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1] ; %生成矩阵H=[1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0] ; %监督矩阵Etab= [0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样0 0 0 0 0 1 0;0 0 0 0 1 0 0;0 0 0 1 0 0 0;0 0 1 0 0 0 0;0 1 0 0 0 0 0;1 0 0 0 0 0 0];Smatrix=Etab*H'; %对应的伴随式sym=randint(n,1,M);sym=de2bi(sym,'left-msb'); %模拟信源编码bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码interv=interweaving(bitcoded,interrow,intercol); %交积向量modbit=pskmod(bitcoded,M);modbit2=pskmod(interv,M);%向传输序列modcode叠加衰落性信道的衰落参数k(t)modbitfade=addfade(modbit,1,1,1);modbitfade2=addfade(modbit2,1,1,1);%1ms周期性衰落modbitfade3=addfade(modbit2,2,1,1);%衰落时长2ms%在传输序列modbit加入AWGN噪声snr=0:0.2:25; %噪声为0到25dL=length(snr)ser=zeros(1,L);ser2=zeros(1,L);for k=1:Ly=awgn(modbitfade,10*log10(b)+snr(k),'measured');y2=awgn(modbitfade2,10*log10(b)+snr(k),'measured');y3=awgn(modbitfade3,10*log10(b)+snr(k),'measured');zsym=pskdemod(y,M); %复数解调zsym2=pskdemod(y2,M);zsym3=pskdemod(y3,M);zbit=de2bi(zsym,'left-msb');zbit2=de2bi(zsym2,'left-msb');zbit3=de2bi(zsym3,'left-msb');recode=reshape(zbit',1,[]);recode2=reshape(zbit2',1,[]);recode3=reshape(zbit3',1,[]);deinterv=deinterweaving(recode2,interrow,intercol);%解交积向量deinterv3=deinterweaving(recode3,interrow,intercol);Rstream=recode;Rstream2=deinterv;Rstream3=deinterv3;%纠错bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4);bitdecoded2=channeldecoding(Rstream2,Etab,Smatrix,H,7,4);bitdecoded3=channeldecoding(Rstream3,Etab,Smatrix,H,7,4);err=(bitdecoded~=bitcoded);errbits=sum(err);ser(k)=log10(errbits/(length(bitcoded)));err2=(bitdecoded2~=bitcoded);errbits2=sum(err2);ser2(k)=log10(errbits2/(length(bitcoded)));err3=(bitdecoded3~=bitcoded);errbits3=sum(err3);ser3(k)=log10(errbits3/(length(bitcoded)));endplot(snr,ser,'b-*')hold onplot(snr,ser2,'r-o')hold onplot(snr,ser3,'k-+')grid onlegend('有信道编码没有交织1ms衰落','有信道编码有交织1ms衰落','有信道编码有交织2ms衰落');xlabel('Eb/No(dB)');ylabel('SER');title('2PSK衰落信道有无交织性能比较');toc %Elapsed time is 1504.524053 seconds.%该程序运行时间结论:衰落信道使系统的误码性能大大的降低,尤其是时延扩展远大于码元宽度的衰落,如瑞利衰落信道,此时信道属于慢深衰落,容易使得传输的信息出现连续的错误,当出现的错误大于信道编码的纠错能力时,就无法产生编码增益,甚至可能是性能恶化。