李 華,王 浩,潘路平,何萬昊
(1.中電科航空電子有限公司,四川 成都 611731;2.電子科技大學(xué),四川 成都 611730)
提升國產(chǎn)機載電子產(chǎn)品的裝機率,確保航電產(chǎn)品供應(yīng)自主可控,是我國大飛機計劃的主要戰(zhàn)略目標(biāo)之一。民航機載選擇呼叫系統(tǒng)(Airborne Selcal System)是機載通信系統(tǒng)和應(yīng)急系統(tǒng)的重要組成部分,功能是向機組人員提供來自地面通信站點的呼叫提示,以類似于“來電提醒”的形式向被呼機組警告接收地面呼叫,從而建立地面與空域內(nèi)指定飛機的點對點通信。
目前,絕大多數(shù)在服役民航客機仍然配置的是模擬電路選呼系統(tǒng),技術(shù)成熟、功能完善且性能穩(wěn)定,但體積較大且功耗較高,與新型客機航電高集成化的需求不匹配。自研大型民機航電設(shè)備在我國尚處于起步階段,而緊跟全球民機航電數(shù)字化、模塊化、綜合化趨勢是必然的研制考量。李鋒設(shè)計了基于DSP 的機載選呼解碼器[1],通過數(shù)字計算芯片內(nèi)嵌選呼程序的方式,一定程度上實現(xiàn)了選呼譯碼器集成,為進(jìn)一步深入到芯片化層次奠定了基礎(chǔ);王海麗等設(shè)計了基于Goertzel 算法的選擇呼叫譯碼電路[2],實現(xiàn)了Goertzel 算法的應(yīng)用,初衷是為地勤人員設(shè)計一款選呼設(shè)備維護(hù)訓(xùn)練裝置,未對照機載設(shè)備研制的適航標(biāo)準(zhǔn)或工業(yè)規(guī)范。
作為比ASIC 芯片開發(fā)靈活度更高的可編程邏輯器件,F(xiàn)PGA 可將硬件設(shè)計軟件化,是將原由分立常規(guī)模擬電路組成的選呼設(shè)備壓縮集成為一塊電路板甚至一塊芯片的最佳選擇。Goertzel 算法是一種快速DFT 算法,可高效解析特定頻點的傅里葉分量。本文提出了一種選呼譯碼器芯片模塊設(shè)計的方法,采用Goertzel 算法,實現(xiàn)了將譯碼邏輯與高速FPGA 芯片設(shè)計相結(jié)合從而使新設(shè)計的選呼譯碼模塊具有體積小、成本低、功耗低、效率高以及性能穩(wěn)定等優(yōu)點,預(yù)期可替代原傳統(tǒng)選呼譯碼器設(shè)備。
機載選呼系統(tǒng)由選擇呼叫譯碼器(以下簡稱選呼譯碼器)、選擇呼叫程序開關(guān)組件、選呼音響警告繼電器和選呼控制面板組成[3],如圖1 所示。選呼譯碼器是選呼系統(tǒng)的核心設(shè)備,通過解算地面發(fā)出的HF 或VHF 信號中攜帶的特定音頻信號,轉(zhuǎn)化成由4 個字母組成的飛機選呼編碼,實現(xiàn)地空一對一通信。
HF 或VHF 接收機接收地面通信站發(fā)出的廣播信號,選呼譯碼器解析該選呼碼發(fā)送至選呼程序開關(guān)組建中設(shè)置的本機當(dāng)時選呼碼匹配。如果匹配成功,譯碼器會送出一個離散的呼叫位置信號到選擇呼叫控制面板,并觸發(fā)選呼音響警告繼電器,使其向機組發(fā)出應(yīng)答提示。

圖1 機載選呼系統(tǒng)
選呼譯碼器的本質(zhì)是雙音多頻(Dual-Tone Multi-Frequency,DTMF)信號解碼器。ARINC714-6 詳細(xì)介紹了選呼編碼規(guī)則[4]。每架航班的選呼編碼都由4 個英文字母組成,每個英文字母對應(yīng)一個音頻頻率,如表1 所示??捎门c設(shè)置選呼編碼的字母有16 個,選呼碼最大容量為10 920,即10 920 架本地空域飛機同時被呼叫。地面通信站(如塔臺)要呼叫空域內(nèi)某飛機時,將該機編碼音頻以兩組雙音多頻信號(DTMF)的形式加載到HF 或VHF 上,飛機收到信號后經(jīng)過譯碼匹配確認(rèn)是否呼叫本機。

表1 選呼編碼字母及其頻率
音頻加載時需要遵守一定的規(guī)則,可以視為一種音頻協(xié)議,如圖2 所示。每個選呼信號包含兩個DTMF 信號,每個DTMF 信號又包含兩個字母音頻。每個DTMF 信號持續(xù)時間為(1±0.25)s,兩個DTMF 信號之間的間隔時間為(0.2±0.1)s。每組選呼信號之間的間隔應(yīng)遠(yuǎn)大于(0.2±0.1)s,即如圖3 中的AC-BD、CA-BD、AC-DB、CA-DB 被視為與AB-CD 為同一編碼。

圖2 選呼音頻協(xié)議格式
選呼譯碼器的解算對象是DTMF 信號,包含有特定的頻率。Goertzel 算法的主要功能是可迅速準(zhǔn)確求得DTMF 信號的DFT值[5]。Goertzel 算法本質(zhì)上是一個二階IIR 帶通濾波器,傳遞函數(shù)為:

該濾波器對應(yīng)的傳遞函數(shù)框圖如圖3 所示。

圖3 Goertzel 算法
其中:

根據(jù)目標(biāo)頻率f、采樣率R與檢測區(qū)間采樣值N和檢測區(qū)間完整周期數(shù)k之間存在的關(guān)系:

可將濾波器的遞歸部分改換為:

其非遞歸部分則可更新為:

令初值而:

即可解出的目標(biāo)f的DFT 系數(shù)幅度平方為:

可見,基于Goertzel 算法的譯碼算法邏輯清晰、結(jié)構(gòu)簡單,可準(zhǔn)確應(yīng)用于選呼系統(tǒng)的DTMF 信號高能量群目標(biāo)頻率的求解。
譯碼器的本質(zhì)功能是解算出混合信號中能量最高的頻率。為驗證Goertzel 算法的譯碼功能,本設(shè)計在MATLAB 中實現(xiàn)了如圖4 所示的譯碼器算法流程仿真測試。

圖4 譯碼器算法流程
在編制算法仿真程序前,先編制獨立的Goertzel算法的基本譯碼模塊。該模塊不同于MATLAB自帶的Goertzel(X,f)函數(shù),分為定點型和浮點型兩種,特性各異。定點型側(cè)重于符合FPGA的設(shè)計規(guī)則,而浮點型更接近真實場景的理想狀態(tài)。
以前述Goertzel 算法為基礎(chǔ),調(diào)用Goertzel 算法的過程可以描述如下。
設(shè)譯碼系數(shù)c為一中間變量,滿足:

定義N,k;
求解系數(shù)c;
迭代求解:

則可解得目標(biāo)頻率的能量值為[6]:

仿真程序運行時,首先進(jìn)行初始參數(shù)的設(shè)置和必須的待用參數(shù)計算,包括采樣率、檢測區(qū)間的采樣值、采樣弧度值以及系數(shù)等;其次,加入預(yù)制的驗證音頻,并加入一定的干擾噪聲;最后,進(jìn)行16個特定音符的循環(huán)解碼并輸出解算結(jié)果。
驗證過程開始時,初始化的采樣率R設(shè)置為8 kHz,采樣量N為1 024,則采樣周期為128 ms??紤]到信號中斷、語音插入等情況,取得實時多路DTMF 信號不便于實驗。因此,加入的驗證音頻為一段特制的57 s 的包含所有字母音符的規(guī)范音頻。該音頻與ARINC 714-6 規(guī)定的頻率一致,幅度F(電壓相對值)隨時間變化如圖5 所示,具體為AB-CD有4次、EF-GH有4次、JK-LM有4次、PQ-RS有4次。

圖5 驗證音頻
理想的音頻解析不能有效評估Goertzel 算法的譯碼性能,設(shè)計中加入了適量噪聲成為混合雙音多頻信號。圖6 為含噪聲的待譯碼DTMF 信號。

圖6 含噪聲的DTMF 信號
將混合噪聲的DTMF 信號輸入Goertzel 算法模塊時,檢測程序循環(huán)設(shè)定目標(biāo)頻率值,使得譯碼模塊實現(xiàn)“實時”解算信號頻率。圖7 為解算出第一個雙音頻信號,即頻率為312.5 Hz 的字母“A”(有誤差,標(biāo)準(zhǔn)頻率為312.6 Hz)與頻率為345.7 Hz 的字母“B”(有誤差,標(biāo)準(zhǔn)頻率為346.7 Hz)。

圖7 第一個雙音頻信號
圖8 為450 s 內(nèi)解算出的各頻率功率,圖9 為與之對應(yīng)的頻率分布??梢姡舅惴苡行Ы馑愠鰮诫s噪聲的DTMF 信號中ARINC 714-6 規(guī)定的16個飛機選呼編碼基本字母。

圖8 功率分布

圖9 頻率分布
根據(jù)上述結(jié)果可見,在MATLAB 中的基于Goertzel 算法的譯碼程序模塊可解算出含有噪聲的選呼系統(tǒng)DTMF 信號中特定的字母頻率。
采用FPGA 是設(shè)計先進(jìn)高集成度、大規(guī)模數(shù)字電路的主流方案之一,較之于ASIC 設(shè)計周期短、成本低,較之于MCU 或DSP 運行效率高、可靠性高。綜上所述,應(yīng)用FPGA 器件設(shè)計數(shù)字電路系統(tǒng)的主要優(yōu)點體現(xiàn)為可縮短設(shè)計周期、設(shè)計更改靈活性高、可降低研發(fā)成本、可增大功能密集度以及提高系統(tǒng)可靠性和安全性[7]。
FPGA 設(shè)計將硬件研發(fā)軟件化,以Verilog 硬件描述語言程序代碼“模塊”為基本單位。設(shè)計只需要將選呼譯碼功能編寫為一個Verilog 代碼“模塊”,即能實現(xiàn)傳統(tǒng)機載選呼譯碼設(shè)備的主要功能。將傳統(tǒng)的一套設(shè)備精簡成一段代碼或一塊芯片,極大地降低了機載設(shè)備的空間占用率和功耗,并使得在同一批次設(shè)備中不用對物理設(shè)備進(jìn)行重復(fù)的逐一驗證,也可大幅減輕研制負(fù)擔(dān)。
研究以面向FPGA 的modelSIM 集成開發(fā)環(huán)境為仿真測試平臺工具開發(fā)目標(biāo)模塊。模塊中寄存器[0]~[15]分別代表表1 中16 個字母“A”~“S”。通過編制功能模塊和測試用例,在modelSIM 中模擬出Goertzel 算法譯碼DTMF 信號的完整過程。
圖10 為在700 ms 內(nèi)仿真器運行譯出5 個寄存器“[0]”和寄存器“[1]”,即由字母“A”和“B”組成的雙音信號的時序圖。明顯可見,字母“A”的音頻功率高于字母“B”。圖11 和圖12 的仿真結(jié)果為在第128 ms 時刻(第一采樣點)的譯碼情況,其中圖11 可見寄存器“[0]”的相對功率(無量綱)為2 484,寄存器“[1]”的相對功率為809,均遠(yuǎn)高于其他相對功率均小于100 的字母音頻,說明本模塊可實現(xiàn)DTMF 信號高能量頻率的篩選。
圖12 中在EDA 左邊欄詳細(xì)顯示了字母“A”的譯碼情況數(shù)據(jù),其中字母“A”音頻相對功率為2 484,與圖11 中列表的功率值相符,說明本FPGA 模塊可完整實現(xiàn)選呼譯碼功能。
本研究以開發(fā)基于FPGA 的選呼譯碼功能模塊為目標(biāo),通過對Goertzel 算法應(yīng)用于DTMF(雙音多頻)信號檢測原理的深入研究,設(shè)計了針對理想的選呼音頻信號(含噪聲)的MATLAB 驗證程序,并開發(fā)了以Goertzel 算法為核心的FPGA 選呼譯碼器模塊,最后通過modelSIM 平臺驗證了其具備解算選呼信號的功能。

圖10 字母“A”的譯碼時序

圖11 第20 ms 時刻的譯碼情況

圖12 字母“A”的譯碼情況數(shù)據(jù)
本設(shè)計實現(xiàn)了基于Verilog 語言的選呼譯碼功能模塊設(shè)計,模塊可作為一種IP 核直接在集成式選呼系統(tǒng)的設(shè)計過程中采用,可提高新型航電設(shè)計效率。但是,本模塊僅完成了選呼譯碼功能實現(xiàn),其性能和精度還需要與硬件設(shè)備結(jié)合進(jìn)行深入測試和調(diào)整。根據(jù)ARINC 714-6 相關(guān)的適航要求,選呼譯碼模塊應(yīng)圍繞以下幾個方面進(jìn)行性能和精度調(diào)試:
(1)譯碼模塊可解算出兩個相等量的3 dB 之內(nèi)的調(diào)制音頻,無論該音頻是否符合選呼規(guī)則;
(2)譯碼模塊可解算出具有標(biāo)稱調(diào)制90%(不低于60%)的音頻包絡(luò);
(3)譯碼模塊可容忍編碼音頻頻率±0.15%的公差,以確保譯碼工作正常;
(4)譯碼模塊可容忍編碼音頻頻率±15%的失真率,以確保譯碼工作正常。