跳频信号——多跳频信号的参数估计
本文章主要介绍多跳频信号参数估计的相关思想与相关算法,并给出了matlab实现代码。
比起单跳频信号参数估计,多跳频参数估计比较复杂,主要在于需要先对混合电台时频矩阵进行电台分选,即把属于各个电台的跳频图案分开来,然后再按照单跳频信号参数估计的方法估计每个电台的参数即可。
注:本文章参考代码
1、分选特征
这里,我们主要以不同电台的跳频图案的跳周期和带宽为特征,利用这两个特征进行电台分选。
2、分选方法
具体的分选方法按照下面几个步骤。
(1)在每个频率点下、沿着时间轴计算一行跳频图案的起始频率(start_f)、结束频率(end_f)。(注:由于同一频率点可能有不同电台,而不同电台的带宽不一致,因此这里计算的起始频率和结束频率并不一定是该行跳频图案集合中所有跳频图案的起始频率、结束频率),如图1所示。
(2)在每一行跳频图案集,在中心频率点( =(起始频率+结束频率)/2)沿着时间轴前进,由0到1记录为当前跳频图案的起始时间点,由1到0记录为当前跳频图案的结束时间点,由此便可得到所有跳频图案的跳周期、中心时刻。
(3)在每一行跳频图案集中,在每一个跳频图案的起始时间到结束时间沿着频率轴前进,记录带宽最大值,即可得到当前跳频图案的带宽。如图2所示。
(4)由此,我们可以得到观测时间内所有跳的跳周期、带宽、起始频率、结束频率、起始时间、结束时间。再根据跳周期和带宽这两个特征对所有跳频图案进行分选,从而选出哪些跳频图案分别属于哪个电台。
(5)确定kmeans 分选方法中的k 值。到此,我们已经计算得到观测时间内所有跳频图案的跳周期、带宽这两个特征。将k 设定为一定的范围(如k=1,2,…,15 ),在不同的k 下的kmeans 算法的sumd (sumd 为簇内的点到质心距离的总和),sumd 数值趋于稳定的第一个k 可以认为是最佳分类的k 值,记k_opt 。如图3所示。
这里有一处细节,根据sumd 的数组,如何确定好最佳的k ,我的做法如图4所示,需要根据经验来确定经验系数。
(6)确定好所有跳频图案分别属于哪个电台后,我们根据之前已经计算的各跳频图案的起始频率、结束频率、起始时间、结束时间,便可以得到各电台的所有跳频图案。
后续运用单跳频信号参数估计的方法,去估计各电台跳频图案的跳周期、各跳中心时刻、各跳带宽、各跳中心频率即可。
3、仿真总体流程
(1)设置前置参数,如采样率、频率点个数(多跳频仿真还需设定各电台使用的频率点个数)、频率跳变区间、信噪比、STFT个数、观测时间、BPSK符号采样点个数(多跳频仿真不同电台的BPSK符号采样点个数不一致)
(2)生成BPSK脉冲成形信号,并调制(即乘以一个正弦信号)。
(3)取出I路(或Q路)信号数据,加Hamming窗,作STFT,进而得到时频矩阵,再进行二值化。
(4)对二值化处理后的时频矩阵进行Link处理。
(5)电台分选。
(6)估计各电台的时间参数、频率参数。
4、仿真效果展示
(1)参数设置
跳频点个数:22
跳频范围:0.2 MHz – 4.8 MHz
采样率:10 MHz
时频矩阵最大频率(为采样率的二分之一):5 MHz
信噪比:30 dB
跳周期:1 ms (即1秒内有1000跳)
观测时间(未考虑跳时):20 ms
BPSK符号采样点个数:120
做一次STFT采样点个数:1024
注1:共三个电台,不同电台使用的频率集合有交集
注2:任意的不同跳频图案没有接壤
(2)效果图
混合电台信号时频矩阵二值化结果,如图5所示。
混合电台时频矩阵最终处理结果,如图6所示。
混合电台分选结果,如图7所示。
电台1至电台3的参数估计结果,如图8、9、10所示。
5、需要注意的地方
在多电台分选时,若考虑跳周期、带宽两个特征,如果跳时很短(小于观测时间内最短跳周期的三分之一),则在分选出的三个电台中,均可以保留各自电台的起始第一跳。
如果跳时不短(大于观测时间内最短跳周期的三分之一),则在分选出的三个电台中,会出现一个电台没有起始跳、另一个电台有两个起始跳的情况。这是因为kmeans算法会将跳周期相近的跳(即使带宽不一致)分为同一类,导致这种情况下跳时估计出错(但是跳周期估计不会出错,因为可以先把前几跳的跳频图案去掉、再进行跳周期的估计),其效果图如图11所示。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)