1 引 言
跳频(FH)和直扩(DS)系统都具有很强的抗干扰能力,是使用最多的两种扩频技术。跳频系统在抗选择性衰落、抗多径等方面的能力不强,直扩技术正好弥补了这一缺点;直扩系统受"远-近"效应影响较大,而这正是跳频技术的优点。这两种方式都具有自己的独到之处,但也存在各自的不足,将两者有机地结合在一起,可以大大改善系统性能。
Matlab/Simulink属于一种通用的科学计算和系统仿真语言,Matlab简单高效的数学语言结合Simulink的图形化设计使得从数学模型到计算机仿真模型的转换非常容易,免除了高级语言编程的繁琐。
本文使用Simulink中的Communications Blockset和Altera DSP Builder工具箱对FH/DS混合扩频信号源进行了仿真设计,采用同一PN码发生器保证了系统的同步性,并借助Altera公司推出的DSP Builder将核心模块自动转化为VHDL文件,可由QuartusⅡ软件来进一步完成编译、综合以及FPGA芯片的下载调试。其中,DSPBuilder软件的使用大大加速了工程设计从软件仿真到硬件实现的进程。
2 FH/DS混合信号源的原理及组成
2.1混合信号源的设计原理
直扩采用伪随机码进行扩频,跳频是用码序列构成跳频指令来控制频率合成器输出信号的频率。
本设计采用伪码发生器来作为直扩信号源,并使用同一伪码发生器控制直接数字频率合成器(DDS)来产生跳变的频率,作为跳频信号源。这样可以保证混合信号源的同步性,在接收端也有利于实现解扩同步处理。图1是FH/DS混合信号源的示意图。
可见,DDS技术和伪码发生器是混合扩频信号源的关键技术。
2.2 DDS技术原理及组成
DDS是从相位概念出发直接合成所需波形的一种新的频率合成技术,用数字合成技术实现。DDS主要由相位累加器、正弦查询表、D/A转换器和低通滤波器组成,如图2所示。
在参考频率fc的控制下,频率控制字K控制相位累加器得到相应的相位数据,并在正弦查询表中查询相应的幅度信息,将相位信息转化成相应的正弦幅值,经D/A转换器变成模拟信号,再经低通滤波器平滑后得到所需的信号波形。通过改变频率控制字K,可得到不同的输出频率:
市面上现有的高性能芯片虽可完成DDS功能,但在某些性能指标及价格方面并不能很好的满足设计要求。本次设计采用Matlab/Simulink+DSP Builder仿真设计DDS模块,并将模块自动转成VHDL文件,进一步使用QuartusⅡ软件来完成FPGA芯片的设计下载。这样可以获得符合自己要求的高性价比的DDS。
2.3 PN码发生器的原理及构成
本次仿真设计中,PN码采用易于产生、拥有优良自相关特性的m序列。m序列是由移位寄存器加反馈后构成的,其序列生成多项式如下:
对于r级反馈移位寄存器,可产生周期为2r-1的m序列。本设计中取m=5,产生周期为31的m序列。若有需要,伪码发生器也可采用其他码序列,如GOLD码、m序列、R-S卷积码等。
3 FH/DS混合信号源的Simulink仿真
3.1 系统仿真模型
混合扩频信号源系统的仿真模型主要由三部分组成:PN_Generator,Random_Integer及DDS,如图3所示。
信号流程:PN_Generator产生周期为31的m序列,经零阶保持器(Hold)后形成码宽为1的伪码序列作为直扩的信号源;m序列进入Random_Integer,由一列二进制码变成一列十六进制码即随机跳变的整数序列,整数幅值在[1,15]之间,经脉冲(Pulse)采样(Sample)后产生频率控制字进入DDS,在DDS中将相位信息转化成相应的正弦幅值,产生了频率随机跳变(具有15个跳频频率点)的正弦波形,作为跳频的信号源。通过示波器(Scope)可以观察输出波形。
3.2 PN Generator的仿真设计
根据反馈移位寄存器原理,采用Altera DSP Builder工具箱设计的PN_Generator仿真结构如图4所示,该模块采用5级反馈来产生周期为31的m序列。根据需要,可对反馈级数作修改。
3.3 Random_Integer的仿真设计
该模块采用Communications Blockset工具箱设计完成,其仿真结构如图5所示。参数设置为4,即每4位二进制转化成为1位十六进制,输出幅值在[1,15]之间、码持续时间为1 s的随机整数序列。
3.4 DDS的仿真设计
按照DDS的组成原理,在Simulink中采用AlteraDSP Builder工具箱建立的DDS仿真结构如图6所示。
幅值在[1,15]之间、码持续时间为1 s的随机整数序列进入DDS,控制相位累加器得到相应的相位数据,并在正弦查询表(LUT)中查询相应的幅度信息,将相位信息转化成相应的正弦幅值,从而得到频率跳变的正弦波信号。
由于受存储器容量和成本限制,正弦查询表LUT容量有限,采用10位精度,其参数Matlab Array设置为:255*sin([0:pi/(2^10):2*pi]),即DDS模块可获得fc/210的频率分辨率。
DDS各点的仿真波形如图7所示,示波器的采样时间设置为0.01。
3.5 系统仿真结果
系统仿真步进设置为Variable Step,最大仿真步长设置为le-3,仿真时间设置为65 s。图8显示了FH/DS混合信号源的仿真波形,示波器的采样时间设置为0.01。
可以看到,该仿真模型输出了两路信号:一路是码周期为31、最小码宽为1的直扩信号,另一路是具有15个跳频点的随机跳频信号。
上述内容旨在提出一种完全由Simulink仿真实现的混合扩频信号源,而对于信号的指标没有过高要求。如有需要,通过修改仿真模型中零阶保持器的sample time和Random_Integer的参数,直扩码和跳频源的频率可进一步提高,跳频点数也可进一步增加,通过修改PN_Gener-ator的反馈级数,直扩码周期可加大。通过修改参数以满足不同需要使得本设计具有很大的灵活性。
4核心模块的FPGA实现
从前面的分析可以看到,伪码发生和DDS是混合扩频信号源的核心模块,因此采用了Altera DSP Builder工具箱对其进行仿真设计。Altera DSP Builder是DSPBuilder软件在Simulink生成的工具箱,下面对DSP Build-er的设计流程和上述两个模块的FPGA实现加以介绍。
4.1 DSP Builder设计流程
Altera公司推出的DSP Builder是一个系统级(或算法级)设计工具,他架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL级(硬件实现)两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。DSP Builder依赖于MathWorks公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现。可以在Simulink中进行图形化设计和仿真,同时又通过Signal-Compiler把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制综合和编译的tcl脚本。而对后者的处理可以由FPGA/CPLD开发工具QuartusⅡ来完成。
由于用FPGA设计一个DSP模块的复杂性、设计的性能(如面积、速度、可靠性、设计周期等)对于不同的应用目标有不同的要求,涉及的软件工具也不仅仅是Simulink和QuartusⅡ。DSP Builder针对不同情况提供了两套设计流程,即自动流程和手动流程。
自动流程包括以下几个步骤:
(1)Matlab/Simulink建模;
(2)系统仿真;
(3)DSP Builder完成VHDL转换、综合、适配、下载;
(4)嵌入式逻辑分析仪实时测试。
手动流程包括以下几个步骤:
(1)Matlab/Simulink建模;
(2)系统仿真;
(3)DSP Builder完成VHDL转换、综合、适配;
(4)ModelSim对TestBench功能仿真;
(5)QuartusⅡ直接完成适配(进行优化设置);
(6)QuartusⅡ完成时序仿真;
(7)引脚锁定;
(8)下载/配置与嵌入式逻辑分析仪等实时测试;
(9)对配置器件编程,设计完成。
4.2 PN Generator和DDS功能模块的FPGA实现
按照图4和图6所示结构在Simulink中完成仿真模块的搭建,参数设置后进行Simulink系统级仿真。仿真成功后双击Signal Complier Block,出现如图9所示窗口。
对话框中选定Cyclone系列芯片。通过点击1,可把Simulink的模块文件(.mdl)自动转换成硬件描述语言VHDL文件:点击2,可对转换好的VHDL文件进行综合;点击3,QuartusⅡ进行编译适配,生成编程文件。也可以点击"Execute steps 1,2 and 3"让Signal Complier自动完成上述一系列操作,由QuartusⅡ自动进行综合、适配、时序分析,最终得到可供芯片下载使用的.sof文件。
打开QuartusⅡ,选择Cyclone系列的EP1C6Q240C8芯片,进行重新编译、仿真并下载到芯片,最终可在示波器中验证伪码发生和DDS的功能。
5 结语
本次仿真设计充分利用了Matlab/Simulink中DSPBuilder工具箱的图形化界面建模、系统仿真的功能,既避免了编写繁琐的硬件描述程序,又区别于以往完全图形化的仿真设计方法,设计思路十分灵活。其中,DSP Builder软件的使用大大缩短了工程设计从软件仿真到硬件实现的周期。采用同一伪码发生器,能够同步产生直扩所需的伪码序列和跳频所需的跳变频率源,保证了混合扩频信号源的稳定性,对于接收端的同步解扩也十分有利。采用DDS技术,具有分辨率高、频率变化快、频率可控等优点,很好地实现了跳频功能。和专用芯片相比,对多种功能模块进行Simulink仿真,利用DSP Builder快速转换到FPGA硬件设计,并将多种功能集成在同一FPGA芯片上,这种方法使系统具有较高的性价比。