1、1.使用 Simulink 建模和仿真的过程简单介绍 Simulink 建模和仿真的全过程。启动 MATLAB 之后,在命令窗口中输入命令“simulink” 或单击 MATLAB 工具栏上的 Simulink 图标,打开 Simulink模块库窗口。在 Simulink 模块库窗口中单击菜单项“File|New|Model”,就可以新建一个Simulink 模型文件。通过快捷菜单的其它选项还可以修改模型的颜色、旋转、字体、阴影等属性,也可对模型进行剪切、拷贝或删除。 根据仿真需要建立仿真系统。根据要求,设置各仿真模块的仿真参数 ;然后设置仿真系统的仿真时间。从仿真系统,菜单项“Simulat
2、ion|SimulationParameters.”打开仿真参数设置对话框(快捷键为 Ctrl+E) ,我们现在设置求解器标签下的参数部分,如图所示。设置仿真起始时间为-2 秒,仿真结束时间为 10秒,其余参数为默认值所有这些工作完成之后,就可以进行仿真了。可通过建模窗口菜单项“Simulation|Start”启动仿真,也可以单击工具栏上的小三角按钮或使用快捷键 Ctrl+T 启动仿真。建立一个Simulink 模型文件后,建模系统可以通过“File”菜单存盘为模型文件,扩展名为“mdl”,如“lizi1.mdl”。2. MATLAB 命令窗口与 Simulink 之间的交互我们可以通过 M
3、ATLAB 命令来打开 Simulink 模型并进行仿真。在 MATLAB命令窗口中,使用“openlizi1.mdl”,然后使用“sim(lizi1.mdl)” 就可以启动对模型lizi1.mdl 的仿真计算,从而实现 Simulink 仿真的自动化。而 Simulink 仿真的数据结果也可以送回 MATLAB 工作空间中作进一步数值分析。仍以上例加以说明。首先设置示波器,使得显示波形数据能够送回 MATLAB 工作空间。在示波器波形显示窗口单击“参数Parameters”工具图标,打开显示参数设置对话框。选中 Datahistory 标签下的Savedatatoworkspace,并设传递
4、变量名称,例如设为 ScopeData,格式选择为Structurewithtime(带时间的结构型变量) 。参数设置的情况如图所示。 将建模存盘为 lizi1.mdl,然后在 MATLAB 下运行如下命令(参见图 2-18):clear;%工作空间初始化 openlizi1.mdl;%这时将看到建模模型文件被打开sim(lizi1.mdl);%启动模型仿真,显示出仿真波形MATLAB 提供了许多途径用于与 Simulink 的数据交互。通过 Sources 子模型库中的FromWorkspace 模块可以从工作空间中读入仿真所需要的输入数据,而通过 Sinks 子模型库中的 ToWorksp
5、ace 模块可以将 Simulink 中产生的数据回送到工作空间,从而可以实现MATLAB 编程与 Simulink 模型相结合的混合仿真,这样就大大加强了仿真的功能。1.m 序列m 序列是最大长度线性反馈移位寄存器序列的简称。它是带线性反馈的移位寄存器产生周期最长的一种序列。考虑图 8-1 所示的二进制序列产生器,它由线性反馈移位寄存器构成,式中 ci 为 1 表示连接,为 0 表示断开。加法器应用的是模 2 加法。称为线性反馈逻辑式。它全面地描述了线性反馈移位寄存器的反馈逻辑连接。反馈移位寄存器原理图如图所示。 序列生成函数(亦称序列多项式)可以表示为如下形式G(x)=a0+a1x1+a2
6、x2+= 将线性反馈逻辑代入后,选择初始状态为a-r=1; a-r+1=a-r+2=a-1=0 可以得到上式中的 F(x) 是关于 ci 的多项式,因此是表示序列生成器的反馈连线的特征,称为移位寄存器序列生成器的特征多项式。由于 r 位二进制移位寄存器最多可以取 2r 个不同状态,因此每个移位寄存器序列 s(t) 最终都是周期序列,并且其周期 n 2r ,有 s(t)=s(t+n),tn 式中 n 是某个整数。事实上,一个线性移位寄存器序列的最大周期为 2r-1,因为一个进入全零状态的移位寄存器将终止于该状态。m 序列就是具有最大周期的二进制移位寄存器序列。现已证明,对任何一个 r1,m 序列
7、都存在。在扩频通信中 m 序列被广泛地应用。这里介绍两个重要的结论。 (1)m 序列具有可以担任扩频通信相关要求的特性,即具有很强的自相关特性和很弱的互相关特性,周期为 2r-1 的 m 序列可以提供 2r-1 个扩频地址码。(2)只有反馈连线满足特定要求的序列生成器,才能够产生 m 序列。而这个特定要求可以用特征多项式是本原多项式来描述。下面是关于本原多项式的定义。 若一个 n 次多项式 f(x) 满足下列条件: riinirnrnnn acaccc 1.0iixriixcz0)()(1(1)f(x) 为不可约的;(2)f(x) 可整除 xm+1,m=2n-1;(3)f(x) 除不尽 xq+
8、1,qm,则称多项式 f(x)为本原多项式。所以,构建一个 m 序列的主要工作,就变成求解一个本原多项式的特征多项式问题了。计算和查表都可以完成,当然计算是比较复杂的。下面是应用 MATLAB 软件求解本原多项式的方法(用编程的方法得到) 。 程序 8-1 n=7;x=gfprimfd(n, all);%求出 n=4 的所有本原多项式的系数序列for i=1:size(x);%将系数序列写成解析式,循环语句是依次写出所有的本原多项式gfpretty(x(i,:) )end运行结果是1+x+x41+x3+x4 而本原多项式的系数序列 ci 是: 1100110011可以看出:(1)系数序列与解析
9、式的表达是完全对应的。(2)ci 是对称的,即c0= ci c1=cr-1 这个问题可以用下面的理论来解释:设 GF(p)上的 m 次多项式a0+a1x+amxm (am0, a00) f*(x)称为 f(x)的互反多项式,所以本原多项式的个数总是偶数。求出了本原多项式,可以通过两种方式得到 m 序列。(1) 构建反馈移位寄存器来得到 m 序列mk0( mmmkkmk axaxaxxf .)( 1000上图就是按照上述方法求出本原多项式的系数 10011,也就是用反馈连接的方式构建的反馈移位寄存器。它产生的二进制序列就是 m 序列。该序列以文件名为 dcl4n 存在Workspace(工作空间
10、)中。示波器与频谱仪显示了 m 序列的时域和频域的图形。如下所示频谱仪参数设置。反馈移位寄存器产生 m 序列的时域波形反馈移位寄存器产生 m 序列的频域波形(2)应用 PNSequenceGenerator(伪随机序列产生器)模块产生 m 序列。当 ToWorkspacetcl4n 设置如表 8.3-2 时,tcl4n 是如下的序列:001111010110010001111010110010SpectrumScope(频谱仪)的主要参数 Fft 512 buffer size 1024 buffer overlap 512 sample 0.2 变 为 0.52.Gold 码Gold 码是
11、m 序列的复合码。两个码长相等、采样时间相同的序列优选对(关于 m 序列的序列优选请参阅文献4p75)模 2 加以后合成。它的周期与原 m 序列等长。从前面的试验可以看到,改变初值的设定可以得到发生位移的 m 序列。改变两个 m 序列的初值,将会得到新的 Gold 序列。如果说长为 n 的 m 序列可以得到 n 个地址,则由它们构成的 Gold 序列将得到 n2 个地址。下面介绍产生周期为 63 的一种 Gold 码的程序与方法。 (1)产生本原多项式。程序 8.3-2n=7;x=gfprimfd(n, all)运行结果为110000111011011000011111001110110111
12、100111当中仅有三个是独立的,因为上面列出的六个是两两对称的:第一行与第三行;第二行与第五行;第四行与第六行。应用八进制描述,可以写成 103;155;147,其中 103 和 147构成优选对(2)构建反馈移位寄存器,如图 8.3-6 所示。选取 103、147 作为组成 Gold 码的两个 m 序列。初值的设定是10000与10000 。输出的 Gold 码序列以文件名为 gold63a 存在 Workspace(工作空间)中。 应用反馈移位寄存器产生 Gold 码(3)应用 GoldSequenceGenerator(Gold 码序列产生器)模块产生 Gold 码。图 8.3-7 是
13、应用 GoldSequenceGenerator(Gold 码序列产生器)产生 Gold 码的系统仿真图。图 8.3-8 所示是 Gold 码序列产生器模块的参数设置对话框,表 8-5 是主要参数设置。生成多项式1000011即 103, 1100111即 147 就是本原多项式的系数。初值与反馈移位寄存器的设置完全一样。图 8.3-9 显示了 Gold 序列的时域图,可以看出它是以 63为周期的序列。时窗为 126,刚好显示两个周期。图 8.3-10 显示了 Gold 序列的频域图,它与图 8.3-4的差别仅在于:以 1/63 为间隔的谱线,取代了 1/15 为间隔的谱线。因为 Gold 码
14、的周期为63,图 8.3-4 描述的 m 序列周期为 15。应用反馈移位寄存器产生的 Gold 序列虽然没有安排示波器与频谱仪,由于参数设置是一样的,只要把它们搬过去即可。结果是相同的,可以自己验证。应用 Gold 序列产生器产生 Gold 码Gold 码时域图Gold 码频域图当 ToWorkspaces1 设置为如表 8.3-5 时 s1 是如下的序列:100111000011011111100100110011110011000010000000011110001111101常用伪随机序列的相关性讨论上面给出的 m 序列 dcl4n 和 Gold 序列 gold63a 有如下的特点:(1
15、)它们是长度为 2 n-1 的序列,具有以下特性:在每个周期都存在 2n-1 个 1 和 2n-1 -1 个 0;dcl4n 有 8 个 1,7 个 0;gold63a 有 32 个 1,31 个 0。(2)游程分布:随机序列中长度为 1 的游程数约占总游程数的 1/2;长度为 2 的游程总数约占 1/4;长度为 3 的游程总数约占 1/8;其余依次类推。 (3)具有类似于白噪声特征的自相关函数。对于 m 序列与 Gold 码,我们更为关心的是它的相关性。实验二、伪随机序列仿真(n=7)一、实验目的1、 熟悉 MATLAB 与 Simulink 的运行环境2、 掌握反馈移位寄存器产生 m 序列
16、的原理3、 理解的 m 序列时域频域特性4、 理解 m 序列(或 Gold 码)的相关特性5、 掌握反馈移位寄存器产生 Gold 码的原理6、 理解 Gold 码的时域频域特性二、实验内容及步骤1、 熟悉 MATLAB 与 Simulink 的运行环境2、 利用 MATLAB 编程环境求出 m 序列的本原多项式及系数3、 设计利用 Simulink 建立反馈移位寄存器产生 m 序列(或 Gold 码)的仿真模型。4、 设置仿真参数求出仿真结果三、实验报告要求1、 写出相应的应用程序及运行结果。2、 画出利用 Simulink 建立反馈移位寄存器产生 m 序列(或 Gold 码)的仿真模型图3、 画出 m 序列(或 Gold 码)仿真结果