NRZ與NRZI編碼解釋

2022-06-10 05:33:09 字數 1879 閱讀 3233

**nrz與nrzi編碼解釋

rz 編碼(return-to-zero code),即歸零編碼。在 rz 編碼中,正電平代表邏輯 1,負電平代表邏輯 0,並且,每傳輸完一位資料,訊號返回到零電平,也就是說,訊號線上會出現 3 種電平:正電平、負電平、零電平:

從圖上就可以看出來,因為每位傳輸之後都要歸零,所以接受者只要在訊號歸零後取樣即可,這樣就不在需要單獨的時鐘訊號。實際上, rz 編碼就是相當於把時鐘訊號用歸零編碼在了資料之內。這樣的訊號也叫做自同步(self-clocking)訊號。

這樣雖然省了時鐘資料線,但是還是有缺點的,因為在 rz 編碼中,大部分的資料頻寬,都用來傳輸「歸零」而浪費掉了。

那麼,我們去掉這個歸零步驟,nrz 編碼(non-return-to-zero code)就出現了,和 rz 的區別就是 nrz 是不需要歸零的:

這樣,浪費的頻寬又回來了,不過又喪失寶貴的自同步特性了,貌似我們又回到了原點,其實這個問題也是可以解決的,不過待會兒再講,先看看什麼是nrzi:

nrzi 編碼(non-return-to-zero inverted code)和 nrz 的區別就是 nrzi 用訊號的翻轉代表乙個邏輯,訊號保持不變代表另外乙個邏輯。

usb 傳輸的編碼就是 nrzi 格式,在 usb 中,電平翻轉代表邏輯 0,電平不變代表邏輯1:

翻轉的訊號本身可以作為一種通知機制,而且可以看到,即使把 nrzi 的波形完全翻轉,所代表的資料序列還是一樣的,對於像 usb 這種通過差分線來傳輸的訊號尤其方便~

現在再回到那個同步問題:

的確,nrz 和 nrzi 都沒有自同步特性,但是可以用一些特殊的技巧解決。比如,先傳送乙個同步頭,內容是 0101010 的方波,讓接受者通過這個同步頭計算出傳送者的頻率,然後再用這個頻率來取樣之後的資料訊號,就可以了。

在 usb 中,每個 usb 資料報,最開始都有個同步域(sync),這個域固定為 0000 0001,這個域通過 nrzi 編碼之後,就是一串方波(複習下前面:nrzi 遇 0 翻轉遇 1 不變),接受者可以用這個 sync 域來同步之後的資料訊號。

此外,因為在 usb 的 nrzi 編碼下,邏輯 0 會造成電平翻轉,所以接受者在接受資料的同時,根據接收到的翻轉訊號不斷調整同步頻率,保證資料傳輸正確。

但是,這樣還是會有乙個問題,就是雖然接受者可以主動和傳送者的頻率匹配,但是兩者之間總會有誤差。假如資料訊號是 1000 個邏輯 1,經過 usb 的nrzi 編碼之後,就是很長一段沒有變化的電平,在這種情況下,即使接受者的頻率和傳送者相差千分之一,就會造成把資料取樣成 1001 個或者 999 個 1了。

usb 對這個問題的解決辦法,就是強制插 0,也就是傳說中的 bit-stuffing,如果要傳輸的資料中有 7 個連續的 1,傳送前就會在第 6 個 1 後面強制插入乙個 0,讓傳送的訊號強制出現翻轉,從而強制接受者進行頻率調整。接受者只要刪除 6 個連續 1 之後的 0,就可以恢復原始的資料了。

既然說編碼,那就順便把另一種極常用的編碼也說一下把:曼徹斯特編碼

曼徹斯特( manchester )碼是一種雙相碼。用高電平到低電平的轉換邊表示 0 ,而用低電平到高高電平的轉換邊表示 1 。

注:以上關於電平的表示,具體環境或者不同教材給出的規定可能不同,但是原理相同!

USB編碼方式(NRZI)及時鐘同步方式

目錄 1.概述 2.usb自同步傳輸 3.rz 編碼 return to zero code 4.nrz 編碼 non return to zero code 5.nrzi 編碼 non return to zero inverted code 6.usb使用nrzi編碼同步原理 7.usb中用bi...

編碼通俗解釋

很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們看到這樣是好的,於是它們就這機器稱為 計...

onehot編碼解釋

one hot編碼,又稱為一位有效編碼,主要是採用n位狀態暫存器來對n個狀態進行編碼,每個狀態都由他獨立的暫存器位,並且在任意時候只有一位有效。one hot編碼是分類變數作為二進位制向量的表示。這首先要求將分類值對映到整數值。然後,每個整數值被表示為二進位制向量,除了整數的索引之外,它都是零值,它...