运用MATLAB及EPROM简化扩频电路设计
发布时间:2008/5/28 0:00:00 访问次数:533
摘 要: 提出一种直接序列扩频电路的设计方案,即利用matlab软件的仿真功能来产生若干伪噪声序列,然后以数据文件的形式将其存储在eprom中并在地址发生器的作用下输出伪噪声序列。还提供了运用该方案设计的具体扩频电路,最后给出了仿真信号波形和实验信号波形。 关键词: 直接序列扩频 matlab 仿真
|
目前,扩频技术因其良好的隐蔽性和抗干扰性,从而在通信和测控领域得到了广泛运用。直接序列扩频是扩频的一种主要方式,它是用pn码和二元信息数字序列模2相加后成复合码去调制载波1。在一些使用长序列pn码扩频的场合,如统一扩频测控及图象传输系统中,pn码即用来对上行遥控指令进行扩频,又用来作为上行测距码2。为了实现无模糊测距所使用的pn 码的码长较长,若用寄存器及其反馈支路来构成pn码发生器,则所需寄存器级数较多,且电路做好后,所产生的pn码就固定了。这一点对于某些保密性要求很高的通信或测控系统来说很不方便,因为在这种系统中往往需要多组pn码序列备用,以便随时更换扩频码增强保密性。解决这一问题的简单方法就是将所有的pn码存储在eprom中,以供随时调用。但由于pn码的码长较长或个数较多,将这些数据烧录进eprom中也比较麻烦。如果利用matlab软件来产生所需的pn码序列,并通过简单的矩阵变化,形成一个.hex文件,将其下载到eprom中,就使得这一过程大大简化。
|
1 扩频电路框图及波形 图1(a)为pn码直接序列扩频电路框图。首先从数据流中提取位同步时钟,经分频后送往计数器作为记数脉冲,计数器就是eprom的地址产生器。由eprom输出的pn码对数据进行扩频。图1(a)中各点波形如图1(b)所示。 |
|
图1(b)中波形a为输入数据,波形b为从数据中提取的位同步时钟,经分频后得到如波形c所示的pn码chip时钟(计数器的记数脉冲),波形d为从eprom中读出的pn码序列。从图1中可以看出,用eprom存储pn码序列,以计数器作为地址码产生器所构成的直接序列扩频电路,其结构非常简单。
|
2 用matlab产生pn码及数据文件 若pn序列码长较长,直接用手工录入eprom中容易出错,且要花费较多的时间。如果用仿真软件matlab中的simulink模块来构成pn码发生器(也可用编程的方法),并将其产生的pn序列烧录进eprom中,就可以大大简化这一过程。simulink是实现动态系统建模、仿真的一个集成环境。它的存在使matlab的功能得到进一步扩展,即实现了可视化建模和多工作环境间文件互用和数据交换。 下面以r =11的pn码发生器为例加以说明。 图2是一个用simulink模块组成的m序列发生器,对应的本原多项式为: f x =1+x2+x1 |
|
pn码的初始状态可根据需要进行设置,即将移位寄存器设置为相应的初始状态(1或0)。若输出到matlab工作空间的pn码应是完整的一周期序列,且将移位寄存器的取样时间定为1单位时间,那么仿真时间就应设为n-1个单位时间(n为码长),依上例则应设为2046个单位时间进行仿真。图中"to workspace"模块的作用是将仿真后得到的pn序列以列向量的形式输出到matlab工作空间。 pn= 10101010101110...′2047 只要将该pn序列存储到eprom中连续2r-1(r=11)个单元的同一bit位,即可在计数器(地址产生器)的作用下从该bit位输出这个pn码序列。那么一片eprom就可以同时输出8个pn码,用n片eprom就可以同时输出nx8个pn码。在实际中可选择其一用来对信息数字序列进行扩频。怎样将pn码序列组下载到一片eprom中呢?如前所述,先用simulink模块分别组成8个(或者更多,视eprom的存储长度或数量而定)pn码发生器,仿真后将各自的pn码序列输出到matlab工作空间,得到8组列向量。
通过矩阵变换将这8个列向量合成一个新矩阵,矩阵的列就由这8个列向量组成。 pn=pn1,pn2,pn3,pn4,pn5,pn6,pn7,pn8 pn= |
|
用reshape指令将矩阵变维,得到一个(4094x4)的矩阵,再将每一个行向量用一个十六进制数表示,最后用fprintf指令形成一个 .hex文件3直接将该文件下载到eprom中就可以由eprom同时提供8个pn码。
|
3 实际电路和波形 在实际中采用了hc4040(12bit) 计数器和cd6740(eprom)组成了一个pn码发生器。发生器电路图如图3所示。
摘 要: 提出一种直接序列扩频电路的设计方案,即利用matlab软件的仿真功能来产生若干伪噪声序列,然后以数据文件的形式将其存储在eprom中并在地址发生器的作用下输出伪噪声序列。还提供了运用该方案设计的具体扩频电路,最后给出了仿真信号波形和实验信号波形。 关键词: 直接序列扩频 matlab 仿真
|
目前,扩频技术因其良好的隐蔽性和抗干扰性,从而在通信和测控领域得到了广泛运用。直接序列扩频是扩频的一种主要方式,它是用pn码和二元信息数字序列模2相加后成复合码去调制载波1。在一些使用长序列pn码扩频的场合,如统一扩频测控及图象传输系统中,pn码即用来对上行遥控指令进行扩频,又用来作为上行测距码2。为了实现无模糊测距所使用的pn 码的码长较长,若用寄存器及其反馈支路来构成pn码发生器,则所需寄存器级数较多,且电路做好后,所产生的pn码就固定了。这一点对于某些保密性要求很高的通信或测控系统来说很不方便,因为在这种系统中往往需要多组pn码序列备用,以便随时更换扩频码增强保密性。解决这一问题的简单方法就是将所有的pn码存储在eprom中,以供随时调用。但由于pn码的码长较长或个数较多,将这些数据烧录进eprom中也比较麻烦。如果利用matlab软件来产生所需的pn码序列,并通过简单的矩阵变化,形成一个.hex文件,将其下载到eprom中,就使得这一过程大大简化。
|
1 扩频电路框图及波形 图1(a)为pn码直接序列扩频电路框图。首先从数据流中提取位同步时钟,经分频后送往计数器作为记数脉冲,计数器就是eprom的地址产生器。由eprom输出的pn码对数据进行扩频。图1(a)中各点波形如图1(b)所示。 |
|
图1(b)中波形a为输入数据,波形b为从数据中提取的位同步时钟,经分频后得到如波形c所示的pn码chip时钟(计数器的记数脉冲),波形d为从eprom中读出的pn码序列。从图1中可以看出,用eprom存储pn码序列,以计数器作为地址码产生器所构成的直接序列扩频电路,其结构非常简单。
|
2 用matlab产生pn码及数据文件 若pn序列码长较长,直接用手工录入eprom中容易出错,且要花费较多的时间。如果用仿真软件matlab中的simulink模块来构成pn码发生器(也可用编程的方法),并将其产生的pn序列烧录进eprom中,就可以大大简化这一过程。simulink是实现动态系统建模、仿真的一个集成环境。它的存在使matlab的功能得到进一步扩展,即实现了可视化建模和多工作环境间文件互用和数据交换。 下面以r =11的pn码发生器为例加以说明。 图2是一个用simulink模块组成的m序列发生器,对应的本原多项式为: f x =1+x2+x1 |
|
pn码的初始状态可根据需要进行设置,即将移位寄存器设置为相应的初始状态(1或0)。若输出到matlab工作空间的pn码应是完整的一周期序列,且将移位寄存器的取样时间定为1单位时间,那么仿真时间就应设为n-1个单位时间(n为码长),依上例则应设为2046个单位时间进行仿真。图中"to workspace"模块的作用是将仿真后得到的pn序列以列向量的形式输出到matlab工作空间。 pn= 10101010101110...′2047 只要将该pn序列存储到eprom中连续2r-1(r=11)个单元的同一bit位,即可在计数器(地址产生器)的作用下从该bit位输出这个pn码序列。那么一片eprom就可以同时输出8个pn码,用n片eprom就可以同时输出nx8个pn码。在实际中可选择其一用来对信息数字序列进行扩频。怎样将pn码序列组下载到一片eprom中呢?如前所述,先用simulink模块分别组成8个(或者更多,视eprom的存储长度或数量而定)pn码发生器,仿真后将各自的pn码序列输出到matlab工作空间,得到8组列向量。
通过矩阵变换将这8个列向量合成一个新矩阵,矩阵的列就由这8个列向量组成。 pn=pn1,pn2,pn3,pn4,pn5,pn6,pn7,pn8 pn= |
|
用reshape指令将矩阵变维,得到一个(4094x4)的矩阵,再将每一个行向量用一个十六进制数表示,最后用fprintf指令形成一个 .hex文件3直接将该文件下载到eprom中就可以由eprom同时提供8个pn码。
|
3 实际电路和波形 在实际中采用了hc4040(12bit) 计数器和cd6740(eprom)组成了一个pn码发生器。发生器电路图如图3所示。
热门点击
推荐技术资料
| |