跳频MSK 信号检测识别的实现框图如图1 所示,采用FPGA 实现,包括短时傅里叶变换(STFT) 粗测频引导、数字正交下变频、平方运算和幅度谱分析等主要模块。STFT 粗测频引导在宽带条件下进行实时的信号检测和频率粗测,测量的结果引导数字正交下变频模块,对信号进行变频、滤波和抽取,得到低采样速率的零中频数据,平方运算模块对零中频数据进行平方处理,在确定存在信号后,对平方运算模块的输出进行FFT运算得到信号的幅度谱,通过幅度谱分析模块得到最终的识别结果。
2.2 高速STFT 实现
为了覆盖整个跳频带宽,中频信号的采样率设为700MHz, 而FPGA 无法直接处理这样高速率的数据,因此需要采用多路并行处理,即将中频采样信号分成4 路,每路175 MHz, 这使得在FPGA 中运算成为可能。相应的FFT运算也需要多个运算模块并行处理,这样的代价便是增加了硬件资源消耗。数据接收及FFT处理的实现框图如图2 所示。
要实现50%的数据重叠处理,需要2 个图2 所示的模块,这样粗测频引导模块就需要8 个1 024 点FFT运算单元,在FPGA 中使用FFT的IP 核实现。
完成FFT处理后需要进行幅度谱计算和谱峰提取,通过对谱峰的能量检测进行是否存在信号的判断,并根据谱峰位置得到粗测频结果,以此引导正交下变频模块。
2.3 数字正交下变频的实现
数字正交下变频模块根据前面得到的引导信息,设置合适的数字本振频率值,将信号搬移到零中频,并对信号进行低通滤波和抽取,得到低采样率的零中频数据,以方便后续处理。数字正交下变频采用基于多相抽取滤波器的多路并行结构,实现如图3所示。
2.4 信号识别的实现
信号识别的主要模块是平方运算和信号的幅度谱分析。为了体现MSK 信号的特征,对经过正交下变频得到的数据进行平方运算。如果直接对数据进行常规的平方处理,结果会产生零频分量,对后续处理造成不利影响。为了消除这种影响,需要将正交的复数据进行坐标变换,转变成幅度和相位的表示形式。这样再进行平方运算时,保持幅度值不变,相位值变成原来的2 倍并经过相位解卷绕处理,最后再经过坐标反变换,得到经过平方运算的复数据。
坐标变换可采用计算器(CORDIC) 运算IP 核实现,有利于节省硬件资源,提高运算效率。
幅度谱分析模块通过粗测频引导确定信号到来,对经过平方运算的零中频数据进行FFT处理,得到信号的幅度谱。进行谱分析时按照如下步骤:
① 提取过检测门限的谱峰点;
② 确定最大谱峰的位置;
③ 确定距离最大谱峰位置左右5 MHz 处是否存在与最大谱峰值相差不大的谱峰;
④ 检测2 个谱峰连线的中点位置是否是2 倍的有效信道载频频点。
经过以上步骤,完成了MSK 信号的识别。
3 试验结果
为了验证算法实现是否能正确截获并识别MSK 目标信号,使用泰克公司的任意信号发生器AWG7122B 模拟产生了目标信号环境,并使用硬件平台进行了接收测试,为了便于观察计算结果,使用Xilinx 公司的在线逻辑分析仪软件ChipScope 截取了FPGA 内部的运算数据和结果。
使用任意信号发生共设置了3 个信号,
信号1参数如下:
信号形式: 脉冲;
信号时长: * s;
信号间隔: 13 s;
脉内调制:MSK;
码元速率: 5 MHz;
信号2 的参数如下:
信号形式: 单频脉冲;
信号时长: 5 s;
信号间隔: 50 s;
信号3 的参数如下:
信号形式: 脉冲;
信号时长: 8 s;
信号间隔: 300 s;
脉内调制: 线性调频;
带宽: 1 MHz。
其中MSK 信号设置为脉冲间频率跳变,跳频点3 个,间隔30 MHz, 单频脉冲信号跳频点6 个,间隔10MHz, 线性调频信号载频固定。
在FPGA 中经过相应处理得到3 种信号的谱分析结果,应用ChipScope 软件可在线获得FPGA 内部数据,将数据导入MATLAB 处理后得到3 种信号的幅度谱图,如图4、图5 和图6 所示。
试验结果表明,该设计能够实现对目标信号的实时截获和准确识别。 |