prbs:pseudo-random binary sequence,即偽隨機碼,常用於高速序列通道的測試。為什麼叫偽隨機,因為其對於通道來說,碼型看上去像是隨機的,沒有規律的出現,但實際上的碼型是由生成多項式確定了的,並且有重複週期。要理解它,先從實現機制說起。
lfsr(linear-feedback shift register)
該lfsr對應的生成多項式為:
多項式裡的1代表輸入,即x^0。x^3與x^4分別代表移位暫存器的第3位與第4位。
移位暫存器的動作過程如同上面圖中所示,每一次移位都會使移位暫存器切換到下乙個狀態,4位移位暫存器總共可以有2^4=16種狀態,除去0000狀態之外,該lfsr可以在剩下的15個狀態中迴圈切換。
如果我們令lfsr的狀態從0001開始,每一次移位都將x^4輸出,則可以生成的隨機碼序列為:
100010011010111 - 100010011010111 - 100010011010111……
完成15個bit輸出後,迴圈重複。
生成多項式
那麼為什麼選用第3位與第4位相加反饋?如果是選用第2位與第4位會怎麼樣?
同樣以0001開始,lfsr的狀態切換過程為:
可以看到,只遍歷了6個狀態就回到了初始狀態,生成的隨機序列為100010……
只有6個隨機碼,然後開始迴圈重複,隨機性顯然不如之前的多項式,而且如果使用其它初始狀態,可能會生成不同的隨機碼。(例如初始狀態為1111)
前面的生成多項式(1+x^3+x^4)稱為mls(maximum length sequence),關於mls分析有時間再單獨討論,常用的prbs都是mls。
prbs特點與使用
不同的prbs生成多項式可以生成不同的碼型,有不同的應用場景,以prbs7為例,移位暫存器可以遍歷除0000000外的所有狀態,所以可以遍歷的狀態為2^7-1個,生成的碼型位數為2^7-1。碼型中連續1最長為7位,最長連續0為6位。在實際應用中常用於8b/10b編碼的通道測試,8b/10b編碼的碼型最長的1或0的位數為5位。同樣的通道使用prbs7碼型要比8b/10b編碼產生的結果要稍差一些,這樣也可以保證一定的設計裕量。
什麼是泛型
分類 泛型 c 應用 2009 02 25 10 04 550人閱讀收藏 舉報 前言 net 2.0中泛型的出現是乙個令人激動的特徵。但是,什麼是泛型?你需要它們嗎?你會在自己的應用軟體中使用它們?在本文中,我們將回答這些問題並細緻地分析泛型的使用,能力及其侷限性。型別安全 net中的許多語言如c ...
泛型 什麼是泛型
泛型 即通過引數化型別來實現在同乙份 上操作多種資料型別。泛型程式設計是一種程式設計正規化,它利用 引數化型別 將型別抽象化,從而實現更為靈活的復用。c 泛型的作用概述 c 泛型賦予了 更強的型別安全,更好的復用,更高的效率,更清晰的約束。在乙個方法中,乙個變數的值是可以作為引數,但其實這個變數的型...
泛型 為什麼是泛型?
需求 先需編寫乙個程式,用棧 stack 進行進棧和出棧操作,並對棧中的元素進行運算。方案一 假設元素為int型別,則可使用 code class stack public void push int x public int pop 客戶 code class test 然而,現在需求發生變化。客...