基于FPGA的高速宽带跳频发射机的中频设计
跳频通信是在恶劣的电磁环境中保证正常通信的重要手段。提高跳频通信系统的跳频速率和跳频带宽是提高跳频通信系统抗干扰能力的主要手段[1]。
传统跳频发射机通过模拟本振的跳变或切换实现跳频功能。跳频速率受模拟本振频率切换速率的影响,且外围电路较复杂、灵活性较差。本文根据软件无线电的设计思想,利用FPGA的并行处理能力、高速IO接口和高速DA转换器,将基带调制、数字上变频及跳频控制用数字化的形式在FPGA内部实现,只需改变FPGA内部数控振荡器的输出频率就可以实现高速宽带跳频。避免了模拟本振的高速跳变,提高了跳频速率,简化了系统硬件结构,同时增强了系统的灵活性。
1 方案设计
本方案采用EP3C16F484C6作为跳频发射机的中频信号处理器,其处理能力最高可达每秒几十吉次乘累加运算,并且具有840Mb/s的高速LVDS接口。DA转换器采用AD9736,具有14bit精度、1.2GS/s转换速率。该高速宽带跳频发射机具有高度灵活性,其中跳频图案、跳频数、跳时以及发送消息等参数由DSP实时生成,并对FPGA进行配置。系统的跳频实现部分在FPGA内部完成。整体结构如图1所示。
2 FPGA设计与实现
2.1存储器设计
FPGA内部存储器用于与DSP进行数据交互。存储器分为:发送消息存储区,发送频率控制字存储区,跳时寄存器,跳频数寄存器。地址分配如表1所示。
{$page$}
2.2MSK调制
软件无线电调制技术要求能够在通用的数字信号处理平台上实现多种不同体制的调制方法。正交调制是软件无线电平台中一种通用的调制方法。正交调制一般可以用式(1)表示:
其中XBI和XBQ为基带信号的同相分量和正交分量,它们是由调制方式决定的;棕c为载波的角频率。根据上式(1),可以得出正交调制的实现结构如图2所示。
基带调制根据不同的调制方式选择不同的方法。成形滤波用来抑制频谱的旁瓣,以达到特定的频谱带宽要求。插值用来进行采样率变换,使得数据速率与NCO输出数据速率相同,然后进行载波调制。最后取IQ两路复信号的实部输出即得中频已调信号。
本系统基带调制采用最小频移键控,即MSK调制,输入码元速率5Mb/s。由于FPGA处理能力较强,基带处理可以选择较高的数据速率,从而降低数字上变频的复杂度,但同时会增加基带成形滤波器设计的复杂度。折中考虑,本系统选择基带数据速率为25MB/s。
成形滤波器采用最优化设计中的等波纹法设计,设计指标如下:采样率25MHz,通带截止频率3.75MHz,阻带截止频率5MHz。通带纹波0.2dB,阻带衰减80dB。利用FDATool工具进行滤波器的设计,系数量化为定点16bit,阻带衰减可以达到75dB以上。
2.3数字上变频
2.3.1内插
完成基带调制和成形滤波后,FPGA内部数据速率为25MS/s,需要进行数字上变频,使数据速率达到800MS/s,然后通过LVDS接口连接AD9736。由25MS/s到800MS/s需要进行32倍内插,如果用一次内插实现,需要插值滤波器具有很高的阶数,其计算量和存储空间都比较大。在这种情况下,一般采用多级内插,多级实现的主要优点是[2]:
(1)大大减少计算量和存储量。
(2)简化滤波器的设计。
(3)降低实现滤波器时的有限字长的影响。
多级内插的缺点是增加控制程序的复杂程度,所以并不是分级越多越好,在设计时应折中考虑。这里将插值分为4级,分别为2倍、2倍、2倍、4倍。插值中抗镜像滤波器的设计,需考虑性能和资源占用的折中,利用MATLAB仿真确定各级滤波器的阶数和系数位宽。
经过三级2倍内插后,FPGA内部数据速率达到200MS/s,基本已经达到了CycloneIII内部处理能力的极限,最后一级需要利用多相结构,完成串并转换,输入200MS/s数据速率,4倍内插后,输出四路,各路均为200MS/s数据速率。下面以4倍内插、8阶低通滤波器来说明多相滤波器的原理。
由于在内插的过程中插入的0值与系数相乘是没有意义的,所以对于4倍内插、8阶低通滤波器来说每次滤波只需要2次乘法。这样就将乘法的运算量降低为原来的1/4。滤波器每次输入一个新的数据,就用4个2阶子滤波器分别计算一次,然后以4倍的输入速率顺序输出。所以,可以用4个子滤波器组成的滤波器组实现多相插值滤波。
2.3.2并行数控振荡器
完成插值后,数据速率达到并行4路,每路各200MS/s。然后进行载波调制。最后,利用LVDS模块进行并串转换,实现800MS/sMSK调制输出。由于FPGA内部处理能力的限制,用于载波调制的NCO需要设计为并行结构。载波调制的实现框图如图3所示。
为了保证NCO输出波形具有较高的杂散抑制比,同时占用较少资源,系统NCO设计采用插值法。插值法是指利用相位累加器的高位进行查表,用相位累加器的低位进行插值运算,这样使用相位累加器的有效位数较多,保证相位舍位噪声较小,同时也降低了存储器的大小。最简单且有效的插值法为一次线性插值,计算公式如下[3]:
本设计中相位累加器的有效位数26bit。如果采用查表法,则需要226×14bit的存储器,插值法占用存储器大小29×14bit,大大节约了存储器资源。
{$page$}
本设计要求NCO输出数据速率为800MS/s,采用4路并行设计,每一路输出数据速率均为200MS/s,需要4个NCO模块。每个子NCO模块的频率控制字是对于整体800MS/s数据速率NCO频率控制字的4倍,且每个子NCO的初始相位相差一个整体NCO的频率控制字。例如,要产生200MHz的正弦和余弦信号。计算得整体NCO的频率控制字为:
4路子NCO的频率控制字均为:f=4×F=(100000000)16。4路子NCO初始相位相差(40000000)16。
2.3.3并串转换
并串转换通常应用在FPGA内部单路串行处理速度不能满足要求的情况下,通过使用多路并行低速模块实现高速处理,属于资源与速度互换的一种应用。本设计在FPGA内部使用并行4路,每路200MS/s,实现串行800MS/s的处理能力。在输出时利用ALTERA提供的LVDS模块实现并串转换。
2.4测试与验证
完成各个模块设计和仿真验证后,在顶层文件中调用各个子模块,实现一个完整的MSK宽带跳频发射机。在Modelsim中进行功能仿真的波形如图5所示。
图5中从上到下的信号分别为:码元输入;差分编码输出;串并转换后I路输出;串并转换后Q路输出;基带调制后I路输出;I路内插到4路并行200MS/s数据速率时,其中1路输出;4路并行NCO,其中1路输出;MSK调制输出。
编译工程,下载到跳频发射板,使用HP8563e频谱仪观察输出信号频谱,如图6和图7所示。
图6中,中心频率150MHz,成形后的MSK单频点带宽为10MHz左右,带外衰减大于60dB。
图7中跳频频率范围为95MHz~255MHz。共51个频点,相邻频点中心频率间隔为3MHz。由于FPGA输出数据速率为800MS/s,所以工程上可实现320MHz带宽。
本设计给出一种通用软件无线电跳频发射机的硬件平台以及基带和中频信号处理算法。对于研究FPGA在软件无线电跳频发射系统中的应用具有现实意义。
参考文献
[1]梅文华,王淑波,邱永红,等.跳频通信[M].北京:国防工业出版社,2005.
[2]陶然,张惠云,王越.多抽样率数字信号处理理论及其应用[M].北京:清华大学出版社,2007.
[3]王呈贵,徐以涛.高分辨率DDS的FPGA设计[J].解放军理工大学学报,2003,4(4).
[4][美]RichardG.Lyons.数字信号处理(第二版)[M].朱光明,程建远,刘宝童,等译.北京:机械工业出版社,2006.
[5]ImplementingMultipliersinFPGADevices,ApplicationNote306,AlteraCorporation,2004(7)