曲長(zhǎng)文,周 強(qiáng),蘇 峰,彭書(shū)娟
(海軍航空大學(xué),山東 煙臺(tái) 264001)
信號(hào)檢測(cè)與估計(jì)[1]是研究從噪聲環(huán)境中檢測(cè)出信號(hào),并估計(jì)信號(hào)參量或信號(hào)波形的理論,是現(xiàn)代信息理論的一個(gè)重要分支,廣泛應(yīng)用于電子信息系統(tǒng)、自動(dòng)控制、模式識(shí)別、射電天文學(xué)、氣象學(xué)、地震學(xué)、生物醫(yī)學(xué)工程及航空航天系統(tǒng)工程等領(lǐng)域。
信號(hào)檢測(cè)與估計(jì)是隨機(jī)信號(hào)統(tǒng)計(jì)處理的理論和方法,是以數(shù)理統(tǒng)計(jì)中貝葉斯統(tǒng)計(jì)決策的理論和方法研究隨機(jī)信號(hào)的檢測(cè)和估計(jì)問(wèn)題。它與概率論、數(shù)理統(tǒng)計(jì)及隨機(jī)信號(hào)分析(或隨機(jī)過(guò)程)并駕齊驅(qū)地支撐著隨機(jī)現(xiàn)象規(guī)律的研究,它們共同構(gòu)成了科技工作者研究隨機(jī)現(xiàn)象的完整知識(shí)結(jié)構(gòu)。信號(hào)檢測(cè)與估計(jì)是“信息與通信工程”學(xué)科的重要基礎(chǔ)課,是電子信息工程、通信工程、電子信息科學(xué)與技術(shù)及電子科學(xué)與技術(shù)等專業(yè)的基礎(chǔ)選修課。
信號(hào)檢測(cè)與估計(jì)課程理論性強(qiáng)、概念抽象、數(shù)學(xué)公式龐雜,理論推導(dǎo)的繁多掩蓋了信號(hào)處理的過(guò)程。再加上學(xué)生的統(tǒng)計(jì)觀念不夠強(qiáng),對(duì)思考問(wèn)題的方式不適應(yīng),缺乏用統(tǒng)計(jì)方法去分析問(wèn)題、解決問(wèn)題的能力,從而導(dǎo)致學(xué)生在基本理論的理解上存在一定的困難,學(xué)生對(duì)所學(xué)內(nèi)容似懂非懂,概念模糊,適用范圍混淆,不能應(yīng)用所學(xué)知識(shí)很好地解決實(shí)際問(wèn)題。形成這種情況的原因較多,但其中一個(gè)重要的原因是:教學(xué)過(guò)程偏重概念的講解、重定理的證明及公式的運(yùn)用等方面,卻忽略了對(duì)其實(shí)用性方面的實(shí)踐教學(xué)。
為了解決信號(hào)檢測(cè)與估計(jì)教學(xué)中實(shí)踐教學(xué)偏弱的問(wèn)題,設(shè)計(jì)開(kāi)發(fā)用于輔助教學(xué)、開(kāi)展實(shí)驗(yàn)和課后自學(xué)的信號(hào)檢測(cè)與估計(jì)仿真軟件是十分必要的。
信號(hào)檢測(cè)與估計(jì)仿真軟件作為課堂教學(xué)演示軟件,解決了課堂教學(xué)僅限于理論講解的困境,使課堂教學(xué)生動(dòng)而豐富,使理論分析與應(yīng)用高度融合,改變了形式單一的教學(xué)模式。該軟件作為實(shí)驗(yàn)仿真平臺(tái),使信號(hào)檢測(cè)與估計(jì)的實(shí)驗(yàn)教學(xué)[2-6]不受時(shí)間和場(chǎng)所的限制,解決了該課程學(xué)時(shí)少和開(kāi)展實(shí)驗(yàn)教學(xué)的矛盾。該軟件作為課后自學(xué)輔助軟件,豐富了學(xué)生課后自學(xué)的手段,使課后作業(yè)與應(yīng)用密切結(jié)合,調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性。因此,該軟件為提高信號(hào)檢測(cè)與估計(jì)課程的教學(xué)效果奠定了基礎(chǔ),對(duì)于提高教學(xué)質(zhì)量是十分必要的。
MATLAB是由美國(guó)Math Works公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的科技計(jì)算環(huán)境[7-8]。其強(qiáng)大的運(yùn)算功能、繪圖功能和圖形用戶界面(graphical user interface,GUI)設(shè)計(jì)功能[9-13],使之成為設(shè)計(jì)開(kāi)發(fā)交互式輔助教學(xué)軟件的有力工具。它還具有將程序編譯成exe獨(dú)立可執(zhí)行程序的功能,方便程序的發(fā)布與共享。
信號(hào)檢測(cè)與估計(jì)仿真軟件采用模塊化結(jié)構(gòu)的軟件設(shè)計(jì)方法,利用MATLAB開(kāi)發(fā)平臺(tái),編寫(xiě)信號(hào)檢測(cè)與估計(jì)內(nèi)容的程序,模擬信號(hào)的產(chǎn)生、檢測(cè)與估計(jì)過(guò)程、性能評(píng)價(jià),并將MATLAB程序編譯成exe獨(dú)立可執(zhí)行程序,最后利用安裝包制作工具打包生成安裝軟件。
信號(hào)檢測(cè)與估計(jì)的內(nèi)容主要包括匹配濾波、信號(hào)檢測(cè)及信號(hào)估計(jì)3個(gè)方面。信號(hào)檢測(cè)包括參量檢測(cè)和非參量檢測(cè);信號(hào)估計(jì)包括信號(hào)參量估計(jì)和信號(hào)波形估計(jì)。
根據(jù)信號(hào)檢測(cè)與估計(jì)的內(nèi)容,仿真軟件包括主控模塊、調(diào)度模塊、匹配濾波器模塊、信號(hào)檢測(cè)模塊、信號(hào)估計(jì)模塊、幫助模塊和編程說(shuō)明模塊7個(gè)模塊,如圖1所示。
圖1 信號(hào)檢測(cè)與估計(jì)仿真軟件結(jié)構(gòu)框圖
主控模塊是用戶操作軟件的界面,其主要功能是接收用戶傳來(lái)的操作信息,并根據(jù)用戶操作信息通過(guò)調(diào)度模塊調(diào)用匹配濾波器模塊、信號(hào)檢測(cè)模塊、信號(hào)估計(jì)模塊、幫助模塊和編程說(shuō)明模塊。它包括信號(hào)檢測(cè)與估計(jì)仿真軟件開(kāi)始界面、主界面、結(jié)束界面、匹配濾波器界面、信號(hào)檢測(cè)界面、參量檢測(cè)界面、參量檢測(cè)仿真界面、理論檢測(cè)特性曲線界面、序列檢測(cè)界面、非參量檢測(cè)界面、信號(hào)估計(jì)界面、信號(hào)參量估計(jì)界面、信號(hào)波形估計(jì)界面、維納濾波界面和卡爾曼濾波界面。
調(diào)度模塊是主控模塊與匹配濾波器模塊、信號(hào)檢測(cè)模塊、信號(hào)估計(jì)模塊、幫助模塊和編程說(shuō)明模塊,以及模塊與子模塊之間調(diào)用的程序模塊,其主要功能是根據(jù)主控模塊接收的用戶操作信息,調(diào)用各種模塊與子模塊。
1)匹配濾波器模塊包括矩形脈沖匹配濾波器、正弦信號(hào)匹配濾波器、線性調(diào)頻信號(hào)匹配濾波器3個(gè)子模塊。
2)信號(hào)檢測(cè)模塊包括參量檢測(cè)和非參量檢測(cè)2個(gè)子模塊。參量檢測(cè)模塊包括參量檢測(cè)仿真、理論檢測(cè)特性曲線和序列檢測(cè)3個(gè)子模塊;非參量檢測(cè)模塊包括符號(hào)檢測(cè)和秩檢測(cè)2個(gè)子模塊。
3)信號(hào)估計(jì)模塊包括信號(hào)參量估計(jì)和信號(hào)波形估計(jì)2個(gè)子模塊。信號(hào)參量估計(jì)模塊包括正弦信號(hào)參量最大似然估計(jì)的多次模擬試驗(yàn)、正弦信號(hào)參量最大似然估計(jì)的樣本數(shù)變化試驗(yàn)、勻加速直線運(yùn)動(dòng)參數(shù)的最大似然估計(jì)、正弦信號(hào)的線性最小均方誤差估計(jì)、勻加速直線運(yùn)動(dòng)參數(shù)的最小二乘估計(jì)、正弦信號(hào)的最小二乘估計(jì)6個(gè)子模塊;信號(hào)波形估計(jì)模塊包括維納濾波和卡爾曼濾波2個(gè)子模塊。
4)幫助模塊包括軟件說(shuō)明書(shū)和幫助2個(gè)文件。
5)編程說(shuō)明模塊只包括編程說(shuō)明文件。
為了使仿真內(nèi)容與課程內(nèi)容一致,信號(hào)檢測(cè)與估計(jì)仿真軟件在采用模塊化結(jié)構(gòu)的基礎(chǔ)上,采用層次結(jié)構(gòu)設(shè)計(jì),以利于輔助教學(xué)。該軟件的各類用戶界面采用GUI設(shè)計(jì),使操作界面友好,方便反復(fù)操作,提高輔助教學(xué)的交互效果。
采用WinCHM軟件制作chm格式的幫助文件和編程說(shuō)明文件,使在使用仿真軟件的過(guò)程中可以非常方便地講解或查閱相應(yīng)的基本概念、原理、公式、編程說(shuō)明及使用說(shuō)明,從而達(dá)到輔助教學(xué)的目的。
軟件的實(shí)現(xiàn)按以下順序依次完成:主要功能模塊—主控模塊—調(diào)度模塊—幫助和編程說(shuō)明模塊—軟件封裝。
主要功能模塊是指體現(xiàn)信號(hào)檢測(cè)與估計(jì)內(nèi)容的匹配濾波器模塊、信號(hào)檢測(cè)模塊和信號(hào)估計(jì)模塊。主要功能模塊中各子模塊的內(nèi)容和分析過(guò)程不同,但其設(shè)計(jì)思路和一般實(shí)現(xiàn)方法基本類似。
2.1.1 匹配濾波器
在輸入為確定信號(hào)加平穩(wěn)噪聲的情況下,使輸出信噪比達(dá)到最大的線性系統(tǒng)稱為匹配濾波器。
假設(shè)確定信號(hào)加平穩(wěn)噪聲的輸入信號(hào)模型為:
x(t)=s(t)+n(t)
(1)
式中,s(t)為確定信號(hào),并存在于時(shí)間間隔[0,T]內(nèi);n(t)為平穩(wěn)噪聲,其均值為0,自相關(guān)函數(shù)為Rn(τ)。
設(shè)h0(t)是匹配濾波器的沖激響應(yīng),則匹配濾波器方程為:
(2)
匹配濾波器的最大輸出信噪比為:
(3)
設(shè)白噪聲的功率譜密度為Sn(ω)=N0/2,自相關(guān)函數(shù)為Rn(τ)=(N0/2)δ(τ)。則匹配濾波器沖激響應(yīng)為:
(4)
輸出信噪比為:
(5)
式中,E為輸入信號(hào)能量。
白噪聲背景下匹配濾波器在時(shí)刻T的輸出為:
(6)
匹配濾波器傳輸函數(shù)為:
(7)
式中,K=2/N0。
2.1.2 信號(hào)檢測(cè)
設(shè)高斯白噪聲中二元確知信號(hào)的兩種假設(shè)為:
(8)
設(shè)觀測(cè)信號(hào)x(t)的似然函數(shù)為:
(9)
(10)
式中,F(xiàn)為一常數(shù)。
觀測(cè)信號(hào)x(t)的似然比為:
(11)
似然比檢測(cè)判決式為:
(12)
式中,Λ0為似然比門(mén)限,取決于所選用的最佳準(zhǔn)則。
經(jīng)化簡(jiǎn),似然比檢測(cè)判決式又可寫(xiě)為:
(13)
式中,β為判決門(mén)限,其表示式為:
(14)
虛警概率為:
(15)
檢測(cè)概率為:
(16)
2.1.3 信號(hào)估計(jì)
設(shè)信息傳輸系統(tǒng)中發(fā)送設(shè)備發(fā)送的信號(hào)為s(t,θ),信道的加性噪聲為n(t),在觀測(cè)時(shí)間(0,T)內(nèi),接收設(shè)備的接收信號(hào)為:
x(t)=s(t,θ)+n(t),0≤t≤T
(17)
式中,θ為單個(gè)被估計(jì)參量。信道噪聲n(t)為零均值高斯白噪聲。
最大似然估計(jì)方程為:
(18)
由于主要功能模塊的內(nèi)容多、分類層次多,首先需要按照分類層次,將主要功能模塊的內(nèi)容分解到最底層的功能模塊。例如,卡爾曼濾波模塊屬于信號(hào)波形估計(jì)模塊,而信號(hào)波形估計(jì)模塊屬于信號(hào)估計(jì)模塊??柭鼮V波模塊功能包括用卡爾曼濾波估計(jì)室內(nèi)溫度、用卡爾曼濾波估計(jì)AR(4)模型信號(hào)、用卡爾曼濾波估計(jì)二維勻加速運(yùn)動(dòng)目標(biāo)的狀態(tài)3個(gè)子模塊。估計(jì)室內(nèi)溫度用標(biāo)量卡爾曼濾波;估計(jì)AR(4)模型信號(hào)和二維勻加速運(yùn)動(dòng)目標(biāo)的狀態(tài)用向量卡爾曼濾波。其次,根據(jù)各個(gè)最底層功能模塊的原理,編寫(xiě)相應(yīng)MATLAB程序并調(diào)試成功。最后,設(shè)計(jì)并生成GUI程序,并將最底層功能模塊的程序嵌入到GUI程序的回調(diào)函數(shù)callback中,從而實(shí)現(xiàn)最底層功能模塊的GUI程序。
MATLAB的GUI設(shè)計(jì)方法有使用圖形界面設(shè)計(jì)環(huán)境(GUIDE)和通過(guò)m文件編程建立GUI兩種。
GUIDE是可視化快速的生成GUI界面的編輯工具,極大地簡(jiǎn)化了GUI設(shè)計(jì)和生成的過(guò)程,適合交互性要求高和易反復(fù)操作運(yùn)行的最底層功能模塊的GUI設(shè)計(jì)和生成。如利用GUIDE設(shè)計(jì)生成的用卡爾曼濾波估計(jì)室內(nèi)溫度的GUI交互式操作界面,如圖2所示。
圖2 用卡爾曼濾波估計(jì)室內(nèi)溫度界面
主控模塊主要是接收用戶傳來(lái)的操作信息,通過(guò)調(diào)度模塊調(diào)用其他模塊。它主要是調(diào)用其他模塊及其層次關(guān)系和最底層功能模塊的圖形界面,不需要反復(fù)改變輸入?yún)?shù)和輸出結(jié)果,只需要操作方便的調(diào)用關(guān)系。因此,主控模塊所包含的操作界面采用m文件編程的方法來(lái)設(shè)計(jì)生成GUI。通過(guò)m文件編程建立GUI,只需要m文件,不需要fig文件,修改方便,易于嵌入外部圖片,使圖形界面美觀。如利用m文件編程方法設(shè)計(jì)生成的信號(hào)檢測(cè)與估計(jì)仿真軟件主界面,如圖3所示。
圖3 信號(hào)檢測(cè)與估計(jì)仿真軟件主界面
為了減少模塊之間的相互影響,修改、升級(jí)和調(diào)試方便,使各個(gè)模塊保持高度的獨(dú)立性,各個(gè)模塊之間的相互調(diào)用和關(guān)閉通過(guò)專用的調(diào)用程序來(lái)完成,所有的調(diào)用程序組成調(diào)度模塊。編寫(xiě)調(diào)用程序需要注意GUI、函數(shù)及控件之間的數(shù)據(jù)傳遞,否則會(huì)引起調(diào)用失敗或數(shù)據(jù)傳遞不正確。在數(shù)據(jù)傳遞時(shí),盡量少用全局變量,全局變量會(huì)破壞程序的封裝性。在所有模塊中,盡可能保證變量名稱的唯一性,用完的變量盡可能釋放。需要注意MATLAB對(duì)圖形對(duì)象變量的定義方式和層次關(guān)系,否則關(guān)閉圖形或窗口時(shí)會(huì)出現(xiàn)紊亂。
幫助和編程說(shuō)明模塊是方便有效使用仿真軟件和提高輔助教學(xué)效果的保障,其特點(diǎn)應(yīng)該是條目清晰、方便調(diào)用和查找其中的內(nèi)容,故采用chm格式的幫助文件和編程說(shuō)明文件。將仿真軟件的使用、相關(guān)原理和編程說(shuō)明等內(nèi)容按照分類和層次關(guān)系,使用Microsoft Office Word軟件形成相應(yīng)的htm格式文檔。然后,采用WinCHM軟件將htm格式的文檔導(dǎo)入并構(gòu)建成chm格式的幫助文件和編程說(shuō)明文件。
將MATLAB程序編譯成exe獨(dú)立可執(zhí)行程序,可以用MATLAB自帶的Lcc編譯器,也可使用VC++6.0編譯器或其他版本VC++編譯器。
將MATLAB程序編譯成exe獨(dú)立可執(zhí)行程序的方法有兩種:一種是使用Deployment工具(在MATLAB的命令窗口中輸入deploytool即可調(diào)出該工具);另一種是使用編譯命令mcc。在此以編譯命令mcc方法為例說(shuō)明。
設(shè)置對(duì)MATLAB程序進(jìn)行編譯的編譯器:
在MATLAB的命令窗口中輸入:mbuild-setup;根據(jù)提示選擇合適的編譯器。
對(duì)MATLAB程序進(jìn)行編譯并生成exe程序:
在MATLAB的命令窗口中輸入:mcc-e a_export.m;并在當(dāng)前路徑下,編譯生成若干C/C++源碼及exe程序。
在確保生成的exe程序可以運(yùn)行的情況下,將生成的exe程序、MCRInstaller.exe、幫助文檔及軟件說(shuō)明書(shū)等相關(guān)資源文件用安裝包制作工具(如setup factory)打包,生成一個(gè)安裝文件,向外發(fā)布。
在沒(méi)有MATLAB的計(jì)算機(jī)上,需要先安裝MCRInstaller.exe軟件,才可以運(yùn)行生成的exe程序。運(yùn)行MCRInstaller.exe軟件的目的是安裝MATLAB運(yùn)行環(huán)境。如果計(jì)算機(jī)上MATLAB的版本與生成exe程序的版本不同,也需要先安裝該軟件。此軟件可以在MATLAB的安裝目錄里搜索到。
信號(hào)檢測(cè)與估計(jì)仿真軟件用于輔助教學(xué),可以使教學(xué)內(nèi)容更加直觀,統(tǒng)計(jì)處理過(guò)程形象化,從而加深學(xué)生對(duì)理論知識(shí)的理解,提高教學(xué)效率;仿真軟件的交互式操作特點(diǎn),使學(xué)生融入解決實(shí)際問(wèn)題中,可以激發(fā)學(xué)生學(xué)習(xí)興趣和主動(dòng)性,促進(jìn)學(xué)生對(duì)理論知識(shí)的掌握,加強(qiáng)統(tǒng)計(jì)觀念的培養(yǎng),提高教學(xué)質(zhì)量。信號(hào)檢測(cè)與估計(jì)仿真軟件不僅有助于信號(hào)檢測(cè)與估計(jì)課程的教學(xué),提高教學(xué)效率和質(zhì)量,更有助于促進(jìn)學(xué)生素質(zhì)的培養(yǎng),提高解決實(shí)際問(wèn)題的能力和自主創(chuàng)新能力。
實(shí)驗(yàn)科學(xué)與技術(shù)2018年4期