CDMA通信系统中的接入信道部分进行仿真分析(6)

2020-04-21 00:18

更多资料 www.sfmcu.com www.sf-edu.cn 盛方 第 21 页 共 45 页 SIMULINK模型具有层级结构,非常有利于建造和管理一个大型系统。为便于实现分层设计,在SIMULINK模块库的费线形子库(Nonlinear)中含有一种专用模块——子系统(Subsystem)模块,同时,SIMULINK还为子系统提供了封装(MASK)功能。

1. 子系统模块(Subsystem Block)

当一个动态模型包含许多环节时,往往把系统功能分块,每一块建立一个子系统。在设计中使用子系统,可以降低模型的复杂度,减少窗口的数目,并易于对模型进行扩充和修改。设计一个SIMULINK框图,可以采用“自顶向下”的设计方式,下构造处总体模型,再分别建立各个子系统;也可以采用“自顶向下”的设计方式,先完成每个部分底层设计,封装为子系统后,再用其搭建一个总体框图。

下面简要给出采用“自顶向下”模式设计子系统的主要步骤:

(1)在MATLAB工作窗口中键入sinmulink指令,打开SIMULINK标准模块库。从它的[File]菜单中选取[New]命令,创建新的方框图窗口。

(2)用鼠标双击SIMULINK模块库中Connections图表,打开下一级子模块库,将其中的子系统模块(Subsystem)用鼠标拖至用户新建的文件窗口中。

(3)双击子系统模块,打开一个空白的子系统窗口,按照功能要求添加模块,并用输入端口代表送入子系统的信号,输出端口代表输出信号。

2. 封装功能

具有封装功能是SIMULINK模块一个非常有用的特点。通过封装可以为子系统建立用户自定义的对话筐和图标;可以在当前图形窗口中隐藏子系统的设计内容,用简单的图标来代替子系统。另一方面,由于子系统中每个模块都有一个对话筐,进行仿真的时候,必须打开每个对话筐分别定义参数值,应用起来比较麻烦。而封装功能可以将子系统中的多个对话筐合并为一个单独的对话筐——封装对话筐,封装对话筐中的参数在仿真时被直接送入子系统的各个模块中,从而简化了用户定义仿真参数过程。同时,通过在封装对话筐中自定义的模块参数域、模块描述信息和模块帮助信息等,可以使仿真模型有一个更友好的用户界面。

4 设计仿真、分析与验证

根据前面所述的原理与总体框图,在此,我们对接入信道进行完全的仿真、分析与验证如下:

4.1 设计总体模块构造

更多资料 www.sfmcu.com www.sf-edu.cn 盛方 第 22 页 共 45 页

图 4.1.1仿真总体构图

4.1.2subsystem1内部结构

图4.1.3subsystem2内部结构

4.2 对各个模块进行分析与验证

4.2.1源中部分(subsystem1)设置、说明与分析:

在源这部分里面,我们用贝努力二进制产生器产生所需的二进制代码,所产生的码序列是服从贝努力概率分布的。为了满足设计的需要,我们同时将贝努力产生器的输出值设为[80×1]且基于帧格式的输出方式,也即:基于帧格式输出的80行和1列的矩阵。再利用CRC产生8位循环冗余检验(CRC)码,在数据尾部加入CRC码的作用有两点:第一,可以在接收时确定帧(包)是否发生了错误,第二,可以辅助确定接收的帧的数

更多资料 www.sfmcu.com www.sf-edu.cn 盛方 第 23 页 共 45 页 据速率,最终对数据速率的确定则是卷积译码器。另外,利用 Zero Pad(零填充模块)模块,在数据帧末端加入8个比特的0,其作用在于,在每帧卷积编码结束后,对卷积编码其中的移位积存器复位。由于MATLAB中的卷积编码器具有自动复位功能,因此这个零填充模块并不是必须的。但在此,我们仍然将此模块设置为插入8个尾比特零,可以使数据的速率达到我们最终的要求。模块的参数设置见下面的各图形。

模块设置如下:

4.2.1.1 Bernoulli模块设置 Bernoulli模块参数设置说明:

(1)Probability of a zero :0.5表示的是以概率0.5取值为1,以0.5的概率取值为-1;

(2)Sample time:20/1000表示的是20毫秒,设置为20ms的原因在于,4800bit/s的速率的帧长为20ms ;80是指每帧中含有80个比特数据,对于4800bit/s的速率而言,应该每帧的比特数为96个,之所以在这里设置为80,是因为在后面的CRC产生器和Zero Pad分别产生了8个冗余循环码和8个尾比特0码。因此,在这里每个比特的抽样时间为20/1000/80s.

(3)将输出数据设置为基于帧结构的方式,也即:选择Frame-based outputs的选项,原因在于,CRC码产生模块的输入必须基于帧数据结构的。

(4)每帧的数据为80比特,所以,将每帧的抽样次数设置为80,也即:Samples per frame设置为80。

4.2.1.2 CRC模块设置

更多资料 www.sfmcu.com www.sf-edu.cn 盛方 第 24 页 共 45 页 CRC模块参数设置说明:

对于反向信道的Half Rate(半速率,也即为4800bit/s)而言,Generatal CRC Generator的生成多项式为:

3478 g(x)?1?x?x?x?x?x所以对应的Generator polynomial的设置就应为:[1 1 0 1 1 0 0 1 1]

图4.2.1.3 Zero Pad模块的的设置

Zero Pad模块参数设置说明:

(1)在这里将Pad signal at设置为End是因为,我们期望在数据末尾插入8个0

尾比特。

(2)由于我们在CRC的输出为[88×1]的比特数据,也即一列的数据,所以,为了

在同一的数据后面添加8个0数据,我们在这里就将Pad along设置为:Columns. (3)在该模块的输出端,我们要求帧数据的比特数为96,也即为了在帧数据后面加

入8个0,因而将Specified number of output rows设置为96。

综合上面所述,我们将上三个模块构建为一个“源(source)”子系统,简单的封装后的图形为:

图4.2.1.4源子系统模块

更多资料 www.sfmcu.com www.sf-edu.cn 盛方 第 25 页 共 45 页 对该源内各个模块间的数据变化情况验证如下图中的波形所示:

4.2.1.5 源内部各模块的输出波形

其中,依上至下的波形分别是Bernoulli模块、CRC模块、Zero Pad模块的输出波形。

从图中,我们可以清晰的看见,第二各波形相对于第一个波形而言,增加的比特数分别为:0 0 0 1 1 0 1 0,也即刚好8个比特数,与理论中的在帧数据后面插入8个CRC冗余循环码完全的;在第三个波形中,我们同样可以看出,它相对于第二个波形而言,在末尾刚好加入了8个0比特,即:0 0 0 0 0 0 0 0。

4.2.2 对卷积编码器和重复模块的设置、说明与分析:

仿真连接方法见下面图形:

图4.2.2.1仿真连接图1

其中,使用Buffer 的原因在于:由于Subsystem1模块、卷积编码器模块、重复模块输出的数据都是基于帧的数据,而Scope示波不能观察基于帧的数据,所以,我们需要将基于帧的数据转换为适合示波器的数据来观测。通过转换,我们可以将Subsystem1模块、卷积编码器模块、重复模块的原来每次每帧同时输出分别为[96×1]、[288×1]、[576×1]的数据都改变为输出均为每次1个的数据。这样,我们就可以用示波器来观察,并验证我们的设置。 卷积编码器参数设置说明:


CDMA通信系统中的接入信道部分进行仿真分析(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:填写省级行政区的简称及山脉名称

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: