基于FPGA的電臺接口轉換模塊設計
5 穩定處理
FFT閾值法的原理是先對原始信號做FFT處理,適當預設濾波閾值,將低于該閾值的頻帶設定為無(wú)效信號,定義為接收器沒(méi)有接收到信號。當然閾值以下,并不能代表該周期產(chǎn)生了單頻信而由于信道上或者硬件本身的干擾,單檢測周期的測量值超過(guò)閾值或者在號或沒(méi)產(chǎn)生。僅憑單檢測周期的閾值檢測而產(chǎn)生PTT控制信號會(huì )帶來(lái)話(huà)音控制的不穩定性。
設計的算法能極大地提高閾值測試的穩定性。具體處理如下,流程如圖6所示。本文引用地址:http://dyxdggzs.com/article/191203.htm
為實(shí)現該功能,需自定義一個(gè)計數器,初始值為0,計數器值定義在0到T(T>0)之間。若在加操作中使計數器值大于T,則將計數器值飽和到T;若在減操作中使計數器小于0,則將計數器值飽和到0。
第一步,檢測測量值是否過(guò)閾值。若過(guò)閾值,計數器值加m,進(jìn)行第二步;若不過(guò)閾值,計數器值減n,進(jìn)行第四步。
第二步,若計數器值大于T,則飽和到T值。進(jìn)行第三步。
第三步,檢測計數器值,若計數器值等于T,則啟動(dòng)輸出PTT控制信號,結束流程;若計數器值小于T,則維持上一次的PTT控制信號輸出狀態(tài),結束流程。
第四步,若計數器值小于0,則飽和到0值。進(jìn)行第五步。
第五步,檢測計數器值,若計數器值等于0,則取消輸出PTT控制信號,結束流程;若計數器值大于0,則維持上一次的PTT控制信號輸出狀態(tài),結束流程。
在流程中,m,n值的選擇取決于信道上或者硬件本身干擾的大小。若沒(méi)有單頻信號而誤檢出單頻信號的錯誤概率比較大,則m的取值應較??;反之,若沒(méi)有單頻信號而誤檢出單頻信號的錯誤概率比較小,則m的取值可以較大。同理,若有單頻信號而未檢出單頻信號的錯誤概率比較大,則n的取值應較??;反之,若有單頻信號而未檢出單頻信號的錯誤概率比較小,則n的取值可以較大。
圖7所示,在CycloneⅢ實(shí)驗板運行時(shí)采用SignalTapⅡ對狀態(tài)機的各項內容進(jìn)行驗證,保證狀態(tài)機運行良好。將相關(guān)程序下載到Cyclone-Ⅲ芯片里,實(shí)時(shí)采集音頻數據對狀態(tài)機進(jìn)行分析。
在圖7中,mmod在一個(gè)采樣周期結束后ostart信號被觸發(fā),其獲得的總能量為1 427,比預設閾值要低,因此ocounter1的狀態(tài)不變,仍保持在第0狀態(tài),而ocounter2的狀態(tài)則由第3狀態(tài)跳到第2狀態(tài),這實(shí)踐的結果和理論都是保持一致的,可以說(shuō)明程序的正確性,狀態(tài)機運行正常。
6 結語(yǔ)
本文可以用于一切需要PTT信號端的設備上,應用極其廣泛,如:對講機、飛機場(chǎng)指揮塔的應答系統以及目前已在美國推出的PTT手機業(yè)務(wù)等均運用到該技術(shù)。而在做該課題時(shí)遇到一些問(wèn)題,如:陷波濾波器其阻帶帶寬偏大,需要尋求一種更好的算法來(lái)解決其帶寬問(wèn)題;其次,FIR消耗內存較大,這樣會(huì )消耗大部分的FPGA邏輯資源,會(huì )導致較大系統的資源不夠,因此需要設計更好的數據流結構和算法來(lái)處理這個(gè)問(wèn)題。這將是筆者以后需要繼續研究學(xué)習的。
評論