1. 程式人生 > >HDBn編解碼原理 n階高密度雙極性碼

HDBn編解碼原理 n階高密度雙極性碼

規則 如果 span 不變 自己 這就是 color 密度 一個

/*------------------------------------------------------------------

HDB3 編碼解碼原理     // 轉載

------------------------------------------------------------------*/

要了解HDB3碼的編碼規則,首先要知道AMI碼的構成規則,AMI碼就是把單極性脈沖序列中相鄰的“1”碼(即正脈沖)變為極性交替的正、負脈沖。將“0”碼保持不變,把“1”碼變為+1、-1半占空歸零碼表示的交替的脈沖。如:

NRZ碼:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1

AMI碼:-1 

0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1

HDB3碼是一種AMI碼的改進型,它的編碼原理可簡述為,在消息的二進制代碼序列中:
/*-----------------------------------------------------------------
(1)當連“0”碼的個數不大於3時,HDB3編碼規律與AMI碼相同,即“1”碼變為“+1”、“-1”交替脈沖;

(2)當代碼序列中出現4個連“0”碼或超過4個連“0”碼時,把連“0”段按4個“0”分節,即“0000”,並使第4個“0”碼變為“1”碼,用V脈沖表示。這樣可以消除長連“0”現象。為了便於識別V脈沖,使V脈沖極性與前一個“1”脈沖極性相同。這樣就破壞了AMI碼極性交替的規律,所以V脈沖為破壞脈沖,把V脈沖和前3個連“0”稱為破壞節“000V”;

(3)為了使脈沖序列仍不含直流分量,則必須使相鄰的破壞點V脈沖極性交替;

(4)為了保證前面兩條件成立,必須使相鄰的破壞點之間有奇數個“1”碼。如果原序列中破壞點之間的“1”碼為偶數,則必須補為奇數,即將破壞節中的第一個“0”碼變為“1”,用B脈沖表示。這時破壞節變為“B00V”形式。B脈沖極性與前一“1”脈沖極性相反,而B脈沖極性和V脈沖極性相同。

------------------------------------------------------------------*/

如:
NRZ碼:  1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1

AMI碼:  -1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1

HDB3碼: -1 0 0 0 -V +1 0 0 0 +V -1 +1 –B 0 0 -V +1 -1

雖然HDB3碼的編碼規則比較復雜,但譯碼卻比較簡單。從上述原理看出:每一個破壞符號V總是與前一非0符號同極性(包括B在內)。這就是說,從收到的符號序列中可以容易地找到破壞點V,於是也斷定V符號及其前面的3個符號必是連0符號,從而恢復4個連0碼,再將所有-1變成+1後便得到原消息代碼。


HDB3如此, HDBn是一樣推的. 主要是破壞節的長度不同

// 這裏記錄一個自己理解的小概念
歸零與不歸零:
比如都是表示 "1"

-------------- // 像這種,在整個碼元期間電平保持不變的 就是不歸零
____|------ // 像這種在一個碼元期間內發生變化的,比如先低後高,或者先高後低的就是歸零的

HDBn編解碼原理 n階高密度雙極性碼