找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 一种跳频MSK信号检测算法及FPGA 实现

[复制链接]
admin 发表于 2013-3-19 20:42:38 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  引言
     采用MSK 调制的跳频通信具有主瓣能量集中、旁瓣衰落滚降快、频谱利用率高和抗干扰能力强等优点,在军事通信中应用广泛。如美军现役的联合战术信息分发系统采用的通信信号,工作带宽969~1 206 MHz,跳频速率为70000 多跳/ s, 单个频点驻留时间约为13 s,信号持续时间* s, 总共有51个间隔为3 MHz 的信道,码速率为5 MHz。已知在该工作频段内主要还存在单频、窄带调幅和线性调频等信号。为了准确截获并识别目标信号,针对此信号环境设计了一种MSK 信号检测识别方法,并使用FPGA 进行了设计实现。
     1  算法设计
     1.1  宽带跳频信号实时检测算法
     用现代技术来实现宽带数字化接收的一个实用的方法是通过信道化技术,实现信道化通常的方法是采用快速傅里叶变换(FFT)。利用FFT技术比用单个滤波器设计法更容易实现,因为FFT所需要的运算量更少。
     某个由FFT运算输出的频率分量,可以看成输入信号与某个脉冲函数的卷积。因此可以把FFT的每个输出看成滤波器的脉冲响应函数与输入信号的卷积。为了处理一个连续的输入信号。必须在不同时刻对各段数据进行FFT处理。通常,起始点记为n = 0,数据段可以滑动M点,相应的FFT可以写成:
    20121107054030218841806.jpg
       M 的值必须随着输入信号连续变化,这种运算也叫作短时傅里叶变换(STFT)。
     FFT的长度和重叠点数是非常重要的参数,这些参数与最小脉宽和频率分辨率有关,它们决定了接收机的灵敏度。若FFT的长度为N,信号的采样频率为f s,那么经FFT计算后,信号的频率分辨率为:
    20121107054030234471807.jpg
     数据重叠点数决定了时间分辨率和处理的最短脉宽,数据重叠率越高,则时间分辨率越高。
     本设计中使用STFT 的方法实现一个粗测频引导数字接收机,为覆盖整个跳频带宽,采用700 MHz采样率对目标信号进行采样,粗测频引导精度在1 MHz以内,因此FFT长度选择为1 024 点,数据重叠率50%,保证时间分辨率在1 s 之内。
     利用粗测频接收单元的检测结果去引导一个精测单元,可以对目标信号进行更为精确的测量和识别。精测单元采用数字正交下变频的实现方法,数字本振频率随粗测引导结果而设置,变频后的带宽依据目标信号而确定。
     1.2  MSK 信号识别算法
     MSK 信号可以写成:
    20121107054030328221808.jpg
     式中,Tb 为码元周期,θk 是第k 个码元的相位常数,取值为nπ, Pk 为二进制双极性码元,取值为 1,所以MSK 信号相位分段线性变化,每个码元周期内相对前*元载波相位上升或下降π/2
     根据三角函数展开,设θk 起始参考值为0,得:
    20121107054030359471809.jpg
  
     又根据Ik= 1, Qk= 1, 令f L= f c-14Tb, f H=f c+14Tb,MSK 信号经过平方环可得:
   
     可知,MSK 信号经过平方运算后,含有2f L 和2fH两个离散频率分量,反映在FFT幅度谱上,在这2 个频点上存在2 个明显的谱峰,2 个谱峰的距离为1 个码元速率,并且距离2 倍载频处均为码元速率的一半。这些特征是此频段内其他信号不具备的,可以根据这些特征对MSK 进行有效的识别。因此,将经过正交下变频的信号进行平方运算,确定信号出现后对其平方的结果进行FFT处理计算幅度谱,再对谱峰点进行分析即可完成MSK 信号的识别。
     2  算法的FPGA 实现
     2.1  算法实现
     跳频MSK 信号检测识别的实现框图如图1 所示,采用FPGA 实现,包括短时傅里叶变换(STFT) 粗测频引导、数字正交下变频、平方运算和幅度谱分析等主要模块。STFT 粗测频引导在宽带条件下进行实时的信号检测和频率粗测,测量的结果引导数字正交下变频模块,对信号进行变频、滤波和抽取,得到低采样速率的零中频数据,平方运算模块对零中频数据进行平方处理,在确定存在信号后,对平方运算模块的输出进行FFT运算得到信号的幅度谱,通过幅度谱分析模块得到最终的识别结果。
    20121107054030437591811.jpg
  
     2.2  高速STFT 实现
     为了覆盖整个跳频带宽,中频信号的采样率设为700MHz, 而FPGA 无法直接处理这样高速率的数据,因此需要采用多路并行处理,即将中频采样信号分成4 路,每路175 MHz, 这使得在FPGA 中运算成为可能。相应的FFT运算也需要多个运算模块并行处理,这样的代价便是增加了硬件资源消耗。数据接收及FFT处理的实现框图如图2 所示。
    20121107054030484461812.jpg
     要实现50%的数据重叠处理,需要2 个图2 所示的模块,这样粗测频引导模块就需要8 个1 024 点FFT运算单元,在FPGA 中使用FFT的IP 核实现。
     完成FFT处理后需要进行幅度谱计算和谱峰提取,通过对谱峰的能量检测进行是否存在信号的判断,并根据谱峰位置得到粗测频结果,以此引导正交下变频模块。
     2.3  数字正交下变频的实现
     数字正交下变频模块根据前面得到的引导信息,设置合适的数字本振频率值,将信号搬移到零中频,并对信号进行低通滤波和抽取,得到低采样率的零中频数据,以方便后续处理。数字正交下变频采用基于多相抽取滤波器的多路并行结构,实现如图3所示。
    20121107054030531341813.jpg
  
     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 所示。
    20121107054030593831814.jpg
    20121107054030656331815.jpg

20121107054030671961816.jpg
     试验结果表明,该设计能够实现对目标信号的实时截获和准确识别。
     4  结束语
     该文提出了一种FPGA 可实现的跳频MSK 信号实时截获和识别的设计方案,经过试验证明,可以对宽带跳频信号进行实时的截获,并能够对其中的MSK 目标信号完成准确识别,可应用于针对特定目标的通信侦察系统,具有较高的应用价值。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-25 13:47 , Processed in 0.060692 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表