房鵬飛,彭華仁,呂天志
(中電科思儀科技股份有限公司,山東青島,266555)
數(shù)字熒光頻譜技術(shù)是現(xiàn)代頻譜技術(shù)的一個重大突破,該技術(shù)利用數(shù)字計算的方式模擬了CRT 顯示器的熒光效果,并且得益于數(shù)字化技術(shù)的靈活性,它可以得到更快的顯示速度和更多樣性的顯示效果[2~3]。數(shù)字熒光頻譜技術(shù)可以同時分析當前時刻以及之前一段時間的連續(xù)多幀頻譜,對這些頻譜的頻點信息進行統(tǒng)計分析,從而獲得該時段內(nèi)監(jiān)測頻段的所有信號的強度分布二維數(shù)據(jù),結(jié)合歸一化技術(shù)和色彩編碼技術(shù),最終得到一幅能夠表示信號分布的頻譜態(tài)勢圖。將該技術(shù)應用到電磁信號監(jiān)測設(shè)備上,能夠輕松的觀察重疊信號,發(fā)現(xiàn)隱蔽信號、突發(fā)信號,有效地提高電磁信號監(jiān)測設(shè)備的使用體驗,是信號監(jiān)測、干擾排查的重要功能之一。
本文硬件平臺選用中電科思儀科技股份有限公司推出的3943B 手持式監(jiān)測接收機,基于Qt 跨平臺開發(fā)框架,采用C++與QML 混合編程技術(shù),實現(xiàn)了數(shù)字熒光頻譜功能。由于傳統(tǒng)的數(shù)字熒光頻譜算法計算量大,手持式設(shè)備的處理器影響數(shù)字熒光頻譜顯示效果,因此本文對數(shù)據(jù)處理算法進行了優(yōu)化,提高了軟件的流暢度。
數(shù)字熒光頻譜技術(shù)是將監(jiān)測頻段一定時間范圍內(nèi)的大量頻譜數(shù)據(jù)搜集起來,統(tǒng)計在每個頻率點和每個幅度處的累計次數(shù),從而形成一幅統(tǒng)計圖,將統(tǒng)計圖的數(shù)值歸一化后與顏色碼一一對應即可形成一幅展示頻譜分布態(tài)勢的圖片。
在對頻譜進行統(tǒng)計之前,首先將頻譜離散化,先虛擬一個網(wǎng)格區(qū)域,網(wǎng)格的橫向分辨率和縱向分辨率分別與要生成的數(shù)字熒光圖圖片的橫縱分辨率一致,橫向表示頻譜頻率,縱向表示頻譜幅度,以14×8 的網(wǎng)格為例,如圖1 所示,將頻譜和網(wǎng)格疊加,就可以看到頻譜圖被分割成14×8 個方格,現(xiàn)規(guī)定有頻譜穿過的方格的值為“1”,其余方格的值為“0”。
圖1 頻譜離散化示意圖
圖中每個小方格的橫軸頻寬為:SGrid=FSpan/Pixelm,其中,F(xiàn)Span表示監(jiān)測頻段寬度,Pixelm表示熒光圖橫向像素數(shù)量。
圖中每個小方格的縱軸幅度范圍為:AGrid=ARange/Pixeln,其中,ARange表示頻譜圖顯示的幅度范圍,Pixeln表示熒光圖縱向像素數(shù)量。
計算方格數(shù)值的具體方法為,從起始監(jiān)測頻率開始,每次步進頻寬SGrid,在每個步進頻段中,遍歷該頻段內(nèi)每個頻點的幅度值,以確定穿越哪個方格。
將所有統(tǒng)計周期內(nèi)的頻譜都進行離散化,可得到若干個二維數(shù)組,然后把所有的數(shù)組累加,即可得到統(tǒng)計數(shù)組,以每個周期內(nèi)有9 條頻譜為例,得到二維的顯示數(shù)據(jù)后還需要將其可視化,即根據(jù)每個方格的數(shù)值計算方格的顏色,這樣將每個方格都填充上對應的顏色即可得到一幅圖像,如圖2 所示,當熒光圖的像素分辨率足夠高的時候,就能夠分辨細小信號。
圖2 數(shù)字熒光頻譜圖示意圖
累計的次數(shù)需要與顏色映射,最簡單的映射關(guān)系是灰度圖的映射,根據(jù)規(guī)定的顯示范圍,均勻的映射到0~255上,0 表示黑色,255 表示白色。在計算機中,彩色值是由紅(R)綠(G)藍(B)顏色值組成的,每個顏色的取值范圍是0~255,因此最多有224種顏色。盡管有這么多顏色,但是人眼的識別能力是有限的,早在1985 年,IBM 資深專家Mike Cowlishaw 發(fā)表文章論證了17 位的顏色值即可表示最理想的色彩[4],三原色比例R:G:B 為5:7:5。
三原色的配色方程可用公式表示:
實際應用中,顏色碼[C]用一個16 位數(shù)表示即可達到較高的顯示效果,基于此,三原色系數(shù)一般用二進制取位法來確定,即從顏色碼[C]中提取不同的位數(shù)來生成R[R]、G(G)、B(B)的值。具體的取位方法有兩種較為常用:順序取位法、循環(huán)取位法[5]。
(1)順序取位法
順序取位法可用圖3 表示。
圖3 順序取位法示意圖
該方法是取低5 位作為B(B)的值,選取中間5 位為G(G)的值,選取高6 位為R[R]的值。當需要不同的色系時,可以改變RGB 占位的比例。
(2)交叉取位法
不同于順序取位法,交叉取位是從高位到地位依次抽取某幾位,然后組成RGB 系數(shù)。具體方式見圖4。
圖4 交叉取位法示意圖
通過上述辦法,可生成一個大小為65535 的參考顏色碼數(shù)組,根據(jù)統(tǒng)計周期的頻譜幀數(shù),將頻譜統(tǒng)計的二維數(shù)據(jù)歸一化為0~1,然后采取線性映射或非線性映射的方式(如圖5 所示),從參考顏色數(shù)組中確定每一個方格的顏色碼。
圖5 顏色映射關(guān)系
本文所采用的硬件平臺為思儀3943B 手持式監(jiān)測接收機,該接收機基于Linux 系統(tǒng)開發(fā),配有800MHz 處理器、10.1 英寸的觸摸屏幕,可實現(xiàn)9kHz~8GHz 頻段內(nèi)的信號搜索、截獲、測量、分析、解調(diào)、測向、定位等多種功能,最大支持20MHz 掃描帶寬,可用于非法發(fā)射源/干擾源快速檢測與定位。
本文所實現(xiàn)的數(shù)字熒光頻譜圖應用需要觸摸點擊、滑動、縮放等手勢操作,因此選用QML 語言設(shè)計開發(fā)界面??紤]到需要對大量頻譜進行計算、分析,因此需要用到Qt Quick 提供的混合編程方案,具體是指C++與QML 語言混合編程,該方案可以充分利用C++在復雜數(shù)據(jù)處理方面的優(yōu)勢和QML 在數(shù)據(jù)顯示方面的優(yōu)勢?;谶@種需求,本文的軟件方案采用分層架構(gòu)。上層顯示層負責人機交互、圖像刷新,下層為數(shù)據(jù)處理層,負責軟件配置狀態(tài)更新、算法調(diào)用、數(shù)據(jù)流控制、顯示數(shù)據(jù)傳輸?shù)取?/p>
圖6 軟件架構(gòu)示意圖
根據(jù)數(shù)字熒光頻譜圖的原理,在數(shù)據(jù)處理層采用C++語言實現(xiàn)編碼,處理過程及人機交互需要設(shè)立參數(shù)如表1所示。
表1 軟件參數(shù)表
數(shù)據(jù)處理流程:底層數(shù)據(jù)準備好之后,上位機讀取原始數(shù)據(jù),每次讀取一幀頻譜,然后更新數(shù)字熒光頻譜圖圖像統(tǒng)計數(shù)據(jù),統(tǒng)計完成后計算顏色碼得到數(shù)字熒光頻譜圖位圖。為了降低數(shù)據(jù)計算壓力,減少重復的計算,本軟件在實現(xiàn)過程中,將所有的離散頻譜數(shù)據(jù)都做了緩存,當某幀頻譜超過生存周期時,將其從統(tǒng)計數(shù)據(jù)中刪除,然后新進入生存周期的頻譜數(shù)據(jù)加入統(tǒng)計,而不必重新計算所有的頻譜數(shù)據(jù),減少了頻譜數(shù)據(jù)處理量,節(jié)省了處理時間。流程圖如圖7 所示。
圖7 數(shù)據(jù)處理流程
數(shù)字熒光頻譜圖生成后,利用Qt 的信號槽機制,向QML 界面發(fā)送圖像準備好的信號,然后進行繪制。
如圖8 所示,左圖為對跳頻信號的監(jiān)測,可以看到:當信號的頻率變化很快時,傳統(tǒng)的頻譜圖同一時刻只能監(jiān)測到一個信號,而下方的數(shù)字熒光頻譜圖,可以清晰地看到跳頻信號的兩個頻點處的頻譜信息。右圖是對FM 調(diào)制信號的監(jiān)測,在傳統(tǒng)的頻譜圖上觀察,只能看到一個信號在移動,而在數(shù)字熒光頻譜圖上可以清晰地看到頻率變化的過程,展示了更多的頻譜細節(jié)。
圖8 信號實測結(jié)果
從測試結(jié)果可以看到,該軟件可以實現(xiàn)數(shù)字熒光頻譜功能,可以分析頻譜在階段時間內(nèi)的分布態(tài)勢,能夠有效地幫助使用者監(jiān)測信號、分析信號。
本文分析了數(shù)字熒光頻譜技術(shù)的重要性,介紹了數(shù)字熒光頻譜技術(shù)的實現(xiàn)原理和顏色碼產(chǎn)生方法,基于思儀3943B手持式監(jiān)測接收機硬件平臺,實現(xiàn)了數(shù)字熒光頻譜應用,并針對低頻處理器做了算法優(yōu)化。該軟件運行穩(wěn)定流暢,具有良好的使用體驗,為異常信號監(jiān)測和干擾信號排查提供了有效的技術(shù)手段。