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

        ?

        ADS-B信號(hào)實(shí)時(shí)生成軟件設(shè)計(jì)與實(shí)現(xiàn)

        2020-11-17 06:56:06胡鐵喬任志杰
        關(guān)鍵詞:參數(shù)設(shè)置磁盤緩沖區(qū)

        胡鐵喬,任志杰

        (中國(guó)民航大學(xué) 天津市智能信號(hào)與圖像處理重點(diǎn)實(shí)驗(yàn)室,天津 300300)

        0 引 言

        廣播式自動(dòng)相關(guān)監(jiān)視(ADS-B)信號(hào)源是ADS-B接收機(jī)研制過(guò)程中不可缺少的測(cè)試設(shè)備,目前對(duì)ADS-B信號(hào)源的研究主要有鐘倫瓏等設(shè)計(jì)的ADS-B接收機(jī)自動(dòng)測(cè)試系統(tǒng)[1]和王婷琦等設(shè)計(jì)的ADS-B信號(hào)發(fā)生器[2]。上述ADS-B信號(hào)源均是采用上位機(jī)配合下位機(jī)的方式實(shí)現(xiàn),上位機(jī)是計(jì)算機(jī)或帶有顯示終端的嵌入式設(shè)備,負(fù)責(zé)生成已知功率、多普勒頻移的ADS-B數(shù)據(jù),下位機(jī)是數(shù)據(jù)編碼、信號(hào)調(diào)制、數(shù)模轉(zhuǎn)換與上變頻等模塊,根據(jù)上位機(jī)提供的ADS-B數(shù)據(jù)生成對(duì)應(yīng)的ADS-B射頻信號(hào)。由于這類設(shè)備的下位機(jī)不僅涉及FPGA和單片機(jī)軟件開發(fā),還涉及到PCB電路板硬件設(shè)計(jì),導(dǎo)致開發(fā)周期太長(zhǎng)。此外,該類設(shè)備一旦定型,后期增加功能需要涉及硬件層面的改動(dòng),導(dǎo)致其可擴(kuò)展性較差。

        本文采用CPU+GPU異構(gòu)平臺(tái)[3],通過(guò)計(jì)算機(jī)編程生成ADS-B數(shù)字中頻信號(hào),以Google Earth作為地理信息系統(tǒng),針對(duì)CPU串行執(zhí)行程序較慢問(wèn)題,采用CUDA技術(shù)利用GPU進(jìn)行加速來(lái)實(shí)時(shí)生成數(shù)字中頻信號(hào),通過(guò)DA卡將數(shù)字中頻信號(hào)轉(zhuǎn)換為對(duì)應(yīng)頻率的模擬中頻信號(hào)。該方法使得DA轉(zhuǎn)換器盡可能靠近天線端,將更多的任務(wù)以軟件編程的方式來(lái)實(shí)現(xiàn),以這種方式設(shè)計(jì)出來(lái)的系統(tǒng)涉及到的硬件電路較少,具有高度的靈活性與開放性,僅僅通過(guò)軟件編程就可以增加新的功能,使得系統(tǒng)的可擴(kuò)展性增強(qiáng)。

        1 軟件設(shè)計(jì)方法

        ADS-B信號(hào)實(shí)時(shí)生成軟件包括參數(shù)設(shè)置模塊、信號(hào)生成模塊、數(shù)據(jù)保存模塊和顯示模塊,軟件能夠根據(jù)設(shè)定的參數(shù)生成采樣率為80 MHz的ADS-B數(shù)字中頻信號(hào),使用采樣率為80 MHz的DA卡即可將其回放為與設(shè)定功率、頻率對(duì)應(yīng)的ADS-B模擬中頻信號(hào)。ADS-B信號(hào)實(shí)時(shí)生成軟件框架如圖1所示。

        圖1 ADS-B信號(hào)實(shí)時(shí)生成軟件框架

        1.1 參數(shù)設(shè)置模塊

        根據(jù)軟件功能確定需要設(shè)置的參數(shù),其中ADS-B信號(hào)參數(shù)包括功率和多普勒頻移;航跡參數(shù)包括飛機(jī)的航跡類型、飛機(jī)架數(shù)和飛機(jī)高度;衛(wèi)星參數(shù)包括星下點(diǎn)坐標(biāo)、軌道高度和軌道傾角。使用MFC的按鈕、編輯框、組合框等控件類為各個(gè)參數(shù)添加相應(yīng)的控件,實(shí)現(xiàn)在參數(shù)設(shè)置界面調(diào)整各個(gè)參數(shù)的功能。

        1.2 信號(hào)生成模塊

        信號(hào)生成模塊是ADS-B信號(hào)實(shí)時(shí)生成軟件的核心。根據(jù)上述參數(shù)設(shè)置模塊中航跡設(shè)置與衛(wèi)星設(shè)置的參數(shù),可以生成基于KML語(yǔ)法的航跡數(shù)據(jù)與衛(wèi)星天線覆蓋范圍數(shù)據(jù)。根據(jù)信號(hào)設(shè)置設(shè)定的參數(shù),可以生成與之對(duì)應(yīng)的ADS-B信號(hào)或載波。當(dāng)信號(hào)參數(shù)中的功率模擬方式選擇真實(shí)功率時(shí),根據(jù)當(dāng)前時(shí)刻飛機(jī)與接收天線的距離,通過(guò)地空通信鏈路損耗模型來(lái)計(jì)算這一時(shí)刻信號(hào)的功率;功率模擬方式選擇固定功率時(shí),通過(guò)參數(shù)設(shè)置界面輸入一個(gè)固定的功率值,該方式生成的每一條ADS-B信號(hào)的功率大小均為設(shè)定的功率。當(dāng)信號(hào)參數(shù)中的頻移模擬方式選擇真實(shí)頻移時(shí),通過(guò)多普勒頻移計(jì)算公式計(jì)算信號(hào)的多普勒頻移,該方式模擬的多普勒頻移由當(dāng)前時(shí)刻飛機(jī)與接收機(jī)天線的徑向速度決定;頻移模擬方式選擇固定頻移時(shí),通過(guò)參數(shù)設(shè)置界面輸入一個(gè)固定的頻移值,該方式生成的每一條ADS-B信號(hào)的頻移大小均為設(shè)定的頻移。最后,將生成的ADS-B基帶信號(hào)結(jié)合上述得出的功率與頻移,生成ADS-B數(shù)字中頻信號(hào)或者頻偏和功率與ADS-B數(shù)字中頻信號(hào)相同的載波。

        1.3 數(shù)據(jù)保存模塊

        在設(shè)定好衛(wèi)星參數(shù)后,軟件將生成的衛(wèi)星天線覆蓋范圍數(shù)據(jù)以KML語(yǔ)法格式保存到KML文件中,用于Google Earth顯示天線覆蓋范圍。在生成當(dāng)前1 s的ADS-B數(shù)字中頻信號(hào)之前,軟件將該秒的航跡信息以KML語(yǔ)法保存到KML文件中,用于Google Earth顯示當(dāng)前時(shí)刻飛機(jī)航跡。軟件每生成1 s時(shí)長(zhǎng)的ADS-B數(shù)字中頻信號(hào)之后便執(zhí)行一次寫磁盤操作,將緩沖區(qū)中的ADS-B數(shù)字中頻信號(hào)寫入到DAT文件中,當(dāng)下一秒的信號(hào)生成完畢直接將緩沖區(qū)中之前的數(shù)據(jù)覆蓋,這樣只需開辟兩個(gè)1 s時(shí)長(zhǎng)信號(hào)占用大小的緩沖區(qū)(因?yàn)閷懘疟P部分用到乒乓操作,所以需要兩個(gè)緩沖區(qū)),有利于軟件在內(nèi)存較小的平臺(tái)上進(jìn)行部署。

        1.4 顯示模塊

        根據(jù)ADS-B數(shù)據(jù)內(nèi)容,將仿真的飛機(jī)以及相關(guān)信息顯示在界面中,通過(guò)Google Earth COM API將Google Earth嵌入到本系統(tǒng)中作為地理信息系統(tǒng),以KML文件為媒介實(shí)現(xiàn)航跡可視化,使得人機(jī)交互更為容易。

        1.5 系統(tǒng)工作流程

        ADS-B信號(hào)實(shí)時(shí)生成軟件系統(tǒng)流程如圖2所示,該軟件能夠?qū)崟r(shí)完成4個(gè)通道ADS-B數(shù)字中頻信號(hào)的生成與存盤,后續(xù)使用DA卡把生成的4個(gè)通道數(shù)字中頻信號(hào)回放為4路模擬中頻信號(hào),經(jīng)過(guò)上變頻器將模擬中頻信號(hào)上變頻為1090 MHz的射頻信號(hào)。

        圖2 ADS-B信號(hào)實(shí)時(shí)生成軟件系統(tǒng)流程

        2 關(guān)鍵模塊實(shí)現(xiàn)方法

        2.1 多普勒頻移與功率模擬

        飛機(jī)距離接收機(jī)的遠(yuǎn)近會(huì)影響飛機(jī)廣播的ADS-B信號(hào)到達(dá)接收機(jī)天線端的功率大小,為了模擬接收機(jī)天線覆蓋范圍內(nèi)不同距離的飛機(jī)發(fā)出的ADS-B信號(hào),本文設(shè)計(jì)的ADS-B信號(hào)模擬軟件可以調(diào)節(jié)信號(hào)的發(fā)射功率。在移動(dòng)通信中特別是高速運(yùn)動(dòng)狀態(tài)下,發(fā)射端與接收端之間徑向速度的改變會(huì)使天線接收的信號(hào)頻率發(fā)生變化,稱為多普勒效應(yīng)[4],多普勒效應(yīng)引起的頻移稱為多普勒頻移。飛機(jī)與星載ADS-B接收機(jī)的相對(duì)速度很大,導(dǎo)致信號(hào)的多普勒頻移較明顯,因此需要對(duì)ADS-B信號(hào)的多普勒頻移進(jìn)行模擬[5]。

        2.1.1 直接數(shù)字式頻率合成器

        直接數(shù)字式頻率合成器(direct digital synthesizer)的英文縮寫為DDS,DDS技術(shù)是一種經(jīng)典的頻率合成方法。由于DDS技術(shù)采用全數(shù)字化實(shí)現(xiàn),便于集成,且性能良好,DDS設(shè)備日益受到重視,在通信領(lǐng)域中已得到廣泛的應(yīng)用[6]。本文中信號(hào)功率與頻偏的模擬通過(guò)DDS來(lái)實(shí)現(xiàn)。

        DDS由相位累加器、正弦ROM表、DA轉(zhuǎn)換器及低通濾波器構(gòu)成。在時(shí)鐘脈沖的控制下,相位累加器以頻率控制字K為步長(zhǎng)進(jìn)行累加得到相應(yīng)的相碼,相碼尋址ROM查找表進(jìn)行相碼-幅碼變換輸出不同的幅度編碼,再經(jīng)過(guò)DA轉(zhuǎn)換器得到對(duì)應(yīng)的階梯波,最后經(jīng)低通波器進(jìn)行濾波平滑,得到受頻率控制字控制的連續(xù)變化的輸出波形。DDS各個(gè)變量之間的數(shù)學(xué)關(guān)系如下

        (1)

        (2)

        式中:fout為待生成的信號(hào)頻率,fclk為時(shí)鐘頻率,N為相位累加器的位寬,K為對(duì)應(yīng)fout的頻率控制字,Δf為頻率分辨率。本文中fclk為80 MHz,N設(shè)定為28,由式(2)可知Δf為0.298 Hz。

        為了避免ROM查找表耗費(fèi)存儲(chǔ)資源過(guò)多的問(wèn)題,將相位累加器的高10位用于尋址ROM查找表,這樣ROM查找表也只需要10位就可以存儲(chǔ)正弦波一個(gè)周期的信息。

        2.1.2 多普勒頻移模擬

        本文中的頻移以10 MHz為中心頻率,故由式(1)可以得出10 MHz的頻率控制字K10MHz,引入KDpl作為多普勒頻移的頻率控制字,各變量之間的數(shù)學(xué)關(guān)系如下

        (3)

        (4)

        式中:fDpl為多普勒頻移,軟件執(zhí)行過(guò)程中把通過(guò)真實(shí)頻移或固定頻移方式模擬的多普勒頻移傳遞給fDpl,將fDpl代入到式(4)可得出KDpl。DDS的相位累加器在時(shí)鐘脈沖的驅(qū)動(dòng)下以K10MHz+KDpl的步長(zhǎng)進(jìn)行累加,當(dāng)相位累加器累加滿時(shí)就完成了一個(gè)周期動(dòng)作,該周期對(duì)應(yīng)的頻率就是疊加上多普勒頻移的信號(hào)頻率。

        通過(guò)上述方法可以模擬出由飛機(jī)與接收機(jī)相對(duì)速度導(dǎo)致的多普勒頻移,多普勒頻移模擬關(guān)鍵代碼如下:

        short Amp_V=GetAmpDat(Amp_dBm);

        int tmp1,tmp;

        shift_r=phaAddWidth-10;

        phase_inc_Dpl=round(DopplerShift*phase_inc_1 Hz);

        phase_adder=0;

        for(int i=0;i

        {

        phase_adder=phase_adder+phase_inc_10MHz+phase_inc_Dpl;

        tmp1=round(phase_adder/(pow(2,shift_r)));

        tmp=tmp1%1024;

        Sin_out[i]=Amp_V*Sin_ROM[tmp];

        }

        2.1.3 功率模擬

        真實(shí)功率模擬方式是通過(guò)建立地空通信鏈路損耗模型來(lái)實(shí)現(xiàn)信號(hào)功率模擬,根據(jù)地空通信鏈路損耗公式可以計(jì)算信號(hào)到達(dá)接收機(jī)天線端功率值

        Pr=PT+GT+GR-Ld-Ls

        (5)

        式中:Pr(單位dBm)是ADS-B接收機(jī)接收到的信號(hào)功率值,PT(單位dBm)是信號(hào)發(fā)射功率,GT是發(fā)射天線增益,設(shè)定為3 dB;GR是接收天線增益,設(shè)為8 dB;Ld(單位dB)是自由空間傳播損耗,Ls是大氣、云、雨、霧吸收損耗,此外,發(fā)射天線、接收天線損耗設(shè)為6 dB。

        對(duì)于自由空間損耗Ld,有公式

        Ld=32.44+20lgd+20lgf

        (6)

        d(單位km)表示發(fā)射天線與接收天線的距離,f(單位MHz)表示載波頻率,這里取1090 MHz。這樣就實(shí)現(xiàn)在軟件中根據(jù)飛機(jī)與接收機(jī)的距離,模擬出信號(hào)經(jīng)衰減后到達(dá)接收機(jī)的功率大小。

        ADS-B信號(hào)實(shí)時(shí)生成軟件生成的數(shù)字中頻信號(hào)最終要通過(guò)DA卡將其回放為模擬中頻信號(hào)。數(shù)字中頻信號(hào)的存放格式由DA卡決定,以8個(gè)通道為例,從通道1到通道8,每通道依次存放8個(gè)點(diǎn)(short類型)。DA卡中頻數(shù)據(jù)格式如圖3所示。

        圖3 DA卡中頻數(shù)據(jù)格式

        圖3中每個(gè)點(diǎn)都是一個(gè)short類型的數(shù)值,該數(shù)值越大對(duì)應(yīng)回放后的電壓越高。建立分貝毫瓦到電壓的映射表,使用真實(shí)功率或者固定功率方式模擬的功率值通過(guò)查表的方式可以得到一個(gè)介于-32767~32767之間short類型的數(shù)值,2.1.2小節(jié)代碼段中Amp_V即為查表后的數(shù)值,該數(shù)值對(duì)應(yīng)經(jīng)DA卡回放后ADS-B模擬中頻信號(hào)的電壓值。

        2.2 中頻信號(hào)生成

        軟件首先生成每駕飛機(jī)的航跡數(shù)據(jù),包括空中位置、地面位置、空中速度、飛行器身份和類型、飛行器運(yùn)行狀況、目標(biāo)狀況與狀態(tài)、測(cè)試數(shù)據(jù)共7種類型的數(shù)據(jù)以及飛機(jī)當(dāng)前發(fā)射信號(hào)的功率與頻移,并將其存儲(chǔ)到每駕飛機(jī)的航跡數(shù)據(jù)結(jié)構(gòu)體中。根據(jù)RTCA-DO260B中規(guī)定的各種報(bào)文的編碼方法,將以上7種數(shù)據(jù)編碼為對(duì)應(yīng)的7種ADS-B報(bào)文。

        一幀基帶ADS-B信號(hào)的長(zhǎng)度為120 bit,包括由4個(gè)前導(dǎo)脈沖構(gòu)成的8 bit報(bào)頭和112 bit的數(shù)據(jù)域[7]。4個(gè)前導(dǎo)脈沖時(shí)間起點(diǎn)分別為0.0 μs、1.0 μs、3.5 μs、4.5 μs,每個(gè)脈沖持續(xù)時(shí)長(zhǎng)為0.5 μs。數(shù)據(jù)位采用脈沖位置調(diào)制,每個(gè)碼元的持續(xù)時(shí)長(zhǎng)為1 μs。在1 μs碼元時(shí)長(zhǎng)內(nèi)若前0.5 μs為脈沖,后0.5 μs為零電平,表示碼元為1,若前0.5 μs為零電平,后0.5 μs為脈沖,表示碼元為0,112個(gè)碼元構(gòu)成一條ADS-B報(bào)文。由一幀ADS-B基帶信號(hào)生成中頻信號(hào)程序流程如圖4所示。

        圖4 生成一條ADS-B中頻信號(hào)程序流程

        2.3 CUDA加速

        基于通用計(jì)算機(jī)平臺(tái)的ADS-B信號(hào)源具有較好的靈活性與可擴(kuò)展性等優(yōu)點(diǎn),但是在CPU上串行執(zhí)行的程序運(yùn)行速度太慢,特別是在數(shù)據(jù)量比較大的場(chǎng)景下這種問(wèn)題更加明顯[8]。CUDA是NVIDIA公司推出的一種通用并行計(jì)算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問(wèn)題[9]。文中將耗時(shí)較長(zhǎng)的部分利用CUDA技術(shù)在GPU上并行化,實(shí)現(xiàn)ADS-B中頻信號(hào)生成與存盤的實(shí)時(shí)性。

        ADS-B信號(hào)實(shí)時(shí)生成軟件中耗時(shí)最多的是信號(hào)調(diào)制和寫磁盤部分,其中信號(hào)調(diào)制部分主要是數(shù)據(jù)的搬移,屬于數(shù)據(jù)密集型操作,所以對(duì)這部分進(jìn)行數(shù)據(jù)搬移優(yōu)化。首先將生成4個(gè)通道的ADS-B數(shù)據(jù)分別存儲(chǔ)在4個(gè)長(zhǎng)為80000000的數(shù)組中,之后將4個(gè)數(shù)組的數(shù)據(jù)按照DA卡回放格式搬移到一個(gè)數(shù)組中用來(lái)寫到磁盤。采用CPU完成這項(xiàng)工作時(shí),需要執(zhí)行80000000*4個(gè)數(shù)據(jù)搬移操作,這種方式耗時(shí)長(zhǎng),無(wú)法達(dá)到實(shí)時(shí)生成信號(hào)的要求。

        采用CUDA編程對(duì)上面數(shù)據(jù)搬移部分進(jìn)行優(yōu)化,使用GPU強(qiáng)大的并行能力來(lái)加速程序的執(zhí)行。具體步驟如下:

        (1)分配顯存空間;

        (2)將主機(jī)端生成的1 s時(shí)長(zhǎng)4個(gè)通道的ADS-B信號(hào)存儲(chǔ)到顯存空間;

        (3)配置并啟動(dòng)核函數(shù),將4個(gè)通道的ADS-B信號(hào)按照DA卡讀數(shù)據(jù)格式搬移到一個(gè)緩沖區(qū)中;

        (4)將顯卡緩沖區(qū)中搬移后的數(shù)據(jù)拷貝到主機(jī)端寫磁盤緩沖區(qū)中。

        主機(jī)端與設(shè)備端交換的數(shù)據(jù)量比較大導(dǎo)致拷貝占用的時(shí)間比較長(zhǎng)。CUDA運(yùn)行時(shí)提供了cudaHostAlloc()函數(shù)分配頁(yè)鎖定內(nèi)存,GPU可以直接與主機(jī)端的物理內(nèi)存交換數(shù)據(jù),使拷貝操作比可分頁(yè)內(nèi)存性能高2倍,頁(yè)鎖定內(nèi)存使用cudaFreeHost()進(jìn)行內(nèi)存釋放。

        2.4 多線程與乒乓操作

        寫磁盤部分采用多線程和乒乓操作技術(shù)實(shí)現(xiàn),生成當(dāng)前秒數(shù)據(jù)的同時(shí),往磁盤寫上1 s已經(jīng)生成好的數(shù)據(jù),這樣就利用了生成數(shù)據(jù)與寫磁盤二者中耗時(shí)較長(zhǎng)的時(shí)間隱藏了耗時(shí)較短的那部分時(shí)間,提升軟件工作的速度。乒乓操作是一種常用于數(shù)據(jù)流控制的處理方法,特點(diǎn)是創(chuàng)建“緩沖區(qū)1”和“緩沖區(qū)2”兩個(gè)緩沖區(qū),通過(guò)輸入數(shù)據(jù)選擇單元和輸出數(shù)據(jù)選擇單元按節(jié)拍、相互配合的切換,將經(jīng)過(guò)緩沖的數(shù)據(jù)流不斷傳輸?shù)綌?shù)據(jù)流運(yùn)算處理模塊[10]。

        通過(guò)創(chuàng)建WriteDisk1與WriteDisk2兩個(gè)線程分別將“緩沖區(qū)1”與“緩沖區(qū)2”中的數(shù)據(jù)寫入到磁盤中。為了避免兩個(gè)線程在寫磁盤時(shí)同時(shí)操作文件指針而導(dǎo)致數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題[11],本文采用互斥鎖來(lái)完成兩個(gè)線程間的通信[12,13]。當(dāng)WriteDisk1開始操作文件指針時(shí),會(huì)上鎖避免其它線程對(duì)該文件指針的操作,WriteDisk1寫磁盤結(jié)束后開鎖釋放對(duì)文件指針的使用權(quán);同理,當(dāng)WriteDisk2開始操作文件指針時(shí),會(huì)上鎖避免其它線程對(duì)該文件指針的操作,WriteDisk2寫磁盤結(jié)束后開鎖釋放對(duì)文件指針的使用權(quán)。

        在本文中按1 s為單位生成ADS-B信號(hào),故乒乓操作中的緩沖周期設(shè)定為1 s。生成4個(gè)通道數(shù)據(jù)時(shí),每通道數(shù)據(jù)長(zhǎng)度是80000000,故“緩沖區(qū)1”和“緩沖區(qū)2”的長(zhǎng)度是80000000*4。在第1秒時(shí),數(shù)據(jù)生成完畢后,顯卡將當(dāng)前1 s的4個(gè)通道數(shù)據(jù)通過(guò)并行的方式整合到顯存中一個(gè)長(zhǎng)度為80000000*4的數(shù)組中,通過(guò)拷貝函數(shù)將顯存內(nèi)數(shù)據(jù)拷貝到主機(jī)內(nèi)存“緩沖區(qū)1”中并啟動(dòng)WriteDisk1將“緩沖區(qū)1”中的數(shù)據(jù)寫到磁盤,在WriteDisk1進(jìn)行寫磁盤時(shí),主線程開始生成第2秒數(shù)據(jù),數(shù)據(jù)生成完畢后,通過(guò)拷貝函數(shù)將顯存內(nèi)數(shù)據(jù)拷貝到主機(jī)內(nèi)存“緩沖區(qū)2”中并啟動(dòng)WriteDisk2將“緩沖區(qū)2”中的數(shù)據(jù)寫到磁盤,在WriteDisk2進(jìn)行寫磁盤時(shí),主線程開始生成第3秒數(shù)據(jù),依次循環(huán)下去。

        2.5 地圖背景與航跡顯示

        Google Earth是谷歌公司旗下的一款虛擬地球軟件,本軟件平臺(tái)使用Google Earth作為航跡顯示的地圖背景,通過(guò)調(diào)用Google Earth COM API將Google Earth嵌入進(jìn)目標(biāo)工程。使用CApplicationGE類的GetMainHwnd函數(shù)獲取Google Earth的主窗口句柄,使用CApplicationGE類的GetRenderHwnd函數(shù)獲取Google Earth的地圖窗口句柄。在分別獲取這兩個(gè)窗口句柄之后,將Google Earth的地圖窗口的父容器改變?yōu)楸拒浖闹鞔翱?,并將Google Earth的主窗口隱藏掉,實(shí)現(xiàn)了將Google Earth嵌入到本軟件平臺(tái)[14]。本軟件平臺(tái)周期性的將飛機(jī)的位置、速度、高度等信息進(jìn)行更新并寫到航跡KML文件中,周期性的對(duì)航跡KML文件進(jìn)行加載,實(shí)現(xiàn)了飛機(jī)航跡的實(shí)時(shí)更新。在每一次設(shè)置波束參數(shù)后對(duì)波束KML文件進(jìn)行更新并將其加載到Google Earth中實(shí)現(xiàn)對(duì)星載接收機(jī)天線覆蓋范圍的顯示。

        3 實(shí)驗(yàn)結(jié)果及分析

        ADS-B信號(hào)實(shí)時(shí)生成軟件實(shí)驗(yàn)平臺(tái)是Intel Xeon E5-2640 CPU的PC機(jī),GPU采用NVIDIA GeForce GTX TITAN BLACK,操作系統(tǒng)是Windows 7,開發(fā)環(huán)境是Microsoft Visual Studio 2012加裝CUDA9.0,使用MFC開發(fā)人機(jī)交互界面。

        ADS-B信號(hào)實(shí)時(shí)生成軟件界面包括參數(shù)設(shè)置菜單欄、快捷工具欄、三維顯示窗體3部分,參數(shù)設(shè)置菜單欄包括衛(wèi)星參數(shù)設(shè)置、航路參數(shù)設(shè)置、生成航跡等主要功能菜單,快捷工具欄包括開始/停止按鈕、仿真時(shí)間控件、地圖放大縮小按鈕等使用頻率較高的一些功能控件,三維顯示窗體用來(lái)顯示地圖背景、航跡等內(nèi)容。軟件啟動(dòng)界面如圖5所示。

        圖5 軟件啟動(dòng)界面

        通過(guò)ADS-B信號(hào)實(shí)時(shí)生成軟件中參數(shù)設(shè)置模塊來(lái)設(shè)置模擬參數(shù),衛(wèi)星參數(shù)設(shè)置為多波束類型,信號(hào)通道個(gè)數(shù)為4,航跡類型設(shè)置為繞圈飛行,為了方便觀察,飛機(jī)架數(shù)設(shè)置為每通道50架,內(nèi)圈外圈各25架,軟件仿真航跡效果如圖6所示。將軟件生成的ADS-B數(shù)字中頻信號(hào)經(jīng)過(guò)DA卡回放,輸出到示波器觀察信號(hào)波形如圖7所示,圖7(a)是截取的一幀完整的ADS-B信號(hào)波形,圖7(b)是幀頭局部放大,顯示結(jié)果與 2.2節(jié)中描述的ADS-B信號(hào)特征相符。

        圖6 軟件仿真航跡效果

        圖7 ADS-B信號(hào)波形截圖

        為了進(jìn)一步驗(yàn)證軟件所生成信號(hào)的準(zhǔn)確性,將所生成的ADS-B數(shù)字中頻信號(hào)經(jīng)過(guò)DA卡和上變頻器后通過(guò)天線輻射出去,使用Kinetic公司的SBS-3接收機(jī)進(jìn)行接收,經(jīng)過(guò)解碼后的航跡如圖8所示,圖中外面4個(gè)圓形航跡為ADS-B信號(hào)實(shí)時(shí)生成軟件所發(fā)信號(hào),中心的航跡為天津?yàn)I海機(jī)場(chǎng)上空真實(shí)飛機(jī)的航跡。

        圖8 SBS-3接收機(jī)接收解碼航跡

        3.1 功率與頻偏測(cè)試

        ADS-B信號(hào)是脈沖信號(hào),而頻譜分析儀無(wú)法直接對(duì)脈沖信號(hào)進(jìn)行測(cè)量,本軟件具有輸出連續(xù)波功能,可以輸出與當(dāng)前ADS-B信號(hào)相同功率與多普勒頻移的載波,這樣就可以使用頻譜分析儀測(cè)量載波的功率與頻移獲取ADS-B信號(hào)的功率與頻移。

        3.1.1 功率測(cè)試

        當(dāng)軟件設(shè)定發(fā)送功率為-60 dBm,多普勒頻移為0 Hz,輸出設(shè)定為連續(xù)波,將生成的信號(hào)經(jīng)DA卡回放后輸出到頻譜儀,頻譜儀測(cè)試功率結(jié)果如圖9所示。

        圖9 頻譜儀測(cè)試功率結(jié)果

        3.1.2 頻偏測(cè)試

        當(dāng)軟件設(shè)定發(fā)送功率為-60 dBm,多普勒頻移為1000 Hz,輸出設(shè)定為連續(xù)波,將生成的信號(hào)經(jīng)DA卡回放后輸出到頻譜儀,頻譜儀測(cè)試頻偏結(jié)果如圖10所示。

        圖10 頻譜儀測(cè)試頻偏結(jié)果

        3.2 加速比測(cè)試

        為了驗(yàn)證ADS-B信號(hào)實(shí)時(shí)生成軟件生成ADS-B信號(hào)的實(shí)時(shí)性,分別對(duì)該軟件的CPU版本與CPU+GPU異構(gòu)版本進(jìn)行測(cè)試,設(shè)定每波束模擬250架飛機(jī),仿真時(shí)長(zhǎng)設(shè)定30 s,使用計(jì)時(shí)函數(shù)計(jì)算每秒內(nèi)生成信號(hào)并存盤的耗時(shí),最后求取每秒內(nèi)生成信號(hào)并存盤耗時(shí)的平均值,比較兩種版本的軟件生成并存儲(chǔ)不同波束個(gè)數(shù)ADS-B信號(hào)每秒耗時(shí)的平均值。兩種軟件版本生成1 s數(shù)據(jù)耗時(shí)平均值對(duì)比見表1,當(dāng)波束數(shù)量大于等于2時(shí)加速比穩(wěn)定在6倍左右,當(dāng)模擬4個(gè)波束共1000架飛機(jī)時(shí),能夠在1 s內(nèi)完成當(dāng)前1 s時(shí)長(zhǎng)信號(hào)的生成與存盤,達(dá)到了實(shí)時(shí)生成ADS-B信號(hào)的要求。

        表1 兩種軟件版本耗時(shí)對(duì)比

        4 結(jié)束語(yǔ)

        本文針對(duì)當(dāng)前ADS-B信號(hào)源涉及到的硬件系統(tǒng)復(fù)雜導(dǎo)致開發(fā)周期長(zhǎng)、功能可擴(kuò)展性弱的問(wèn)題設(shè)計(jì)開發(fā)了ADS-B信號(hào)實(shí)時(shí)生成軟件。本軟件實(shí)現(xiàn)了ADS-B信號(hào)源的基本功能,一方面采用DDS技術(shù)實(shí)現(xiàn)了信號(hào)功率與多普勒頻移的模擬;另一方面通過(guò)CUDA編程和乒乓操作,實(shí)現(xiàn)了ADS-B數(shù)字中頻信號(hào)的實(shí)時(shí)生成與存儲(chǔ)。此外,通過(guò)Google Earth COM API將谷歌地球嵌入到本軟件中作為地理信息系統(tǒng),增強(qiáng)了人機(jī)交互界面的友好性。測(cè)試結(jié)果表明,通過(guò)該方法設(shè)計(jì)開發(fā)的ADS-B信號(hào)生成軟件運(yùn)行效果良好,能夠?qū)崟r(shí)生成并存儲(chǔ)ADS-B數(shù)字中頻信號(hào),為進(jìn)一步擴(kuò)展為多類型信號(hào)生成軟件平臺(tái)提供基礎(chǔ)。

        猜你喜歡
        參數(shù)設(shè)置磁盤緩沖區(qū)
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計(jì)與實(shí)現(xiàn)
        解決Windows磁盤簽名沖突
        電腦愛好者(2019年2期)2019-10-30 03:45:31
        修改磁盤屬性
        磁盤組群組及iSCSI Target設(shè)置
        創(chuàng)建VSAN群集
        蟻群算法求解TSP中的參數(shù)設(shè)置
        動(dòng)車環(huán)境下U900異頻切換參數(shù)設(shè)置探討
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        基于MATLAB仿真的井下變壓器參數(shù)設(shè)置研究
        地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
        97se色综合一区二区二区| 亚洲国产精品中文字幕日韩| 激情人妻中出中文字幕一区| 日本综合视频一区二区| 久久综合狠狠综合久久综合88| 日韩无套内射视频6| 午夜免费福利一区二区无码AV| 日韩精品视频av在线观看| 中文字幕无码中文字幕有码| 中国凸偷窥xxxx自由视频| 一区二区三区不卡在线| 蜜桃视频网址在线观看| 每日更新在线观看av| 99久久99久久精品国产片果冻| AⅤ无码精品视频| 日本免费看一区二区三区| 日本在线 | 中文| 极品美女扒开粉嫩小泬| 无码天堂在线视频| 中文字幕乱码日本亚洲一区二区| 丰满多毛的大隂户毛茸茸| 99热精品成人免费观看| 色婷婷精品国产一区二区三区| 亚洲日本国产精品久久| 99久久综合精品五月天| 99在线视频精品费观看视| 日韩精品视频av在线观看| 超碰97人人射妻| 欧美一片二片午夜福利在线快 | 三级特黄60分钟在线观看| 成人欧美一区二区三区| 国产精品无需播放器| 国产成人精品中文字幕| 国产欧美在线观看不卡| 五月婷婷俺也去开心| 精品无码人妻久久久一区二区三区| 亚洲一区亚洲二区视频在线| 一本一本久久aa综合精品| 婷婷亚洲国产成人精品性色| 中文字幕人妻av四季| 国产亚av手机在线观看|