CDMA多用户检测的Simulink仿真研究样本.docx

上传人:大张伟 文档编号:10111306 上传时间:2021-04-20 格式:DOCX 页数:11 大小:167.43KB
返回 下载 相关 举报
CDMA多用户检测的Simulink仿真研究样本.docx_第1页
第1页 / 共11页
CDMA多用户检测的Simulink仿真研究样本.docx_第2页
第2页 / 共11页
CDMA多用户检测的Simulink仿真研究样本.docx_第3页
第3页 / 共11页
CDMA多用户检测的Simulink仿真研究样本.docx_第4页
第4页 / 共11页
CDMA多用户检测的Simulink仿真研究样本.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《CDMA多用户检测的Simulink仿真研究样本.docx》由会员分享,可在线阅读,更多相关《CDMA多用户检测的Simulink仿真研究样本.docx(11页珍藏版)》请在三一文库上搜索。

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。第四章 仿真环境介绍及模型的建立4.1 MATLAB & Simulink简介MATLAB软件系列产品是一套高效强大的工程技术数值运算和系统仿真软件,广泛应用于当今的航空航天、汽车制造、 半导体制造、 电子通信、 医学研究、财经研究和高等教育等领域 ,被誉为”巨人肩膀上的工具” 。研发人员借助 MATLAB软件能迅速测试设计构想 , 综合评测系统性能 ,快速设计更好方案来确保更高技术要求。同时 , MATLAB也是国家教委重点提倡的一种计算工具。综合起来 , MATLAB有编程效率高、使用方便、扩充能力强、 语句简单 , 内涵丰富、

2、 高效方便的矩阵和数组运算、方便的绘图功能等特点。动态系统是输出信号随时间变化的系统。要描述这种系统的特性, 传统的建模方法是先对系统的输入信号和输出信号进行分析,得到它们的系统方程 ,然后编写程序进行仿真。这种仿真方法有两个缺点。首先是不够直观, 缺乏足够的人机交互。由于所有的输入信号和输出信号都被抽象成数值之间的关系, 仿真表现为一种计算过程 ,因此难以对仿真的过程进行控制,也难以对仿真的输出数据进行直观的描述和分析。另外 ,这种方法缺乏系统性 ,特别是在对复杂系统的处理过程中 , 难以采用模块化方法 , 从而降低了仿真程序的可读性和可扩展性。Simulink是 MATLAB 提供的用于对

3、动态系统进行建模、仿真和分析的工具包。 Simulink提供了专门用于显示输出信号的模块,能够在仿真过程中随时观察仿真结果。同时 ,经过 Simulink 的存储模块 , 仿真数据能够方便地以各种形式保存到工作区或文件中, 供用户在仿真结束之后对数据进行分析和处理。另外,Simulink 把具有特定功能的代码组织成模块的方式, 而且这些模块能够组织成具有等级结构的子系统, 因此具有内在的模块化设计要求。基于上述优点,Simulink 称为一种通用的仿真建模工具 , 广泛应用于通信仿真、数字信号处理、模糊逻辑、神经网络、机械控制和虚拟现实等领域。根据输出信号与输入信号的关系, Simulink提

4、供 3种类型的模块 :连续模资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。块、 离散模块和混合模块。连续模块是指输出信号随着输入信号发生连续变化的模块 , 离散模块则是输出信号以固定间隔变化的模块。对于连续模块 , Simulink 采用积分方式计算输出信号的数值 , 因此 , 连续模块主要涉及导数的计算及其积分。离散模块的输出信号在下一个抽样时刻到来之前保持恒定 , 这时候 Simulink 只需以一定的间隔计算输出信号的数值。混合模块是根据输入信号的类型来确定输出信号类型的 , 它既能够产生连续输出信号 , 也能够产生离散输出信号。如果一个仿真模型中只包含离散模块 , 这时

5、候 Simulink 采用固定步长方式进行仿真 ( 即每个一定的间隔计算一次输出信号 ) 。当所有的离散模块都有相同的抽样间隔时 , Simulink 只需要按照这个间隔实施仿真 ; 否则 , Simulink 采用多速率方式进行仿真。多速率仿真模式的一种方案是选取一个最大可用间隔 , 使之适用于所有的离散模块。这个间隔一般是各个离散模块抽样间隔的最大公约数。对于可变步长方式 , 多速率仿真模式按照各个模块的抽样间隔列出系统可能的仿真时刻 , 在仿真时刻到来的时候只对相应的离散模块实施仿真 , 从而在一定程度上提高了仿真的效率。如果仿真模型中包含了连续模块 , Simulink 将采用连续方式

6、对模块进行仿真。如果模块中既包含了连续模块 , 又包含了离散模块 , Simulink 采用两种仿真步长进行仿真。对于其中的离散模块 , Simulink 能够按照离散模块的方式进行仿真 , 这个仿真步长称为主步长( major step size)。在每个主步长仿真中,Simulink 使用小步长间隔 ( minor step size) ,经过积分运算得到连续状态的当前输出信号。S- 函数是系统函数 ( System-functions)的简称。多情况下 , Simulink模型库( Simulink Library)中的模块不能完全满足用户的要求 , 这时候需要由用户自己来编写相应的代码

7、。 M文件虽然能够用来编写MATLAB函数代码 ,可是它不具备与 Simulink 的接口 ,因此难以与 Simulink其它模块一起使用。 S- 函数则提供了函数代码与 Simulink之间的接口 , 使得用户编写的代码既能够像Simulink模型库中的模块那样具有统一的仿真接口, 同时能够实现各种灵活的控制和计算功能。从这个意义上说 , S- 函数是对 Simulink模块库功能的扩展。 S-函数的代资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。码既能够用 MATLAB 语言编写 ,也能够用其它通用的编程语言(如 C、 C+、 Ada或 Fortran 等 ) 编写 , 后

8、者具有更强的控制能力 , 它们被编译成 MEX( MATLAB EXecutable) 文件 , 而且在仿真过程中动态装载。4.2仿真模型的建立本文利用 Simulink 平台, 模拟了一个小区内十个用户的码元发送 , 扩频 , 接收, 解扩 , 判决的 CDMA通信基本过程 , 仿真基本流程如图 4-1 所示 :图 4-1 Simulink 仿真基本流程在每一个仿真步长 (1 秒) 内, 每个用户发送一个信息码元 , 10 个用户则对应发送 10 个用户信息码元 , 然后用 10 个 P=31的 m序列分别对这 10 个用户的信息码元进行扩频 ( 相乘 ) 处理 , 然后合路相加并加入高斯白

9、噪声。在接收端用和发送端相同的 10 个 m序列分别对信息码元进行解扩 ( 相乘 ) 处理 , 最后进行积分 , 判决 , 完成了对这 10 个用户的信息码元的恢复 , 即对于这 10 个用户中的每一个用户 , 一个仿真步长 (1 秒 ) 内完成了一个信息码元的恢复 , 若要发送 5000 个码元 , 仿真时间设置为 5000 秒即可 , 这是传统单用户检测的情况。对于线性解相关多用户检测和最小均方误差多用户检测 , 只需在传统单用户检测输出的基础上乘以相应算资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。法的线性算子即可 , 如线性解相关多用户检测的线性算子Ldec R 1 ,

10、 最小均方误差多用户检测的线性算子 LMMSER2 A 11。最后 ,分别计算这三种检测方法的误码率 ,比较它们的性能。下面详细介绍一下仿真模型中各个主要的模块:(1) 用户信号生成模块用户信号生成模块是利用S- 函数编写了一个自定义模块,它的功能是生成随机 1 序列 ,在 S-函数的主程序中调用mdlInitializeSizes例程进行初始化,设sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=0;sizes.DirFeedthrough=0;sizes.NumSampleTimes

11、=1;x0=;ts=1 0;调用 mdlOutputs 例程进行输出 , sys=2*randint-1即可生成随机 1 序列。紧跟在用户信号生成模块之后,是一个 gain 模块 ,设置相应的增益参数即可对各个用户的功率进行控制。(2) m 序列发生器模块运用 Embedded MATLAB Function block 编写了一个 m序列发生器模块 , 模块有一个输入 , 一个输出 , 输入为对应的 5 级左移移位寄存器的反馈系数 , 输出为一个 P=31的 m序列。(3) 信号合路用了一个 Add模块 , 加入一个 RandomNumber模块 , 生成均值是 0, 方差为 1 的高斯正态

12、分布随机信号做为噪声。(4) 积分判决由于解扩后的输出后的信号是一个离散量,因此用一个求均值功能的模块,相当于在连续域的时间上求积分平均,判决输出用 sign 模块完成。(5) 解相关多用户检测和最小均方误差多用户检测的线性算子用自定义模块或和其它一些模块组合完成 , 如图 4-2 所示。资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。(a) 解相关检测器线性算子 Ldec R 1(b) 最小均方误差检测器线性算子LMMSE R2 A 1 1图4-2线性算子模块(6) 误码率求解模块直接运用Error Rate Calculation模块。实际仿真模型图4-3所示 :资料内容仅供

13、您学习参考,如有不当或者侵权,请联系改正或者删除。图 4-3 CDMA多用检测的 Simulink 仿真模型资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。第五章 仿真测试报告本章中给出了仿真测试报告, 5.1节中用编写好的MATLAB程序给出仿真结果 , 分析比较了传统单用户检测、 线性解相关多用户检测和最小均方误差多用检测之间的误码率性能 ; 5.2 节中根据编写好的 Simulink 仿真模型 , 设置好相应的仿真参数 , 对比了这几种不同检测方法的误码率 , 以达到分析它们之间性能差异的目的。5.1 MATLAB仿真5.1.1 测试传码 5000 个情况下 10 个用户的误码率mud.m 是一个比较传统单用户检测,线性解相关多用户检测,最小均方误差多用户检测之间的误码率性能的程序,运行本程序首先出现一个对话框,等待输入相应的仿真参数 ,如图 5-1 所示 :图 5-1 仿真界面其中第一行为用户数,第二行为用户信息码元个数,第三行为各个用户对

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1