眭超亞, 唐毅謙, 羅正華, 曹文繼, 喻 娜
(1.成都大學 信息科學與工程學院, 四川 成都 610106; 2.成都大學 機械工程學院, 四川 成都 610106)
由于數字信號處理的優勢和模數轉換器(Analog to digital converter,ADC)采樣速率的提高,ADC逐漸由基帶向射頻移動.但隨之而來的是ADC采樣后數據量的劇增,給數字域的信號處理帶來了挑戰[1].信道化接收機是寬帶信號接收中處理大數據的有效方式,廣泛應用于衛星通信、雷達與無源探測等場合[2].信道化接收機的原始結構由一組本振頻率固定的數字下變頻器組成.相比于原始結構,基于多相結構的數字信道化接收機占用更少的硬件資源,更具可實現性[3].在分析常規數字信道化算法通用結構的基礎上,本研究推導出數字信道化算法的數學模型,得到了基于IDFT數字信道化算法的高效結構,以Gnuradio平臺為基礎,實現了該高效結構,通過與Gnuradio自帶的信道化處理算法進行比較,驗證了該結構的有效性.
假設接收機收到的信號為頻分多路復用(Frequency-division multiplexing,FDM)信號,該FDM信號由等間隔的信道組成.不失一般性,設其中一個信道以頻率0為中心,接收機收到的信號頻譜如圖1所示.
如果接收端僅對信道k中的信息感興趣,則將整個信號的頻譜以第k個信號的中心頻率為參考進行頻譜搬移,使第k個信號的中心頻率剛好搬移到零頻,然后對該信號進行低通濾波,并將其進行降采樣,以匹配后端目標的處理速率[4].該模式的處理流程如圖2所示.

圖1寬帶FDM信號頻譜

圖2 FDM信號單通道處理流程
設x(n)表示收到的輸入信號,m表示FDM信號的信道總數,h表示有限長單位沖激響應(Finite impulse response,FIR)低通濾波器的脈沖響應,hj表示第j個濾波器系數,N表示濾波器的階數,d表示最后降采樣的比率,則該過程為,
(1)
(2)
(3)

(4)
該過程在頻譜上的直觀表示如圖3所示.

圖3 FDM信號頻譜搬移、低通濾波和降采樣過程頻譜示意圖
在算法的處理過程中,輸出一個有效樣點的算法復雜度為頻譜下變頻時的2d次復數乘法運算和濾波時的2N次實數相乘累加運算.
將式(3)簡單變化,重寫為,

(5)
重新定義濾波器h′,
(6)
上述濾波器系數可以在信號輸入之前預先被計算,則式(4)可表示為,
(7)
忽略預先計算h′系數的計算量.在此改進算法中,輸出一個有效樣點的算法復雜度為濾波時的N次實數相乘累加運算和頻譜搬移時的復數乘法運算.
通常,衛星通信的地面接收站或雷達寬帶信號處理等場景,需要同時解析接收機收到的M個通道信號.每個通道的處理采用普通的單通道處理結構,則多通道的處理模式簡化為單通道的簡單疊加,其整體計算結構如圖4所示.

圖4多通道信號并行計算結構
在同時解析所有M個通道信號的過程中,每個通道的處理方式均相同,其算法整體復雜度為單個通道算法復雜度的M倍.
在多通道同時處理M個信號的過程中,通過復制多路相同的單通道處理模式來同時處理收到的多路信號,該處理方式在算法復雜度和硬件資源占用率等方面考慮欠佳,需要對其加以改進,提高算法整體性能,節省硬件資源.
首先,令d=m,即一次需要計算的通道數,重寫式(3),
(8)
該式的本質是對混頻后的信號進行濾波,其濾波器的抽頭系數為hj.
整理濾波器抽頭系數hj,將其重寫為(m,N/m)大小的實矩陣g,
gg,p=hpm+q(p=0,1,…,d-1;q=0,1,…,m-1)
(9)
用矩陣表示為,
(10)
將濾波器抽頭系數hj重寫為矩陣g后,以行列的方式重寫式(4),并將d置換為m,則式(4)可表示為,

(11)
其中,j=pm+q,則有,

(12)
在式(12)中,定義,
(13)
由此,式(12)可表示為,
(14)
式(14)中,k、n、p均為整數,而在復向量中,對任何正整數變量u,e-2πiu的值恒為1,因此e-2πikn和e-2πikp的值也恒為1,則式(14)表示為,
(15)
對比離散傅里葉反變換的表示式,
(16)
可知式(15)的本質是對wn,q進行離散傅里葉反變換.在具體實現時,可采用更加高效的IFFT算法.


圖5多通道處理新結構示意圖
圖5所示的多通道信道化處理算法新結構的復雜度由2部分組成:每個通道進行濾波輸出一個樣點的N/m次實數乘法累加運算;一次大小為m的IFFT運算.其復雜度取決于不同的實現,大約為5NlogN次浮點計算.
開源軟件無線電Gnuradio是一套快速構建和部署軟件定義無線電系統的免費軟件工具包[5].本研究借助Gnuradio的軟件開發平臺,用C++實現了改進的算法結構,并對其性能進行了對比驗證.
算法的實現過程具體方式為:
1)每路通道中的FIR濾波(buckets)設計為環形數據鏈表.
為了避免數據移動,預先計算濾波器的抽頭系數,然后使用普通乘法累加,計算一次數據輸出.在進行下一次數據計算時,只需要移動數據指針即可.
預先存儲抽頭系數的方式會占用一定內存.假設原始FIR濾波器為2 000階,降采樣為100個信道,采用單精度浮點數據進行計算,則需要的內存為,100×(2000/100)2×sizeof(float)=160 KiB.2 000階的FIR濾波器在實際使用中相對較少,一般的工程使用不超過1 000階,所以占用的內存會更少.軟件實現時,可以直接將計算出來的系數存于Cache中,進一步提高整體的計算速度.
2)采用多線程技術.
如果同時開啟t個線程,則前t-1個線程完成信道濾波,輸出樣點,第t個線程計算最終的IFFT.主線程根據線程個數,決定數據的讀取速度,并使用互斥鎖與條件變量等方式同步所有的計算子線程.
為了更準確地評估該算法結構的性能,本研究選用算法處理數據時的吞吐量作為衡量指標,并在3種不同的硬件平臺上進行對比測試.
1)嵌入式硬件平臺Raspberry Pi 2:CPU,ARMv7;內存,1 GiB DDR2;操作系統,Debin 8.
2)筆記本電腦:CPU,Intel Core i3-2350M;內存,8 GiB DDR3;操作系統,Debian 8.
3)臺式機:CPU,AMD FX-8150;內存,32 GiB DDR3;操作系統,Debian 8.
測試時,隨機選擇通道數量和濾波器階數(72個信道,每個信道采用1 151階FIR濾波器).為了全面測試新的算法結構,使程序工作在通用和特殊2種不同的工作模式,通用模式為編譯時不對程序進行任何干預,特殊模式為編譯時指定濾波器階數.在不同的硬件平臺上,對程序重復100次測試,然后對結果求平均值,最終算法吞吐量性能結果如圖6所示.

圖6算法性能測試結果圖
結果表明,對于不同的硬件資源,其算法吞吐量明顯不同,但該結果是由硬件平臺本身決定的.在同一個平臺中,改進結構后的算法性能明顯優于Gnuradio官方自帶的算法性能.
本研究探討了基于IDFT結構的多通道信道化算法,推導了其數學模型.相對于普通的信道化處理,基于IDFT的結構降低了算法的復雜度,提高了系統數據處理的吞吐量.最后,本研究以Gnuradio平臺為基礎,采用新結構實現了算法,并且在3種不同的平臺上驗證了該結構的有效性.