陳君勝,楊小勇,徐怡杭
(1.甘肅省無線電監(jiān)測站,甘肅 蘭州 730000;2.國家無線電頻譜管理研究所有限公司,陜西 西安 710061;3.西北工業(yè)大學 電子信息學院,陜西 西安 710072 )
隨著無人機的快速發(fā)展與普及[1-3],非法無人機入侵問題越來越受到各國的關注,如何更快、更精確地實現(xiàn)對無人機的識別是無人機反制的重要前提[4-6]。
現(xiàn)有的通過無線電頻譜監(jiān)測識別無人機的方式,理論上可以實現(xiàn)對非法無人機較大范圍地連續(xù)監(jiān)測,且發(fā)現(xiàn)目標較早,便于及時采取反制措施[7-8]。目前主流的無人機遙控信號基本都采用了跳頻擴頻技術(shù),遙控信號常用的2.4 GHz等頻段已十分擁堵,又因為其頻率跳變的高速性、變頻方式的多樣性和所在頻譜環(huán)境的復雜性[9-11],使得現(xiàn)有的無線電頻譜監(jiān)測方法往往難以實時、準確地檢測到無人機遙控信號,非法無人機監(jiān)測難以取得令人滿意的效果[12]。因此,本文算法基于遙控信號頻譜特征對非法無人機進行識別,通過背景頻譜模板學習(WIFI與圖傳信號檢測)、無人機跳頻與定頻控制信號檢測、機型判斷及機型特征參數(shù)學習3個模塊來確保對非法無人機識別的準確性、實時性與抗干擾性。
基于遙控信號頻譜特征的非法無人機識別算法的基本思想分為以下3個過程實現(xiàn)對非法無人機的精確識別:
① 對背景頻譜進行學習。首先通過對預設中心頻率前后共計100 MHz帶寬進行N次頻譜快拍,得到頻譜矩陣Data(N×K)(其中N為快拍次數(shù),K為一次頻譜快拍中包含的頻點數(shù));然后通過求二次平均、最小二乘線性擬合得到信號檢測閾值TH;最后將頻譜矩陣Data(N×K)中檢測到的寬帶WiFi與圖傳信號映射到二值化背景頻譜模板ModelArray-Final(1×100)(存在WiFi或圖傳信號的頻點置1,其余置0),用于屏蔽寬帶對無人機遙控信號檢測的干擾。
② 對無人機跳頻與定頻遙控信號檢測。首先利用背景頻譜學習得到的信號檢測閾值TH和二值化背景頻譜模板ModelArrayFinal(1×100),然后通過尋找有效峰值Pk及其帶寬判斷,將頻譜矩陣Data(N×K)中的所有的有效峰值一一映射到二值化跳頻檢測矩陣DetectArray(N×100)中(存在有效峰值Pk的頻點置1,其余置0)。然后根據(jù)二值化跳頻檢測矩陣DetectArray(N×100)計算跳頻次數(shù)Hoptimes,并定義N行中存在有效峰值的行數(shù)為t_value,最后將t_value,Hoptimes與最低門限值t_valuemin,Hoptimesmin比較,從而識別出當前是否存在無人機。
③ 機型判斷及機型特征參數(shù)學習(UAVparameters)。如果檢測到該時段存在無人機跳頻遙控信號,則利用DetectArray(N×100)得到機型判斷矩陣JudgeArray(1×100),并由JudgeArray(1×100)計算出無人機機型特征參數(shù)(UAVparameters),最后通過比對已有的無人機機型特征參數(shù),即可判斷出無人機機型。其中,機型特征參數(shù)學習是通過學習出已知型號的無人機的機型參數(shù),并將其錄入無人機機型特征數(shù)據(jù)庫,用于比對未知無人機的機型特征參數(shù)。每讀入一個頻譜矩陣Data(N×K)就會給出一次無人機識別結(jié)果。
步驟1:求信號檢測閾值TH。首先求頻譜矩陣Data(N×K)中每一行頻譜數(shù)據(jù)功率的初次平均值,其表達式為:
(1)
(2)
接著求第2次功率的平均值:
(3)
(4)
式中,ΔTh為常參數(shù)。
(5)
式中,c0,c1為待求參數(shù),可構(gòu)成矛盾方程組[14]為:
A·x=b,
(6)
(7)
將式(6)兩邊同乘以AT可得其正規(guī)方程組[16]為:
ATA·x=ATb。
(8)
步驟2:構(gòu)造二值化頻譜模板矩陣Model-Array(1×100),初始化為全0。首先對頻譜矩陣Data(N×K)的每一行的每MHz頻點值進行檢索,如果某MHz中在信號檢測閾值TH以上的頻點數(shù)大于0.3F(F為每MHz中包含的頻點數(shù)),則將對應的ModelArray(1×100)頻點處值加1,對頻譜矩陣Data(N×K)進行N行逐點檢索完成后,再對二值化頻譜模板矩陣ModelArray(1×100)進行逐點檢索,若某頻點值大于Model_min,則將其值置為1,反之則置為0,其中Model_min為常參數(shù)。
步驟3:建立WiFi與圖傳信號檢測方法,構(gòu)造最終的二值化模板矩陣ModelArrayFinal(1×100),初始化為全0。首先對二值化頻譜模板Model-Array(1×100)逐點檢索,每當檢測到該頻點值為1,就判斷從該位置開始的10 MHz所包含0的個數(shù),若0的個數(shù)不大于1個,則認為該位置存在帶寬超過10 MHz的圖傳或WiFi信號,反之則認為不存在。若檢測到帶寬超過10 MHz的圖傳或WiFi信號,將ModelArrayFinal(1×100)矩陣對應的10 MHz頻點置1。至此得到最終的二值化模板矩陣Model-ArrayFinal(1×100),完成背景頻譜模板學習。
前面通過分析計算得到了最終的二值化模板矩陣ModelArrayFinal(1×100),完成了對背景頻譜模板的學習,實現(xiàn)了對WiFi與圖傳信號檢測。下面在此基礎上要對無人機遙控信號進行檢測,從而實現(xiàn)對無人機有無的識別。同樣分為以下3個步驟:
步驟1 需要尋找有效峰值Pk以及計算其帶寬。基本思路是利用背景頻譜學習模板和信號檢測閾值TH,在頻譜矩陣Data(N×K)中的每一行尋找有效峰值Pk,并計算其帶寬Width。
有效峰值Pk定義:記某一幀頻譜圖的第n個頻點的功率值為Datan,n∈(2F,S-2F),其中F為每MHz帶寬包含的頻譜點數(shù)。若Datan同時滿足式(9)、式(10)和式(11),則稱該Datan是有效峰值,記Datan為Pk,同時記其對應的位置n為lpeak。
TH≤Datan-2≤Datan-1≤Datan≥Datan+1≥
Datan+2≥TH,
(9)
Datan= max(Datan-2F,Datan-2F+1,...,
Datan+2F-1,Datan+2F),
(10)
ModelArrayFinal「100n/K?=0。
(11)
式(9)是判斷Datan是否大于閾值TH且大于其前后兩點的功率值;式(10)是判斷Datan是否為該頻點前后4F個頻點的功率的最大值;式(11)是判斷二值化模板矩陣ModelArrayFinal(1×100)對應的頻點是否被屏蔽(若為0,則未被屏蔽,反之則已屏蔽)。
由式(12)可得到此幀頻譜圖中的每個有效峰值Pk對應的3 dB帶寬Width:
(12)
式中,lleft,lright分別指功率值距0.5Pk最近的2個頻點的橫坐標。
步驟2 由得到的有效峰值Pk及其對應的3 dB帶寬Width,構(gòu)造二值化跳頻檢測矩陣Detect-Array(t_value×100)及信號帶寬判斷矩陣Width_3dB(1×3)。當頻譜矩陣Data(N×K)中某行頻譜數(shù)據(jù)包含有效峰值Pk時,則認為該行頻譜數(shù)據(jù)為有效頻譜數(shù)據(jù),記頻譜矩陣Data(N×K)中有t_value行有效頻譜數(shù)據(jù),并將t_value行有效頻譜數(shù)據(jù)映射為二值化跳頻檢測矩陣DetectArray(t_value×100)矩陣,其映射關系如下:
若某行頻譜數(shù)據(jù)中某個有效峰值Pk的3 dB帶寬Width∈[0.3,1.6),則對跳頻信號帶寬判斷矩陣的Width_3 dB(1)加1,并將二值化跳頻檢測矩陣DetectArray(t_value×100)對應頻點置1;
若某行頻譜數(shù)據(jù)中某個有效峰值Pk的3 dB帶寬Width∈[1.6,2.7),則對跳頻信號帶寬判斷矩陣的Width_3 dB(2)加1,并將二值化跳頻檢測矩陣DetectArray(t_value×100)對應頻點置1;
若某行頻譜數(shù)據(jù)中某個有效峰值Pk的3 dB帶寬Width∈[2.7,3.7),則對跳頻信號帶寬判斷矩陣的Width_3 dB(3)加1,并將二值化跳頻檢測矩陣DetectArray(t_value×100)對應頻點置1;
特別地,若某行頻譜數(shù)據(jù)中的某有效峰值Pk的帶寬Width∈[0,0.3)∪[3.7,+∞),則忽略該有效峰值Pk,若某幀頻譜圖中所有的有效峰值均被忽略,則將有效頻譜數(shù)據(jù)行數(shù)t_value減1。
將信號帶寬判斷矩陣Width_3dB(1×3)最大值對應的下標記為跳頻信號帶寬(Width3dB)。
步驟3 提取跳頻次數(shù)Hoptimes特征(初始化為零),并判斷是否存在無人機遙控信號。由式(13)可提取二值化跳頻檢測矩陣Detect-Array(t_valuex100)中包含的跳頻次數(shù)Hoptimes:
(13)
提取跳頻次數(shù)Hoptimes后,建立無人機遙控信號是否存在的判斷標準如下:
① 若t_value≥t_valuemin且Hoptimes≥Hoptimesmin,則判斷檢測到無人機跳頻遙控信號,繼續(xù)第②步和第③步;
② 若t_value≥t_valuemin但Hoptimes≤Hoptimesmin,則判斷檢測到定頻遙控信號,顯示結(jié)果,結(jié)束本次識別;
③ 若t_value≤t_valuemin,則判斷未檢測到無人機遙控信號,結(jié)束本次識別。
其中,t_valuemin和Hoptimesmin為常參數(shù)。
為了識別目標無人機的機型,需要構(gòu)造無人機機型特征矩陣NewArray(1x100),并對其進行無人機機型特征參數(shù)(UAVParameters)提取與學習,進而準確判斷出無人機的機型。無人機機型特征參數(shù)(UAVParameters)包括:中心頻率[17](Centerfrequency)、跳頻信號帶寬[18](Width3dB)、遍歷點數(shù)(Ergodic)、跳頻范圍最大半徑(Radius)。其中,跳頻信號帶寬(Width3dB)為信號帶寬判斷矩陣Width_3dB(1×3)最大值對應的下標。
首先需要計算出頻譜模板矩陣Model-Array(1×100)和閾值TH,具體計算過程在前文已作討論。若頻譜模板矩陣ModelArray(1×100)值不全為0,則顯示頻譜環(huán)境不適合學習新機型特性。如果頻譜模板矩陣ModelArray(1×100)值全為0,則重復無人機遙控信號檢測中的第①步和第②步,進而得到DetectArray(t_value×100)及Width。將得到的Detect-Array(t_value×100)壓縮為NewArray(1x100)(若Detect-Array(t_value×100)矩陣某列中包含1,則NewArray(1×100)對應列置1)。分別對NewArray(1x100)矩陣從左至右、從右至左遍歷,求出“1”出現(xiàn)的起止頻點,并分別記作StartPt,StopPt,由式(14)計算出跳頻范圍最大半徑:
Radius=max(|StartPt-50|,|StopPt-50|)。
(14)
然后再對NewArray(1×100)矩陣遍歷,記其中“1”的總個數(shù)為遍歷點數(shù)(Ergodic)。根據(jù)求得的無人機機型特征參數(shù)(UAVParameters)可以將不同的無人機型號區(qū)分開來,具體分類方法如圖1所示。
圖1 無人機型號分類方法思維導圖
在已經(jīng)識別出跳頻信號后,可以將有N行的DetectArray(N×100)矩陣壓縮成JugdeArray(1×100),壓縮方法為若DetectArray(N×100)矩陣某列中包含1,則JugdeArray(1×100)矩陣對應列置1。重復上述方法,再次提取得到無人機機型特征參數(shù)[19](UAVParameters),然后通過這些特征參數(shù)進行匹配,最終如果是已知機型,則直接輸出其型號及機型特征參數(shù);如果是未知機型直接輸出發(fā)現(xiàn)未知跳頻序列,由此可判斷出無人機機型。
用于實施的硬件環(huán)境:Core-i5-4210M 2.60 GHz雙核計算機,4 GB內(nèi)存,940 M顯卡;運行的軟件環(huán)境:Visual Studio 2017,Matlab 2016,Windows 10。分別采用了C++、Matlab程序設計語言實現(xiàn)了本文提出的新算法。依次設置了無人機遙控信號常出現(xiàn)的2個中心頻率[20](2.44 GHz,5.775 GHz)、頻譜快照的帶寬[21]為100 MHz,共學習并識別了FUTABA T14SG,DJI Phantom Ⅲ,WFLY07,Nine Eagle,HUBSAN五種不同型號的無人機遙控信號。本算法可在頻譜分辨率帶寬(resolution bandwidth,RBW)為1~50 kHz下工作。
實驗參與測試的上述5種不同型號、不同跳頻方式的無人機在離天線較近距離下均能被快速穩(wěn)定的學習并識別到,隨著識別距離的增加,識別率有所下降,其最遠識別距離與天線及接收機的靈敏度成正相關。1 000幀頻譜圖各幀的信號檢測閾值Th′(單位:dBuV*10)如圖2所示,部分機型特征參數(shù)學習結(jié)果如表1所示(將學習幀數(shù)N設置在1 000屏及以上,學習的幀數(shù)越多,結(jié)果也越準確)。
圖2 1001幀頻譜圖各幀的信號檢測閾值
由于因?qū)W習次數(shù)有限、不同頻譜分辨率下存在一定的偏差,為保證能準確識別無人機型號,將Radius及Radius±1三個值均作為有效值。DJI PhantomⅢ型無人機遙控信號的識別結(jié)果如圖3所示,F(xiàn)UTABA T14SG遙控信號的識別結(jié)果如圖4所示。
表1 學習到的不同型號無人機機型特征參數(shù)
UAV modelCenterfrequency/GHzWidth3 dB/MHzErgodicRadiusDJI Plantom35.77514421±1Futaba T14SG2.44026820±1Nine Eagle2.44014018±1WFLY072.4402814±1Hubsan2.440127±1
圖3 DJI PhantomⅢ型無人機識別結(jié)果
圖4 FUTABA T14SG型無人機識別結(jié)果
經(jīng)過多次試驗表明,該算法可以對無人機實時、準確地識別,在復雜電磁環(huán)境中具有較好的魯棒性。該算法將N行頻譜矩陣Data(N×K)映射為多個二值化矩陣,減小了計算量,且能有效排除WiFi、圖傳信號等較寬帶寬信號,或帶寬極窄的雜散信號對無人機遙控信號檢測的干擾,進而保證了快速、準確地識別出非法無人機及其機型,實時性、抗干擾性與準確性較好。但該算法在附近有藍牙跳頻信號時會出現(xiàn)虛警的情況,另外本算法無法區(qū)分WiFi與無人機的圖傳信號。因此,將來可以就如何區(qū)分藍牙等跳頻信號與無人機遙控跳頻信號,以及如何區(qū)分WiFi與無人機圖傳信號等問題做進一步的研究,從而更好地降低識別的虛警率。