劉 晟
(上海諾基亞貝爾股份有限公司,江蘇 南京 210037)
在現代無線通信系統中,分布式基站是最主要的部署形式。從基站(Base Band Unit,BBU)到用戶設備終端(User Equipment,UE)的連接依靠射頻拉遠單元(Radio Remote Unit,RRU)完成。RRU在中頻帶上實現數據流速率的轉換。完成基帶數據下行與移動終端數據上行[1-2]。
下行鏈路包括數字正交上變頻(Digital Up Conversion,DUC)、峰均比控制、增益與延時調節等,送入射頻芯片變為模擬信號放大后由天線發射;上行鏈路將天線接收的射頻信號經射頻芯片變成數字信號,送入基帶單元,包括增益與延時調節、數字正交下變頻(Digital Down Conversion,DDC)等。在此過程中,數字濾波器要對鏈路中的數據流做插值與抽取操作,以改變信號的數據率。
為了使信號頻譜不產生混疊,采樣間隔必須服從奈奎斯特(Nyquist)采樣定理。假設連續信號x(t)的頻譜響應X(jω)限制在(0,fH)范圍,當采樣率fs≥2fH時,x(t)可以被無失真恢復;否則會發生頻譜混疊[3]。傳統的低通采樣在當fH很高的時候顯然難以實現,為此引入帶通采樣定理。采樣率滿足:

定義(0,fs/2)為第一Nyquist區,(fs/2,fs)為第二Nyquist區,以此類推。當輸入信號頻率高于fs/2時,通過數次fs/2“折疊”,最終都能落進第一Nyquist區,如圖1所示。這就意味著位于不同Nyquist區的信號最終都能用位于第一Nyquist區內的基帶信號來表示,實現了頻譜搬移[3],如圖1所示。

圖1 帶通采樣時域與頻域圖
雖然絕對頻率信息丟失了,但是只要不發生頻譜混疊,都可以通過混頻把信號恢復出來。當帶通信號x(t)處于整數倍的頻帶位置,即fH和fL均為帶寬的整數倍時,最小采樣率為帶寬的兩倍,即:2*(fH-fL)。
帶通采樣中的采樣率小于兩倍信號最大頻率或帶寬,因此屬于“欠采樣(Undersampling)”。欠采樣容易在第一Nyquist區出現混疊,同時也會產生帶外噪聲的混疊效應,造成信噪比下降。實際工作中需要在帶通采樣之前設計抗混疊濾波器來消除位于Nyquist帶寬之外的頻率成分,并且加入一定寬度的保護帶
與之相對應的是“過采樣(Oversampling)”。此時信號的采樣率遠大于兩倍信號最大頻率或帶寬,采樣后的信號是原來的信號頻域延拓疊加,對于限帶信號來說,當采樣率越高,混疊的情況越小。所以過采樣就是要改變噪聲分布,將量化噪聲推到更高的頻率上,再通過低通濾波器濾除噪聲,以此來避免混疊,改善分辨率。
對于通信系統而言,BBU與RRU的信號速率不同,需要變換信號的采樣率,以匹配信號速率[5]。在下行鏈路中,RRU做DUC實現內插(Interpolation),提高信號采樣率;在上行鏈路中,RRU做DDC實現抽取(Decimation),降低信號采樣率。
內插是指在輸入信號中兩個原始采樣點之間等間距地插入N個新數據值,一般采用插0的操作[1]。設輸入序列x(n),插值后采樣率提高了N倍:

圖2是內插前后時域與頻域變化。原采樣序列間均勻地插入0值在頻域上表現為對原頻譜的壓縮,進行頻率拓展。這樣頻譜中同時含有基帶分量與n/N的高頻分量,產生鏡像頻率,導致頻譜冗余。因此需要對內插后的信號進行低通濾波,以去除鏡像頻率。該低通濾波器的頻率響應特性為:


圖2 內插前后時域與頻域變化
內插采樣可以理解成過采樣的一種。信號經過內插采樣后,提高了數據率,簡化了后級模擬抗混疊濾波器的設計,降低了量化噪聲。內插采樣結構如圖3所示。

圖3 內插采樣結構圖
抽取可以看成是插值的逆操作,即在輸入信號的每N個等間隔采樣點中抽出一個組成新序列。設輸入序列x(n),抽取后采樣率降低了N倍:

圖4是抽取前后時域與頻域變化。信號經過抽取之后,在頻譜上表現為對原頻譜進行頻移和擴展。當抽取因子N較大時,,需要保證原信號采樣率至少為Nyquist采樣率的N倍,抽取才不會發生混疊[5]。為此要先對原信號做低通濾波來限制帶寬,低通濾波器的頻率響應特性與式(4)相同。

圖4 抽取前后時域與頻域變化
信號經過抽取采樣后,數據率降低,簡化了對基帶數字信號處理的要求。抽取也可以通過多級級聯實現。抽取采樣結構如圖5所示。

圖5 抽取采樣結構圖
插值與抽取過程中除了采樣率變換之外,低通濾波器在模型上是一致的,用有限沖激響應(Finite Impulse Response,FIR)濾波器可以實現。FIR濾波器用有限長度的沖激響應,對N點的輸入數據進行加權和卷積計算,得到濾波后的公式為:

系數b(n)僅依賴于輸入,而不依賴于過去的輸出。其極點只存在于零點,沒有任何反饋,在有限精度范圍內能夠穩定地計算,誤差也較小。FIR濾波器在通帶內具有恒定幅頻特性和線性相位特性。
在整個頻帶上,線性相位的FIR濾波器的相位滯后和群延遲是相等并且不變的。一個N階的線性相位FIR濾波器,群延遲為常數:

經過FIR濾波后的信號延遲了N/2個時間長度。這使得通帶頻率內的信號通過FIR濾波器后仍然保持原有形狀,而無相位畸變或者失真。
當FIR濾波器滿足原點對稱條件時,系數:b(n)=-b(N-n),此時相位特性:

當FIR濾波器滿足Y軸對稱條件時,系數:b(n)=b(N-n),此時相位特性:

由此可見,無論采用哪種形式的系數,在逼近平直的幅頻特性的同時,還能獲得嚴格的線性相位特性,與系數b(n)的具體值無關。由于FIR濾波器只有零點,所以只需直接從頻域入手,保證具有線性相位的同時逼近理想頻率特性即可。
半帶濾波器(Half-band Filter)是一種特殊的FIR濾波器,其沖激響應在非零點處所有的偶數點全部為0。相比于普通的FIR濾波器,其乘加的運算量幾乎減少了一倍。利于加速設計,便于硬件實現。
設半帶濾波器的通帶截止頻率為fp,阻帶截止頻率為fs,通帶寬度為ωp,阻帶寬度為ωs,通帶內波紋δp,阻帶內波紋δs,其頻率響應H(ejω)與由于過渡帶的存在導致頻譜混疊而產生的鏡像頻率響應H(ej(π-ω))之間滿足以下關系:

半帶濾波器的幅頻響應特性圖如圖6所示。

圖6 半帶濾波器的幅頻響應特性
由此可見,半帶濾波器在過渡帶(fsa/2,fs)內存在混疊,在通帶(0,fp)和阻帶(fs,fsa/2)內不存在混疊,抽取或插值后信號可以完全被恢復。半帶濾波器一般只用于2倍的插值或抽取,如果想要把信號變到更遠的頻段上,通常采用多級濾波器級聯的方式來實現,這樣一方面減輕了單個濾波器運算的負擔,另一方面由于濾波器的階數減少了,乘加計算后的累計誤差也會相應減少,提高了濾波器計算的精度。因此在上下變頻通道中,常用D=2N倍的插值和抽取。
在工程實現中,最常用的是用MATLAB軟件和可編程邏輯器件(Field Programmable Gate Array,FPGA)聯合設計濾波器。其流程如圖7所示。
第一步由系統指標來確定,第二步和第三步在MATLAB中完成,濾波器的系數可以用MATLAB函數在.m文件中設計,或者用FDAtool直接設計,前者更容易從理論的角度進行分析,后者更加直觀方便。第四步在FPGA的開發工具中實現,可以用IP核,也可以用乘加的邏輯,前者方便簡潔,對時序的控制更好,便于綜合和布局布線,適用于FPGA工程的快速迭代。第五步在EDA仿真軟件中完成,主要是驗證濾波器的時序和邏輯的正確性。最后再回到MATLAB,用頻譜分析輸出數據是否正確。一般情況下,對于LTE信號,在RRU中的數據率變換關系如表1所示。

圖7 插值與抽取濾波器的設計流程

表1 RRU中不同帶寬數據率變換
例如,當載波帶寬為5 MHz的時候,輸入信號數據率為7.68 Mbit/s,經過DUC后,信號數據率為122.88 MHz,因此需要16倍的插值濾波,可以設計4個×4的插值濾波器級聯;當載波帶寬為20 MHz的時候,信號數據率為122.88 Mbit/s,經過DDC后,信號數據率為30.72 Mbit/s,因此需要4倍的抽取濾波,可以設計2個×2的抽取濾波器級聯。
在MATLAB中,FDAtool工具可以通過圖形化的設計來生成所需的濾波器系數。FDAtool工具界面顯示如圖8所示。

圖8 FDAtool工具界面
在圖形化界面中設置Response Type為Halfband Lowpass。設載波帶寬為20 MHz,有效帶寬18 MHz,由圖5可知,fpass為18 MHz/4=4.5 MHz。采樣率從30.72~122.88 MHz之間變換。當30.72 MHz時,系數為18階;當61.44 MHz時,系數為10階;當122.88 MHz時,系數為6階。因此鏈路上整個濾波器就是三個濾波器級聯。
產生濾波器系數也可以用MATLAB的函數實現。MATLAB有自帶的半帶濾波器設計函數firhalfband,直接返回濾波器的系數。函數的具體語法可以用help來查閱。此時生成的濾波器系數是雙精度浮點型的小數,為了在FPGA中實現,必須對其做定點化,例如系數是16 bit或者18 bit二進制整數,最后存儲在.coe文件中。
在FPGA中實現時,通常采用IP核完成。以Xilinx的Vivado開發軟件為例,選擇FIR Compiler。Coefficient File用上文MATLAB生成的.coe文件,Filter Type可以選擇Interpolation或者Decimation,Rate Value表示插值或者抽取的倍數。此外通道數、數據率等接口信息在Channel Specification中設置,如圖9所示。

圖9 Xilinx的FIR濾波器IP核設計界面
本文在帶通采樣理論的基礎上,分析了通信系統里上下變頻鏈路中的多采樣率濾波器的原理,并采用MATLAB與FPGA聯合開發的方式,詳細設計了插值與抽取濾波器,具有實際的工程意義。