曼徹斯特編碼

曼徹斯特編碼

曼徹斯特碼(Manchester code),又稱數字雙向碼、分相碼或相位編碼(PE),是 一種常用的的二元碼線路編碼方式之一,被物理層使用來編碼一個同步位流的時鐘和數據。在通信技術中,用來表示所要傳送比特 流中的數據與定時信號所結合起來的代碼。 常用在乙太網通信,列車匯流排控制,工業匯流排等領域。

基本介紹

  • 中文名:曼徹斯特編碼
  • 外文名:Manchester Encoding
  • 簡稱:ME
  • 套用位置:物理層
編碼規則,表示約定,編碼算法實現,編碼方式,優點,解碼方案,間隔讀取法,連續檢測法,

編碼規則

在曼徹斯特編碼中,每一位的中間有一跳變,位中間的跳變既作時鐘信號,又作數據信號;從高到低跳變表示“1”,從低到高跳變表示“0”。還有一種是差分曼徹斯特編碼,每位中間的跳變僅提供時鐘定時,而用每位開始時有無跳變表示“0”或“1”,有跳變為“0”,無跳變為“1”。
其中非常值得注意的是,在每一位的"中間"必有一跳變,根據此規則,可以得出曼徹斯特編碼波形圖的畫法。例如:傳輸二進制信息0,若將0看作一位,我們以0為中心,在兩邊用虛線界定這一位的範圍,然後在這一位的中間畫出一個電平由高到低的跳變。後面的每一位以此類推即可畫出整個波形圖。

表示約定

對於以上電平跳變觀點有歧義:關於曼徹斯特編碼電平跳變,雷振甲編寫的《網路工程師教程》中對曼徹斯特編碼的解釋為:從低電平到高電平的轉換表示 1,從高電平到低電平的轉換表示0,清華大學的《計算機通信與網路教程》《計算機網路(第4版)》採用如下方式:曼徹斯特編碼從高到低的跳變是 1 從低到高的跳變是 0 ,在維基百科網站中從低到高是0,從高到低是1,國外的網站有明確的表示方法。
第一種G. E. Thomas, Andrew S. Tanenbaum1949年提出的,它規定0是由低-高的電平跳變表示,1是高-低的電平跳變。
第二種IEEE 802.4(令牌匯流排)和低速版的IEEE 802.3乙太網)中規定, 按照這樣的說法, 低-高電平跳變表示1, 高-低的電平跳變表示0。
由於有以上兩種不同的表示方法,所以有些地方會出現歧義。當然,這可以在差分曼徹斯特編碼(Differential Manchester encoding)方式中克服。

編碼算法實現

曼徹斯特編碼算法主要在針對信號的預處理中,算法需要初步估計信源個數以及噪聲模型建立。 信源個數 K 可採用最小描述長度(Minimum DescriptionLength,MDL)準則進行估計,該算法從資訊理論的角度出發,可對信源數進行有效估計。同時, 噪聲矩陣 N =
,各向量服從零均值,方差為
的白復高斯分布且相互獨立,且噪聲與信源相互獨立。 曼徹斯特編碼算法在運算時首先要對分選信號 進行預處理,通過預處理,使維數等於應答信號個數K 。而後由曼徹斯特編碼特性
,將分離矩陣 W 的求解, 轉換聯合對角化公式求解問題,最後通過求解非對稱非正交聯合對角化問題即可求得分離矩陣 W 。

編碼方式

目前常用的曼徹斯特編碼方式主要有: 採用專用的曼徹斯特編解碼器,利用高速單片機實現,採用DSP信號處理器以及利用FPGA 實現等。隨著半導體技術的快速發展和生產工藝水平的不斷提高,FPGA憑藉其在性能和 密度方面的提高和在修改和升級時,只是在計算機上修改和更新程式,簡化了硬體設 計,縮短了系統開發周期,提高了靈活性並降低了成本,獲得廣大硬體工程師的青睞。

優點

由於曼徹斯特編碼每一個碼元的正中間時刻 出現一次電平的轉換。這對接收端的提取位同步信號是非常有利的。但是可從曼徹斯特編碼的波形圖看出其它所占的頻頻寬度比原始的基帶信號增加了一倍。曼徹斯特碼需要較複雜的技術,但可以獲得較好的抗干擾性能。

解碼方案

間隔讀取法

通過定時器控制每隔 一段時間對數據進行一次讀取。因為只有前0.5T的數據是有效的,而後0.5T的數據是沒有效的。所以在讀取數據時只要讀取0-0.5T的數據就可以了.這種方法主要是利用定時器間歇讀取數據來完成的。針對出現的空跳現象,解決的方法是通過延時躲過空跳點,這樣就可以有效的讀出數據了。

連續檢測法

所謂連續檢測法,是針對上面提到的間隔讀取法而言的。這種方法不是間隔讀取數據。而是 一直在監視著電平的變化,然後通過波形維持高電平和低電平的時間長度以及高低電平的有序組合 來判斷當前的數據是“l”還是“0”。

相關詞條

熱門詞條

聯絡我們