一種基于FPGA的誤碼性能測試方案
在數字通信系統(tǒng)的性能測試中,通常使用誤碼分析儀對其誤碼性能進行測量。它雖然具有簡單易用、測試內容豐富、誤碼測試結果直觀、準確等優(yōu)點,但是,價格昂貴、不易與某些系統(tǒng)接口適配,通常需要另加外部輔助長線驅動電路;此外,誤碼分析儀對于突發(fā)通信系統(tǒng)的誤碼性能測試存在先天不足。例如,在對TDMA系統(tǒng)上行鏈路誤碼性能測試時,只有通過外加接口,對連續(xù)數據進行數據壓擴,才能為被測設備模擬出突發(fā)形式的數據,從而完成測試。這給測試工作帶來極大的不便。
另一方面,現今的通信系統(tǒng)大量采用FPGA作為系統(tǒng)的核心控制器件。將物理層上的各協議層的功能集中在FPGA內部實現,不僅提高了通信系統(tǒng)的集成,同時也減少了硬件和軟件設計的復雜度。
基于上述兩方面的考慮,筆者在FPGA內部實現了一個簡易的多功能誤碼分析儀。該誤碼儀主要有三方面優(yōu)點:一是可以根據用戶需要,以連續(xù)或突發(fā)的方式產生若干種不同的隨機序列或固定序列,并據此測試數字通信系統(tǒng)的誤碼性能;二是測試結果可以誤碼率或者誤碼數兩種形式,通過外圍器件直觀地顯示出來;三是作為被測系統(tǒng)的一個嵌入式模塊,便于功能擴展及系統(tǒng)調試。
1 偽隨機序列(m序列)
許多數字通信理論的結論都基于這樣一個假設:原始的信源信號為0、1等概并相互獨立的隨機數字序列。同樣,實際數字通信系統(tǒng)的設計,也是基于相同假設。因此,為使測試結果盡可能真實地反映系統(tǒng)的性能,采用偽隨機序列(m序列)作為測試中傳輸的信號。
M序列是一種線反饋移位寄存器序列,其原理方框圖如圖1所示。每級移位寄存器的輸出被反饋系數Ci加權(Ci可以取1或0),經模2和運算再反饋到第一級。令第一級的輸入為ak,就有:
根據反饋系數的取值不同,電路可以產生出各種具有不同特性的數字序列。對于一定的移位寄存器級數r,存在一些特殊的Ci取值,使得輸出序列的周期達到最長,即為2r-1。這樣的序列被稱為最長線性反饋移位寄存器序列,即m序列。
2 誤碼儀測試原理
該誤碼儀由發(fā)端模塊和收端模塊兩部分組成。發(fā)端模塊產生連續(xù)或者突發(fā)的比特流,作為通信系統(tǒng)的信源數據;收端模塊接收通信系統(tǒng)輸出的比特流,并將其與本地產生的、與發(fā)端形式相同的比特流進行比較,從而完成誤碼測試。從邏輯上看,誤碼儀的工作過程大致可以分成以下幾個步驟:
(1)發(fā)端模塊產生原始數據,并使其通過被測通信系統(tǒng)構成的信道;
(2)收端模塊產生與發(fā)端相同碼型、相同相位的數據流;
(3)將收到的數據流與收端產生的本地數據流逐比特地比較,并進行誤碼統(tǒng)計;
(4)根據誤碼統(tǒng)計結果,計算出相應的誤碼率,并輸出誤碼指示。
誤碼儀收端模塊所面臨的最主要問題是如何準確地實現本地產生的m序列與收到的數據流同步,即比特對齊,這是整個誤碼儀正常工作的前提。為了適應各種不同類型的通信系統(tǒng),根據m序列的性質,采用隨動同步的方法解決這個問題。圖2給出了隨動同步的原理框圖。
通過上述討論知道,周期為2r-1的m序列發(fā)生器由r級移位寄存器組成。同時,由r個比特所能組成的所有序列(除全零序列外)都會在m序列的一個周期內遍歷,且相應的前后位置固定。因此,如果兩個具有相同邏輯結構的m序列發(fā)生器在某一時刻所有寄存器狀態(tài)完全相同,則由這兩個m序列發(fā)生器所產生的數字數據流保持同步。隨動同步就是根據m序列的這個性質實現的。
3 誤碼儀邏輯結構
發(fā)端模塊
本誤碼儀的發(fā)端模塊實質上是一個多功能的序列發(fā)生器。用戶可以通過相應的控制信號,指定其m序列發(fā)生器的線性反饋邏輯。由它產生的數字數據流將作為仿真數據送出到需要進行誤碼性能測試的數字通信系統(tǒng)中。
收端模塊
收端模塊在邏輯上可以分成兩個功能子模塊:一是m序列發(fā)生子模塊,二是誤碼統(tǒng)計子模塊。前者的邏輯功能與發(fā)端模塊相類似,其作用是產生一個與發(fā)端形式相同并且比特對齊的本地m序列;后者的作用是將收到的數據與本地m序列相比較,同時統(tǒng)計誤碼指標,從而完成對數字通信系統(tǒng)的誤碼性能測試。
在測試過程中,接收到的數字序列被不斷地逐次移入接收數據緩沖器中。在接收序列中,任意截取包含r個連續(xù)比特的片斷(其中r為發(fā)端m序列發(fā)生器的階數),將其置入本地m序列發(fā)生器的移位寄存器中,作為其初始狀態(tài),并假定此時收發(fā)雙方已同步在這個狀態(tài)。此后,本地m序列發(fā)生器與接收數據緩沖器同步移位輸出。這樣,只要對兩個序列逐位比較,就可以進行誤碼統(tǒng)計了。需要特別注意:如果截取的數據片斷中包含誤碼,則據此得出的收發(fā)雙方已同步的結論是錯誤的。這樣的數據片斷將導致整個誤碼統(tǒng)計過程失去意義,不妨稱這種情況為同步。為了消除假同步的影響,需要一種保護機制,用以確保收發(fā)雙方的正常同步。