《导航接收机技术》实验讲义仿真实验1:C/A码生成器(1学时)一、实验要求:利用Matlab软件中的Simulink进行建模分析,构建C/A码生成器并对输出结果进行正确性分析。二、实验系统模型构建及参数配置:在Simulink软件中,构建下列系统模型其中R11~R1X和R21~R2X都是UnitDelay模块,来自库中的Simulink\Discrete路径下。对于UnitDelay模块,双击之后,弹出参数配置界面如下。点击“Help”按钮会弹出该模块的详细使用文档,会仔细介绍各个参数的具体含义。在本次试验中,示例工程里,所有的UnitDelay模块必须设定的两个参数:InitialCondition:用于设定该寄存器的初始值,在理论授课中指出,C/A码发生器G1和G2寄存器在复位信号触发下,各寄存器赋初始值1。Sampletime:设定采样速率,等同于寄存器的clk时钟频率。根据理论授课讲授的知识,C/A码发生器的驱动时钟是1.023MHzXOR是两输入的异或运算符,数据类型为boolen,采样频率由系统根据输入数据的频率自行设定。系统模型中的下列部分功能是为了实现boolen型的0,1数据向double类型的-1,+1转变的模块。其中,DataTypeConversion来自库中的Simulink\CommonlyUsedBlocks。示例工程中,该模块的参数配置如下图,主要是确定输出数据类型为double。SubSystem是一个用户自行封装的子模块,双击能够打开显示该子模块的内部结构。通过Switch模块,根据输入数据的大小切换输出常量1或常量-1。Switch模块和Constant模块均来自库文件中的Simulink\CommonlyUsedBlocks子模块。Switch模块的参数配置如下所示。主要是配置判决条件和门限值。Scope是Simulink软件中最长使用的模块,其功能类似于示波器。可以设置输入端口的数量。ToWorkspace模块用来将仿真数据保存成变量,便于查看的后继的分析处理。三、实验结果分析:由于寄存器UnitDelay模块的采样时钟设定为1/1.023MHz,示例工程的数据比特率即为1.023MHz,每个码片的宽度为1/1.023MHz,如果想要显示10个码片以上,仿真时间需要大于10*(1/1.023MHz)=9.78×10-6=0.00001s。本次仿真设定仿真时间为0.0004s,仿真结果如下所示。Scope1模块输出结果:该结果证明G2寄存器的选择抽头只是使得G2寄存器的输出序列发生不同程度的延时,并不能改变G2寄存器的数据格式。Scope2模块的输出结果:显示了PRN=1的C/A序列的前41个比特的波形,以及电平转换。同时在Matlab软件的WorkSpace工程中会出现设定的变量(CA_PRN1),通过变量观察窗口,可以得到序列的数值形式,进行比对验证C/A码发生器设计是否正确。作业:请同学根据本次实验学习的知识,自行完成下列任务:(1)生成其余PRN值得CA码序列,并进行验证。