基于FPGA的電臺(tái)接口轉(zhuǎn)換模塊
4 Cordic算法實(shí)現(xiàn)求模
目前實(shí)現(xiàn)Cordic算法主要有兩種基本的結(jié)構(gòu):較為簡(jiǎn)潔的狀態(tài)機(jī)和高速全流水線處理器。在此采用高速全流水線處理器。在流水線結(jié)構(gòu)中,各階段數(shù)據(jù)處理不影響后面數(shù)據(jù)的輸入,在每個(gè)時(shí)鐘周期到來(lái)是將各階段的數(shù)據(jù)不斷前移,后面的數(shù)據(jù)不斷輸入,猶如一個(gè)FIFO緩沖期,在每個(gè)時(shí)鐘周期到來(lái)時(shí)地址不斷向前移一位,后來(lái)的數(shù)據(jù)不斷的往里輸,在各時(shí)鐘周期不同地址間數(shù)據(jù)不會(huì)相互影響。這就保證了實(shí)時(shí)系統(tǒng)的數(shù)據(jù)能不斷地流入而不會(huì)導(dǎo)致沖突。圖4所示為5級(jí)迭代快速Cordic流水線結(jié)構(gòu):
如圖5所示,采用QuartusⅡ的SignalTap采集的數(shù)據(jù),經(jīng)計(jì)算其準(zhǔn)確率高達(dá)98%以上,能夠滿足設(shè)計(jì)的需求。根據(jù)圖5所示計(jì)算mmsource_ exp信號(hào),此信號(hào)是指數(shù)修正信號(hào),是有符號(hào)型,將其轉(zhuǎn)換成十進(jìn)制數(shù)的-2。先計(jì)算頭二組mmsource_real信號(hào)和mmource_imag信號(hào)數(shù)據(jù)。它們也是有符號(hào)數(shù),因此將其轉(zhuǎn)化為十進(jìn)制數(shù),轉(zhuǎn)換結(jié)果為{-1,-80;-2,-17;-11,-53;26,-51},而根據(jù)Cordic算法得出的結(jié)果從圖5中讀出,依次為{5 209;1 113;3 517;3 723}。而實(shí)際經(jīng)模修改后得到的標(biāo)準(zhǔn)值分別為{5 120;1 088;5 317;3 648}。
5 穩(wěn)定處理
FFT閾值法的原理是先對(duì)原始信號(hào)做FFT處理,適當(dāng)預(yù)設(shè)濾波閾值,將低于該閾值的頻帶設(shè)定為無(wú)效信號(hào),定義為接收器沒有接收到信號(hào)。當(dāng)然閾值以下,并不能代表該周期產(chǎn)生了單頻信而由于信道上或者硬件本身的干擾,單檢測(cè)周期的測(cè)量值超過(guò)閾值或者在號(hào)或沒產(chǎn)生。僅憑單檢測(cè)周期的閾值檢測(cè)而產(chǎn)生PTT控制信號(hào)會(huì)帶來(lái)話音控制的不穩(wěn)定性。
設(shè)計(jì)的算法能極大地提高閾值測(cè)試的穩(wěn)定性。具體處理如下,流程如圖6所示。
為實(shí)現(xiàn)該功能,需自定義一個(gè)計(jì)數(shù)器,初始值為0,計(jì)數(shù)器值定義在0到T(T>0)之間。若在加操作中使計(jì)數(shù)器值大于T,則將計(jì)數(shù)器值飽和到T;若在減操作中使計(jì)數(shù)器小于0,則將計(jì)數(shù)器值飽和到0。
第一步,檢測(cè)測(cè)量值是否過(guò)閾值。若過(guò)閾值,計(jì)數(shù)器值加m,進(jìn)行第二步;若不過(guò)閾值,計(jì)數(shù)器值減n,進(jìn)行第四步。
第二步,若計(jì)數(shù)器值大于T,則飽和到T值。進(jìn)行第三步。
第三步,檢測(cè)計(jì)數(shù)器值,若計(jì)數(shù)器值等于T,則啟動(dòng)輸出PTT控制信號(hào),結(jié)束流程;若計(jì)數(shù)器值小于T,則維持上一次的PTT控制信號(hào)輸出狀態(tài),結(jié)束流程。
第四步,若計(jì)數(shù)器值小于0,則飽和到0值。進(jìn)行第五步。
第五步,檢測(cè)計(jì)數(shù)器值,若計(jì)數(shù)器值等于0,則取消輸出PTT控制信號(hào),結(jié)束流程;若計(jì)數(shù)器值大于0,則維持上一次的PTT控制信號(hào)輸出狀態(tài),結(jié)束流程。
在流程中,m,n值的選擇取決于信道上或者硬件本身干擾的大小。若沒有單頻信號(hào)而誤檢出單頻信號(hào)的錯(cuò)誤概率比較大,則m的取值應(yīng)較?。环粗?,若沒有單頻信號(hào)而誤檢出單頻信號(hào)的錯(cuò)誤概率比較小,則m的取值可以較大。同理,若有單頻信號(hào)而未檢出單頻信號(hào)的錯(cuò)誤概率比較大,則n的取值應(yīng)較??;反之,若有單頻信號(hào)而未檢出單頻信號(hào)的錯(cuò)誤概率比較小,則n的取值可以較大。
圖7所示,在CycloneⅢ實(shí)驗(yàn)板運(yùn)行時(shí)采用SignalTapⅡ?qū)顟B(tài)機(jī)的各項(xiàng)內(nèi)容進(jìn)行驗(yàn)證,保證狀態(tài)機(jī)運(yùn)行良好。將相關(guān)程序下載到Cyclone-Ⅲ芯片里,實(shí)時(shí)采集音頻數(shù)據(jù)對(duì)狀態(tài)機(jī)進(jìn)行分析。
在圖7中,mmod在一個(gè)采樣周期結(jié)束后ostart信號(hào)被觸發(fā),其獲得的總能量為1 427,比預(yù)設(shè)閾值要低,因此ocounter1的狀態(tài)不變,仍保持在第0狀態(tài),而ocounter2的狀態(tài)則由第3狀態(tài)跳到第2狀態(tài),這實(shí)踐的結(jié)果和理論都是保持一致的,可以說(shuō)明程序的正確性,狀態(tài)機(jī)運(yùn)行正常。
6 結(jié)語(yǔ)
本文可以用于一切需要PTT信號(hào)端的設(shè)備上,應(yīng)用極其廣泛,如:對(duì)講機(jī)、飛機(jī)場(chǎng)指揮塔的應(yīng)答系統(tǒng)以及目前已在美國(guó)推出的PTT手機(jī)業(yè)務(wù)等均運(yùn)用到該技術(shù)。而在做該課題時(shí)遇到一些問(wèn)題,如:陷波濾波器其阻帶帶寬偏大,需要尋求一種更好的算法來(lái)解決其帶寬問(wèn)題;其次,F(xiàn)IR消耗內(nèi)存較大,這樣會(huì)消耗大部分的FPGA邏輯資源,會(huì)導(dǎo)致較大系統(tǒng)的資源不夠,因此需要設(shè)計(jì)更好的數(shù)據(jù)流結(jié)構(gòu)和算法來(lái)處理這個(gè)問(wèn)題。這將是筆者以后需要繼續(xù)研究學(xué)習(xí)的。
評(píng)論