亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Qt 的通信信號分析軟件的設(shè)計與實(shí)現(xiàn)

        2023-08-01 07:50:56王屬靈張一嘉
        航天電子對抗 2023年3期
        關(guān)鍵詞:離線線程頻譜

        王屬靈,宋 磊,張一嘉,徐 璐

        (1.浙江理工大學(xué)信息科學(xué)與工程學(xué)院, 浙江 杭州 310018;2.陸軍工程大學(xué)指揮控制學(xué)院,江蘇 南京 210007)

        0 引言

        傳統(tǒng)通信信號的分析,需要聯(lián)合借助頻譜儀和示波器等諸多儀器,這些分析儀器雖然分析可靠、靈敏度高,但是缺點(diǎn)也很明顯:價格高昂,操作復(fù)雜,設(shè)備龐大不具備便攜性[1],而且分析信號的過程需要較長的時間。對于一些經(jīng)常需要做信號分析的場合而言,時間成本也非常重要,操作儀器進(jìn)行信號分析就會費(fèi)時費(fèi)力。因此,對信號進(jìn)行全方位分析費(fèi)時費(fèi)力,市面上也很難見到一款多功能的信號分析解決方案。

        研究者對通信信號分析軟件及其相關(guān)的顯控軟件已開展了一些研究,西安電子科技大學(xué)范斐基于MFC 設(shè)計出一款時域、頻域測量一體的雷達(dá)信號分析軟件,并能夠?qū)走_(dá)信號進(jìn)行基本分析和測量[2]。江蘇自動化研究所的徐鳳萍利用Qt 軟件框架,設(shè)計開發(fā)了一套基于龍芯3A+中標(biāo)麒麟的顯控軟件架構(gòu),用于實(shí)現(xiàn)信息快速收發(fā)及其界面繪圖顯示[3]。以上研究均為在線分析軟件,需要實(shí)時獲取數(shù)據(jù),不能對事先預(yù)存好的數(shù)據(jù)文件進(jìn)行分析,容易產(chǎn)生信號丟失等情況,且僅能做簡單的分析和測量[4]。因此,設(shè)計一款集離線分析+精確測量+全面分析等功能于一體的解決方案十分必要。

        Qt 作為一款跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架,具有使用廣泛、兼容性強(qiáng)、組件容易拓展等諸多優(yōu)勢[5]。本文的通信信號分析軟件便是基于Qt平臺進(jìn)行搭建,實(shí)現(xiàn)了從數(shù)據(jù)層的信號分析到圖形界面的所有流程開發(fā),整合了基本的信號分析功能,方便信號分析人員操作使用。

        本文設(shè)計的通信信號離線分析軟件融合信號處理技術(shù)[6],采用MDI 多文檔框架,能夠?qū)?shù)字及模擬信號進(jìn)行時頻圖分析、信號參數(shù)測量[7]和常規(guī)信號解調(diào)。該軟件基于Qt 平臺搭建,將所有功能進(jìn)行模塊化設(shè)計,最后插入到MDI 多文檔界面進(jìn)行顯示,每個模塊內(nèi)部分為線程池數(shù)據(jù)處理和GUI 界面2 部分,保證數(shù)據(jù)在高效處理的前提下界面也能實(shí)時刷新,不卡頓。同時對每個模塊設(shè)置模塊代號以及數(shù)據(jù)路由機(jī)制完成不同模塊之間的數(shù)據(jù)交互,界面操作包括基本功能和彈出菜單,基本菜單會在界面上部和右側(cè)進(jìn)行顯示,彈出菜單在每個不同模塊會有不同的功能。本文所設(shè)計的軟件能夠在多平臺上使用,無需修改代碼便可生成所需平臺可執(zhí)行程序。軟件內(nèi)部邏輯清晰明了,簡化了分析過程,所有操作均能通過上下文彈出菜單來完成,具有分析效果佳、兼容性強(qiáng)、便攜性高等眾多優(yōu)勢。

        1 軟件整體研究方案

        1.1 軟件整體框架搭建

        Qt 的MDI 模式為開發(fā)人員提供了能同時操作多個子窗口的編程接口,每個子窗口相當(dāng)于一個線程,在屬于自己的空間中處理獨(dú)立特定的事務(wù),同時也能進(jìn)行快捷傳值交互[8]。本軟件以MDI 框架為主模塊,通過多個模塊搭配聯(lián)合實(shí)現(xiàn)。對每個模塊設(shè)置模塊代號,利用信號槽機(jī)制將所有模塊與主模塊進(jìn)行關(guān)聯(lián),最后通過主模塊完成各模塊之間數(shù)據(jù)路由。從底層到最上層的主要模塊有:離線數(shù)據(jù)模塊、數(shù)據(jù)路由模塊、GUI 模塊(全景模塊,信號識別模塊、信號解調(diào)模塊),整體架構(gòu)如圖1 所示。

        1.2 軟件主要功能

        軟件主要功能分為5 部分:MDI 主框架,最底層的離線數(shù)據(jù)處理模塊以及最頂層的信號時頻圖分析、信號參數(shù)測量及常規(guī)信號解調(diào)。

        1) MDI 主框架作為整個界面最重要的模塊之一,主要負(fù)責(zé)控制軟件流程、更改識別、解調(diào)等參數(shù),同時負(fù)責(zé)數(shù)據(jù)路由,管理所有模塊間交互數(shù)據(jù)的分包。

        2) 離線數(shù)據(jù)模塊主要是獲取本地已存儲好的數(shù)據(jù)文件進(jìn)行分析,數(shù)據(jù)文件在存儲時需要按照指定格式進(jìn)行??色@取文件類型包括:.dat、.bin、.wav、.IQ、.AD、.STD、.DIF 等,界面可在讀取文件的同時選擇數(shù)據(jù)參數(shù)(數(shù)據(jù)類型,信道類型、采樣頻率等)。

        3) 時頻圖分析主要分為2 部分:信號頻譜圖和瀑布圖分析。頻譜圖以x軸為頻率,y軸為幅度,通過快速傅里葉變換(FFT)再計算功率譜密度后能夠完整且清晰地展示信號的頻域特征,同時頻譜圖通過自定義控件,能夠進(jìn)行圖像框選放大、滾輪任意放縮、信號框選識別及解調(diào)等功能;瀑布圖以x軸作為頻率,y軸作為時間,通過不同的顏色展示對應(yīng)的幅度,由上到下進(jìn)行移動,且橫軸頻率坐標(biāo)與頻譜圖完全對應(yīng)。頻譜圖配合瀑布圖能夠以最直觀的方式展現(xiàn)信號頻域特征的二維、三維圖。

        4) 信號參數(shù)測量主要分為2 部分:信號參數(shù)結(jié)果表用來展示當(dāng)前從全景框選的信號識別結(jié)果參數(shù),結(jié)果參數(shù)列表可以通過點(diǎn)擊進(jìn)行信號解調(diào)并記錄參數(shù)至信號解調(diào)參數(shù)區(qū),信號置信度直方圖負(fù)責(zé)統(tǒng)計當(dāng)前識別信號類型出現(xiàn)的頻率(百分比),供用戶查看方便以做出下一步分析操作。

        5) 常規(guī)信號解調(diào)展示的是信號的基帶波形圖、星座圖和碼流圖,信號解調(diào)流程可以通過全景框選信號+自定解調(diào)參數(shù)實(shí)現(xiàn),也可從識別結(jié)果參數(shù)對識別到的信號進(jìn)行直接解調(diào)。

        2 軟件設(shè)計與實(shí)現(xiàn)

        2.1 軟件MDI 程序的搭建

        通過Qt Creator 新建一個Qt Widgets Application應(yīng)用程序,并編輯UI 文件,設(shè)置主窗口部件為QMdi-Area,同時創(chuàng)建菜單欄、工具欄以及參數(shù)區(qū)。并重新按照圖2 所示框架布局整個UI 界面。

        圖2 主窗口整體框架設(shè)計圖

        菜單欄包括文件菜單欄以及操作菜單欄。文件菜單欄負(fù)責(zé)獲取本地的data 文件,并且保留最近讀取的文件顯示;操作菜單欄主要是流程控制功能,負(fù)責(zé)軟件啟動、暫停、停止、重復(fù)播放等功能。所有設(shè)置好的控件操作將會對應(yīng)該類下面的一個自定義槽函數(shù),通過Qt 特有的connect 機(jī)制,將功能和槽函數(shù)實(shí)現(xiàn)動態(tài)綁定,當(dāng)點(diǎn)擊客戶端操作時槽函數(shù)能夠響應(yīng),實(shí)現(xiàn)相應(yīng)操作。

        工具欄設(shè)置于軟件左上角,提供一系列位圖式按鈕控制指令,是菜單欄部分功能的展開按鈕,方便終端用戶操作。而進(jìn)度條負(fù)責(zé)獲取并顯示當(dāng)前文件讀取到的位置,可拖拽。

        參數(shù)區(qū)包括:數(shù)據(jù)分析參數(shù)、信號通道參數(shù)及信號解調(diào)參數(shù)。主要負(fù)責(zé)設(shè)置識別解調(diào)參數(shù),并用三個結(jié)構(gòu)體對象保存為全局參數(shù),供所有模塊調(diào)用。

        2.2 離線數(shù)據(jù)模塊的設(shè)計與實(shí)現(xiàn)

        離線數(shù)據(jù)模塊通過子類化QFIleDialog 類,在此基礎(chǔ)插入數(shù)據(jù)文件參數(shù)復(fù)選控件,實(shí)現(xiàn)自定義的Filecontrol 類。再通過選擇數(shù)據(jù)文件獲得文件名,同時利用QFileInfo 類完成文件類型判定。

        由于經(jīng)常會有大文件的讀取,本軟件使用多線程的方法讀取文件數(shù)據(jù),解決界面假死問題,而經(jīng)常對線程的創(chuàng)建及銷毀會產(chǎn)生很大的開銷,所以可以利用Qt 的線程池函數(shù)QThreadPool,使用QThreadPool 直接獲取QApplication 生成的默認(rèn)線程池對象進(jìn)行管理。在選中確認(rèn)一個文件之后,創(chuàng)建一個讀取任務(wù)放入線程池的任務(wù)隊(duì)列,而任務(wù)的過程是QFile 獲取文件句柄,以QDataStream 二進(jìn)制流讀取數(shù)據(jù),最后保存結(jié)果,并通知UI 線程任務(wù)執(zhí)行完畢,此任務(wù)結(jié)束,數(shù)據(jù)模塊執(zhí)行流程圖如圖3 所示。

        圖3 離線數(shù)據(jù)模塊數(shù)據(jù)流程圖

        2.3 全景模塊的設(shè)計與實(shí)現(xiàn)

        QCustomPlot 是一個開源的Qt C++小部件,用于繪圖和數(shù)據(jù)可視化,該庫能夠?qū)W⒅谱髅烙^且性能較強(qiáng)的圖形和圖表,效果佳,簡單易用,只需要在項(xiàng)目中增加一個同名頭文件和源文件,然后將一個widget提升為QCustomPlot 類即可使用[9]。本軟件GUI 顯示模塊均基于QCustomPlot 二次開發(fā)實(shí)現(xiàn)。

        基于QCustomPlot 二次開發(fā)的頻譜圖需要對子窗口初始化為自定義個性化窗口,并重新設(shè)置數(shù)據(jù)導(dǎo)入接口,增加右鍵彈出菜單QMenu,菜單欄包括:峰值保持、框選放大及自適范圍等。

        瀑布圖設(shè)置圖形通過QCPColorGradient 類構(gòu)造一個自定義色條,再使用QCPColorMap 類繪制,以色條上不同顏色表示信號幅度強(qiáng)弱。每一幀數(shù)據(jù)追加插入到QList 數(shù)據(jù)末尾,同時刪除QList 頭部數(shù)據(jù),以此推動瀑布圖從上往下刷新。頻譜圖x軸范圍改變會發(fā)出rangeChanged 信號,將之與瀑布圖x軸setRange方法綁定,實(shí)現(xiàn)頻譜瀑布圖放縮同步。

        離線數(shù)據(jù)模塊獲取完數(shù)據(jù)并保存的前提下,選擇數(shù)據(jù)分析參數(shù),點(diǎn)擊啟動全景按鈕即可開啟全景流程,全景刷新是根據(jù)當(dāng)前數(shù)據(jù)偏移搭配定時器QTimer 設(shè)置的固定時間實(shí)現(xiàn)的,每個定時器周期內(nèi)數(shù)據(jù)首先會經(jīng)過FFT 處理并計算功率譜密度,得出信號在不同頻率上得功率值,然后再進(jìn)行坐標(biāo)映射,最后將每個點(diǎn)的值利用setData 接口存入數(shù)據(jù)窗口內(nèi)部,同時調(diào)用replot 重繪,replot 參數(shù)采用QCustomPlot::rp-QueuedReplot,可以顯著改善重繪性能,數(shù)據(jù)便能全部以最優(yōu)效果展示出來。全景瀏覽分析如圖4 所示。

        圖4 全景瀏覽分析(上為頻譜圖,下為瀑布圖,右側(cè)小窗口為彈出控制菜單)

        2.4 信號參數(shù)測量模塊的設(shè)計與實(shí)現(xiàn)

        信號參數(shù)測量中2 個表格分別存儲臨時信號參數(shù)結(jié)果以及匯總信號參數(shù)結(jié)果,當(dāng)通過框選信號啟動識別后,利用離線數(shù)據(jù)模塊構(gòu)建好的線程池,保存當(dāng)前信號位置,并將位置和原始IQ 數(shù)據(jù)加入新開辟的工作線程,新創(chuàng)建的工作線程會綁定2 個Signal-Slot,分別是傳入?yún)?shù)以及傳出信號識別結(jié)果。該線程以全景停止為退出條件進(jìn)行無限循環(huán)抽取、識別。識別結(jié)果保存在SgnAnalysisResult 結(jié)構(gòu)體中,最終傳出工作線程,在UI 界面做顯示。參數(shù)顯示表格會設(shè)置彈出菜單,該菜單欄包括:顯示信號位置,啟動信號解調(diào)及刪除該次信號結(jié)果。

        信號參數(shù)測量模塊的主要設(shè)計流程如圖5 所示。

        圖5 參數(shù)測量工作流程

        參數(shù)測量模塊對信號測量的參數(shù)列表如表1所示。

        表1 信號測量的參數(shù)列表及其說明

        參數(shù)測量會在2 個表格展示信號識別結(jié)果信息(QTableWidget),一個用于匯總,另一個用于臨時刷新。設(shè)置表頭為信號參數(shù),表格為單行選中,最右側(cè)信號置信度直方圖是繼承于QCustomPlot,繪圖選擇QCPBars 柱狀圖,負(fù)責(zé)統(tǒng)計當(dāng)前識別信號類型出現(xiàn)的頻率(百分比),界面顯示效果如圖6 所示。

        圖6 識別界面及信號識別結(jié)果展示(以BPSK 為例)

        2.5 常規(guī)信號解調(diào)模塊的設(shè)計與實(shí)現(xiàn)

        常規(guī)信號解調(diào)結(jié)果展示基帶波形圖、位流圖及星座圖。基帶波形圖基于QCustomPlot 二次開發(fā)實(shí)現(xiàn),它以當(dāng)前點(diǎn)數(shù)為x軸,y軸為IQ 數(shù)據(jù)中I 路數(shù)據(jù),數(shù)據(jù)點(diǎn)全部相連以連續(xù)的形式繪制。星座圖以I 路數(shù)據(jù)為x軸,y軸為Q 路數(shù)據(jù),設(shè)置數(shù)據(jù)繪圖風(fēng)格setLineStyle(QCPGraph::LineStyle::lsNone),此為散點(diǎn)圖繪制方式,點(diǎn)與點(diǎn)之間沒有連接,不同的信號的星座圖會有不同的分布IQ 分布,能夠直觀展示解調(diào)效果。位流圖使用的是QTextWidget,設(shè)置整幀數(shù)據(jù)為單行顯示并且開啟滾輪條,用01 字符串以append 的形式展示結(jié)果,結(jié)果會保存1 000 行,超過1 000 行則會自動刪除最開始的一行。

        常規(guī)信號解調(diào)算法由于時間復(fù)雜度高,耗時多,若直接進(jìn)行調(diào)用,會使得UI 界面產(chǎn)生卡頓,因此該模塊是基于雙線程開發(fā)。子線程會在軟件啟動時默認(rèn)直接開啟,內(nèi)部使用while 的方式,通過判斷全景流程是否正在運(yùn)行從而break,因此理論上解調(diào)的效率是和當(dāng)前使用的計算機(jī)性能有關(guān),計算機(jī)性能越強(qiáng),運(yùn)算速度越快,顯示刷新效率越高。

        常規(guī)信號解調(diào)結(jié)果展示如圖7 所示。

        圖7 常規(guī)信號解調(diào)結(jié)果展示(以BPSK 為例)

        常規(guī)信號解調(diào)流程是基于全景流程推動的。在全景啟動的情況下,有2 種方式開啟解調(diào), 一種是從全景頻譜圖直接框選信號+手動設(shè)置解調(diào)參數(shù),另一種是通過選中信號分析結(jié)果,自動進(jìn)行信號解調(diào)。常規(guī)信號解調(diào)工作流程如圖8 所示。

        圖8 常規(guī)信號解調(diào)工作流程

        3 軟件打包及測試結(jié)果

        3.1 軟件打包

        離線分析軟件根據(jù)前文展示的框架以及模塊化設(shè)計完成后,使用Release 重新構(gòu)建項(xiàng)目,在Windows環(huán)境下重新生成可執(zhí)行文件exe,再使用同編譯環(huán)境下Qt 自帶的命令行工具切換到當(dāng)前exe 目錄,手動輸入windeployqt MainMDI.exe 命令,其中MainMDI 為生成的可執(zhí)行文件的名稱,該命令的作用是拷貝庫文件。完成此步驟之后exe 目錄會自動將該程序所需要的庫文件全部拷貝到當(dāng)前文件夾,最后使用第三方軟件Enigma Virtual Box 將所有文件打包到指定目錄,生成最終的一個可執(zhí)行文件。

        3.2 軟件測試

        測試采用數(shù)據(jù)文件基于信號源生成,并且使用USRP 設(shè)備采集并保存下來的.dat 文件, 采集的數(shù)據(jù)內(nèi)容如表2 所示。

        表2 離線信號數(shù)據(jù)表

        軟件在設(shè)計打包完成后,經(jīng)過多次文件讀取及關(guān)閉,同步及分步執(zhí)行所有功能,未發(fā)現(xiàn)明顯的界面卡頓、假死等情況,同時經(jīng)過測試,所有操作流程中一切正常,無報錯、閃退等異常BUG 的發(fā)生。

        頻譜圖分析分別采用某常用軟件以及本文所設(shè)計的軟件對信號1 進(jìn)行頻譜分析對比,驗(yàn)證頻譜圖繪制的正確性,發(fā)現(xiàn)無明顯差異,對比圖如圖9 所示。

        圖9 BPSK 調(diào)制頻譜圖的對比

        開啟信號識別流程,觀察到識別結(jié)果參數(shù)表格中所有參數(shù)均符合測試文件的信號參數(shù),且右側(cè)直方圖顯示BPSK 的信號置信度為100%,如圖10 所示。綜上所述,信號識別模塊已經(jīng)達(dá)到了設(shè)計要求。

        圖10 BPSK 參數(shù)識別結(jié)果(上方藍(lán)色選中表格為識別結(jié)果匯總)

        雙擊信號參數(shù)識別結(jié)果表,以識別參數(shù)結(jié)果為解調(diào)參數(shù)開啟信號解調(diào)流程。如圖11 所示,信號的星座圖和位流圖均符合BPSK 的特性,特別注意到,在基帶波形圖中,觀察到波形圖開始一段出現(xiàn)大范圍波動,很可能是由于信號解調(diào)時引入了相位誤差,導(dǎo)致解調(diào)信號的相位偏移,該偏移可能來自信號源本身的相位偏移、信號傳輸中的相位噪聲、解調(diào)器本身的相位偏移等多個方面,這些偏移導(dǎo)致解調(diào)信號的相位發(fā)生變化,從而影響I 路數(shù)據(jù)的波形。

        圖11 BPSK 解調(diào)結(jié)果(左上為基帶波形,左下為位流圖,右側(cè)為星座圖)

        4 結(jié)束語

        本文所設(shè)計的基于Qt 的通信信號分析軟件,全部基于Qt 和C++實(shí)現(xiàn),有良好的模塊設(shè)計以及跨平臺性,代碼可讀性高,數(shù)據(jù)流清晰。完成了對離線數(shù)據(jù)信號讀取解析、全景瀏覽、參數(shù)測量及信號解調(diào)。最后,在CentOS 及Windows 平臺下分別封裝打包交付給實(shí)驗(yàn)室成員及相關(guān)合作公司使用,完成設(shè)計要求。本軟件的基本功能都已經(jīng)實(shí)現(xiàn),但后續(xù)仍有部分細(xì)節(jié)需進(jìn)一步深入完善,要做到兼顧軟件的整體性能和延展性,為使用者提供界面更精美、操作更便利、功能更強(qiáng)大的可視化的軟件解決方案?!?/p>

        猜你喜歡
        離線線程頻譜
        異步電機(jī)離線參數(shù)辨識方法
        呼吸閥離線檢驗(yàn)工藝與評定探討
        一種用于深空探測的Chirp變換頻譜分析儀設(shè)計與實(shí)現(xiàn)
        淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
        一種基于稀疏度估計的自適應(yīng)壓縮頻譜感知算法
        離線富集-HPLC法同時測定氨咖黃敏膠囊中5種合成色素
        中成藥(2018年2期)2018-05-09 07:20:09
        淺談linux多線程協(xié)作
        認(rèn)知無線電頻譜感知技術(shù)綜述
        一種基于功率限制下的認(rèn)知無線電的頻譜感知模型
        Linux線程實(shí)現(xiàn)技術(shù)研究
        精品亚洲成在人线av无码| 亚洲禁区一区二区三区天美| 精品一区二区三区芒果| 美女把尿囗扒开让男人添| 最新69国产成人精品视频免费 | 熟女精品视频一区二区三区| 国产亚洲亚洲精品777| 亚洲中文字幕黄色小视频| 中文字幕日韩有码国产| 亚洲中文字幕无码av| 亚洲不卡av不卡一区二区| 完整在线视频免费黄片| 99久久国产免费观看精品 | 国产传媒精品成人自拍| 久久久无码精品亚洲日韩蜜臀浪潮| 乌克兰少妇xxxx做受6| 国产精品,在线点播影院| 国产免费人成视频在线| 国语对白做受xxxxx在| xxxx国产视频| 日本二区三区视频免费观看| av剧情演绎福利对白| 国产精品亚洲一区二区三区在线| 白浆出来无码视频在线| 国产精品成年人毛片毛片| 亚洲av无码一区二区三区天堂| 97久久香蕉国产线看观看| 久久天天躁狠狠躁夜夜中文字幕| 日本中文字幕有码在线播放| 成人在线免费电影| 久久久精品免费观看国产| 亚洲人成伊人成综合网中文| 亚洲av久播在线一区二区| 国产麻豆精品一区| 日韩最新在线不卡av| 日本av不卡一区二区三区| 国产激情综合在线观看| 欧美色欧美亚洲另类二区不卡| 白色橄榄树在线阅读免费| 精品国产yw在线观看| 亚洲视频一区|