目前,扩频技术因其良好的隐蔽性和抗干扰性,从而在通信和测控领域得到了广泛运用。直接序列扩频是扩频的一种主要方式,它是用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所示。
4040在5V电压下最高输入时钟频率为3.5MHz,在15V电压下可达到12MHz,满足一般情况下的PN码速率要求。由于将PN码码长定为2047,因此当Q1~Q11均为高电平时将计数器清0。图中D触发器的作用是对输出数据起整形作用以去掉数据流中的毛刺。通过让EPROM的高位地址线A12、A13分别接高、低电平,能够使该电路产生32组不同的PN码序列。
图4(a)中的图是运用本文提出的扩频电路设计方案所得到的实验电路输出的PN码波形(包括PN码时钟波形),图4 b 是SIMULINK仿真波形。二者选取了PN序列中的同一段以便对照。
本文所提出的直接序列扩频电路方案有三个特点:①PN码的产生及固化迅速而准确。②电路结构简单,几乎不需要调试。③使用方便,即可根据实际需要同时输出多组PN码序列,也可以从若干PN码序列中选取一组输出。
目前,扩频技术因其良好的隐蔽性和抗干扰性,从而在通信和测控领域得到了广泛运用。直接序列扩频是扩频的一种主要方式,它是用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所示。
4040在5V电压下最高输入时钟频率为3.5MHz,在15V电压下可达到12MHz,满足一般情况下的PN码速率要求。由于将PN码码长定为2047,因此当Q1~Q11均为高电平时将计数器清0。图中D触发器的作用是对输出数据起整形作用以去掉数据流中的毛刺。通过让EPROM的高位地址线A12、A13分别接高、低电平,能够使该电路产生32组不同的PN码序列。
图4(a)中的图是运用本文提出的扩频电路设计方案所得到的实验电路输出的PN码波形(包括PN码时钟波形),图4 b 是SIMULINK仿真波形。二者选取了PN序列中的同一段以便对照。
本文所提出的直接序列扩频电路方案有三个特点:①PN码的产生及固化迅速而准确。②电路结构简单,几乎不需要调试。③使用方便,即可根据实际需要同时输出多组PN码序列,也可以从若干PN码序列中选取一组输出。
举报