唐聆韜
四川大學(xué) 電子信息學(xué)院 四川 成都 610065
當(dāng)前主要的頻譜檢測(cè)方法有能量檢測(cè)法、匹配濾波器法和循環(huán)平穩(wěn)特征檢測(cè)法等。匹配濾波器法能使接收信號(hào)的信噪比最大化,在短時(shí)間里獲得高處理增益,但是進(jìn)行信號(hào)檢測(cè)必須具有傳輸信號(hào)的先驗(yàn)信息,即要事先獲得所有子信道用戶的參數(shù)信息。所以匹配濾波器法不適用于多信號(hào)的盲檢測(cè)。循環(huán)平穩(wěn)特征檢測(cè)法是利用調(diào)制后的信號(hào)的循環(huán)特征進(jìn)行檢測(cè)。調(diào)制后信號(hào)的均值和自相關(guān)等特征具有循環(huán)平穩(wěn)特性,而噪聲的統(tǒng)計(jì)特征不具有這一特性,利用這一特征可以有效地將噪聲和信號(hào)區(qū)分開(kāi)來(lái)。但是其計(jì)算復(fù)雜度過(guò)高,檢測(cè)周期較長(zhǎng),也不適合大帶寬多子帶信號(hào)的頻譜檢測(cè)。與以上兩種方法相比,能量檢測(cè)法[1]就相對(duì)簡(jiǎn)單,適合在硬件中實(shí)現(xiàn)。
能量檢測(cè)法中最常用的是雙門限法[2],工程實(shí)現(xiàn)中經(jīng)常出現(xiàn)。相對(duì)于傳統(tǒng)的門限法,利用兩個(gè)門限對(duì)信號(hào)進(jìn)行篩選,進(jìn)而更加有效地對(duì)信號(hào)進(jìn)行估計(jì)。在單門限檢測(cè)模型的基礎(chǔ)上再加一個(gè)門限,設(shè)置成雙門限檢測(cè)模型。通常設(shè)置為:
雙門限法的檢測(cè)效率雖然比單門限更精確,但也很容易受噪聲影響。如圖1所示,有些信號(hào)因?yàn)楣β誓芰坎荒苓_(dá)到門限的要求,就會(huì)被算法判定是噪聲而排除掉。這樣檢測(cè)效率就大大降低了。針對(duì)這一問(wèn)題,本文提出一種易于硬件實(shí)現(xiàn),精確度較高的門限檢測(cè)算法,它能對(duì)每個(gè)信號(hào)設(shè)置單獨(dú)的門限檢測(cè)出信號(hào),大大降低漏檢率。
圖1 信號(hào)頻譜圖
(2)進(jìn)行第二次掃頻,將每個(gè)頻點(diǎn)的值與上步算出的底噪進(jìn)行比較,如果大于底噪的范圍為有信號(hào)的區(qū)域。
(4)對(duì)頻域進(jìn)行第三次掃頻,將信號(hào)區(qū)域的點(diǎn)與之對(duì)應(yīng)的門限值進(jìn)行比較,大于信號(hào)的部分就是精確估計(jì)的有效信號(hào)。如下為算法檢測(cè)出信號(hào)的結(jié)果。產(chǎn)生多個(gè)信號(hào)段,采樣頻率為10MHz,信號(hào)信噪比為6~12dB,信號(hào)調(diào)制種類有5種(2ASK,2FSK,4FSK,BPSK,QPSK)。在允許相對(duì)誤差小于4%的情況下統(tǒng)計(jì)出載波頻率和帶寬的精確度。
圖2 信號(hào)檢測(cè)結(jié)果圖
表1 檢測(cè)信號(hào)載波頻率和帶寬精確度
從圖2和表1中可以看出,該方法可以較好地檢測(cè)出各個(gè)信號(hào),驗(yàn)證了信號(hào)的可行性,接下來(lái)將介紹算法的FPGA設(shè)計(jì)。
信號(hào)主要分為兩大部分:頻域轉(zhuǎn)換部分和信號(hào)檢測(cè)部分。利用頻域轉(zhuǎn)換將時(shí)域數(shù)據(jù)轉(zhuǎn)換成頻域數(shù)據(jù)并計(jì)算出信號(hào)的功率譜數(shù)據(jù),然后由信號(hào)檢測(cè)部分估計(jì)出載波頻率和帶寬[4]。
圖3 頻域轉(zhuǎn)換結(jié)構(gòu)圖
首先,使能信號(hào)控制狀態(tài)機(jī)開(kāi)始工作,輸出當(dāng)前狀態(tài)送入判斷1、判斷2、判斷3模塊中進(jìn)行判斷,以產(chǎn)生需要的標(biāo)志信號(hào)。判斷2模塊與狀態(tài)機(jī)產(chǎn)生的狀態(tài)配合控制計(jì)數(shù)器1對(duì)FFT IP核轉(zhuǎn)換次數(shù)進(jìn)行計(jì)數(shù)。當(dāng)計(jì)數(shù)器1計(jì)數(shù)到設(shè)置的數(shù)值時(shí)會(huì)告訴判斷1模塊輸出結(jié)束變換的標(biāo)志信號(hào)。判斷3模塊產(chǎn)生IP核開(kāi)始轉(zhuǎn)換的標(biāo)志信號(hào),而計(jì)數(shù)器2告訴IP核當(dāng)前輸入的是第幾個(gè)信號(hào)數(shù)據(jù)。IP核會(huì)計(jì)算出數(shù)據(jù)信號(hào)的頻域信息并依次輸出,最后通過(guò)乘法器求平方得到功率譜,同時(shí)配合計(jì)數(shù)器3依次將頻域數(shù)據(jù)存入存儲(chǔ)器中。最后由標(biāo)志信號(hào)經(jīng)判斷4模塊判斷數(shù)據(jù)是否完全存儲(chǔ)完畢。
圖4 信號(hào)檢測(cè)狀態(tài)圖
上圖為信號(hào)檢測(cè)模塊的狀態(tài)圖,在轉(zhuǎn)換完成時(shí),calcu_p=1,狀態(tài)機(jī)進(jìn)入ST_FIND_MIN狀態(tài),此時(shí)會(huì)對(duì)頻譜進(jìn)行掃描,找出頻譜中的最小值,用最小值設(shè)置頻譜的底噪并找出大于底噪的部分,將該部分視為信號(hào)區(qū)間。掃描完成后進(jìn)入ST_FIND_MAX中進(jìn)行第二次掃描。該次掃描主要用于找出信號(hào)區(qū)間中的最大值,利用最大值設(shè)置一個(gè)判斷門限,如果大于判斷門限的部分就認(rèn)為是信號(hào)。第二次掃描完成后,進(jìn)入ST_FIND_MAXSUB3DB狀態(tài),在該狀態(tài)中,模塊會(huì)對(duì)每個(gè)信號(hào)區(qū)間的判斷門限與信號(hào)進(jìn)行比較,精確估計(jì)出信號(hào)的載波頻率和帶寬,判斷完成后回到最開(kāi)始的待機(jī)狀態(tài)ST_IDLE中[5]。
如圖5所示,狀態(tài)機(jī)負(fù)責(zé)狀態(tài)的轉(zhuǎn)換并將當(dāng)前狀態(tài)輸入到其他模塊中進(jìn)行運(yùn)算,當(dāng)狀態(tài)處于ST_FIND_MIN/ST_FIND_MAX/ST_FIND_MAXSUB3DB狀態(tài)時(shí),系統(tǒng)都需要對(duì)頻譜數(shù)據(jù)進(jìn)行掃描將信號(hào)數(shù)據(jù)從dpram存儲(chǔ)器中讀出來(lái),其中判斷2模塊就是輸出NFFT個(gè)raddr讀地址信號(hào),從存儲(chǔ)器中讀出當(dāng)前需要的數(shù)據(jù)。當(dāng)狀態(tài)處于ST_FIND_MIN時(shí),尋找底噪模塊會(huì)找出頻譜中的最小值并設(shè)置一個(gè)最小的底噪值。當(dāng)狀態(tài)為ST_FIND_MAX時(shí),系統(tǒng)會(huì)將信號(hào)與底噪進(jìn)行比較,將有信號(hào)的部分標(biāo)志出來(lái),標(biāo)志信號(hào)由判斷1模塊中輸出。最大值模塊則會(huì)找出每個(gè)有信號(hào)區(qū)域的最大值,而設(shè)置門限模塊會(huì)利用最大值和其點(diǎn)數(shù)值位置生成每個(gè)有信號(hào)區(qū)域的門限值(用于檢測(cè)信號(hào)頻譜起始點(diǎn)和終止點(diǎn))和標(biāo)志信號(hào)(FIFO模塊的寫使能)。這里的門限是將最大值下降3dB。
圖5 信號(hào)檢測(cè)結(jié)構(gòu)圖
上面已經(jīng)產(chǎn)生了FIFO的數(shù)據(jù)輸入和寫使能。而FIFO模塊的讀使能由判斷3模塊輸出,在ST_FIND_MAXSUB3DB狀態(tài)下如果數(shù)據(jù)位置處于底噪左側(cè)臨界點(diǎn)處可以產(chǎn)生一個(gè)標(biāo)志信號(hào)作為FIFO模塊的讀使能。FIFO讀出的門限數(shù)據(jù)輸入到判斷4中,如果信號(hào)數(shù)據(jù)大于門限數(shù)據(jù)則認(rèn)為這是有效信號(hào)并記錄下起始點(diǎn)x1和終止點(diǎn)x2。通過(guò)這兩個(gè)坐標(biāo)就可以計(jì)算出載波頻率和帶寬。
利用Matlab產(chǎn)生2PSK、4PSK、8PSK三個(gè)信號(hào),它們的采樣頻率為12MHz,載波頻率分別為1.92MHz、4.32MHz、7.2MHz,符號(hào)速率為960kHz、1152kHz、768kHz,信噪比設(shè)置為8dB,采樣點(diǎn)數(shù)為4096。頻域如下:
圖6 信號(hào)頻域圖
將該信號(hào)數(shù)據(jù)送入模塊進(jìn)行檢測(cè)得到下圖:
圖7 帶寬和載波數(shù)據(jù)
從圖中可以得到信號(hào)的載波頻率和帶寬,因?yàn)閷?duì)頻譜數(shù)據(jù)進(jìn)行存儲(chǔ)時(shí)是從頻段中間開(kāi)始存儲(chǔ)的,所以得到的信號(hào)中心頻率大于2048的數(shù)據(jù)需要減去2048,小于2048的數(shù)據(jù)需要加上2048,得到三個(gè)信號(hào)的載波點(diǎn)數(shù)位置是675、1492、2476,信號(hào)帶寬點(diǎn)數(shù)是363、427、287。利用公式:
得到載波頻率分別為1.977MHz、4.371MHz、7.253MHz。信號(hào)帶寬分別為1063.47kHz、1250.97kHz、840.82kHz。其誤差在允許范圍內(nèi)。
本文根據(jù)信號(hào)處理問(wèn)題在硬件上難以實(shí)施的難點(diǎn),通過(guò)對(duì)傳統(tǒng)方法進(jìn)行改進(jìn),使算法能較好地檢測(cè)信號(hào)并且能夠在硬件中實(shí)現(xiàn)。首先通過(guò)軟件進(jìn)行理論驗(yàn)證,然后再設(shè)計(jì)出FPGA的硬件結(jié)構(gòu),最后通過(guò)仿真得到硬件計(jì)算的結(jié)果,驗(yàn)證了方法的可行性。