數字信號在物理層傳輸時,本質上是數字信號還是模擬信號,為什麼?

度娘上是這麼解釋物理層的功能為透明的傳送比特流,但是網線算不算是物理層設備呢,如果是那麼根據查的資料「網卡究竟工作在OSI的哪一層?_Linux教程_Linux公社-Linux系統門戶網站」最後一段,我們知道網線上傳送的是模擬信號不是bit流,這作何解釋,如果不是,那網線該屬於哪一層為什麼?


嗯,應該說是數字信號。
可能跟你想像的不同,數字信號和模擬信號在傳輸的時候都是電信號,也都需要調製,我們區分數字信號還是模擬信號,是根據我們編碼和解碼的方法的:

  1. 當我們使用的碼元數量有限的時候,是數字信號
  2. 當我們使用的碼元數量無限的時候,是其他情況;當使用的碼元就是某個實數區間的時候,就是離散/模擬信號

這裡用「其他情況」,是因為印象當中好像沒有定義一些特殊的,比如用[-1,1]之間的有理數作為碼元這樣的詭異的系統……另外,離散/模擬信號是什麼意思呢?離散信號和模擬信號通過奈奎斯特採樣定理相互聯繫,一個離散信號與一個帶限的(即有帶寬限制的)模擬信號是等價的,而能傳輸的信號一般來說一定是頻域有限的,所以我們不需要區分這兩種情況。


在一個理想的傳輸模型中,我們首先將來自信源的信息進行一次變換,將信號映射到一個碼元序列:

X(t) 
ightarrow  {a[n]}

X是我們的信源。在資訊理論當中,X一般用一個隨機變數(或者隨機過程)來描述,可能是離散隨機變數也可能是連續隨機變數。不管怎樣,我們通過某種變換,將這個信源變成了碼元的序列,這個過程一般可以叫做信源編碼。對於數字信號傳輸技術來說,我們總是僅僅使用少數幾個碼元;而對於模擬信號傳輸技術來說,我們使用的碼元是個連續的範圍。比如說,我們可以用0和1兩個碼元來編碼,編碼得到的就是我們最常見的數字信號——比特流。

注意,X這個隨機變數是離散隨機變數還是連續隨機變數,與最後使用的碼元是有限(數字通信)還是無限(模擬通信)並不完全相關,當X是離散隨機變數時我們同樣可以用無限多的碼元來進行編碼(比如熵編碼,這種情況在工程中很少見),反過來,X是連續的隨機變數時我們也同樣可以用有限多的碼元進行編碼,最常見的方法就是AD採樣。


接下來我們要考慮傳輸的問題,一般來說我們在傳輸時能使用的碼元也許跟我們信源編碼得到的結果是不一樣的,比如說我們使用QPSK傳輸的時候,能夠使用四個碼元。另外,信道一般會有一定的誤碼率,我們需要編碼一些冗餘進去對抗這個誤碼率。這個在數字通信當中研究得比較多,不過也不能說一定只有數字通信才存在,在調頻通信這種模擬調製方式當中,由於雜訊不均衡,就有預加重這種方法,也相當於一種信道編碼。


最後,我們終於開始考慮傳輸的問題了,這部分一般來說超出了資訊理論的範圍,進入了工程的領域。一般來說我們會把編碼後的碼元轉換成電信號,這個過程叫做調製;細分起來,又可以分為基帶調製和頻帶調製兩部分,其中基帶調製將符號序列轉變為一個連續的電信號,這個電信號通常有很多低頻分量,適合有線傳輸;而頻帶調製將符號轉變為一個高頻帶通的信號,適合通過無線系統發送。到這一步之後,不管是數字信號還是模擬信號,都變成了連續的電信號,但是這個最多被叫做連續信號,叫模擬信號其實是不正確的。


經過信道傳輸之後,我們的電信號到達了接收方,一般來說這個時候由於雜訊的影響,波形會有一些失真。接受方要做的事情與發送方剛好按順序相反:

  1. 解調:將調製後的信號通過某些方法,還原到信道碼元序列
  2. 信道解碼:將信道碼元序列還原到信源碼元序列,在這個過程中可以進行糾錯或檢錯
  3. 從信源碼元序列還原原始信號

===============================================================


回到問題,怎麼區分數字通信(信號)還是模擬通信(信號)呢?我們從上面的過程中已經看出來了,兩種通信方式區別在於信源/信道碼元,是採用有限數量的碼元,還是連續可變的碼元。我們的乙太網或者其他網路的傳輸的時候,信道碼元都是有限數量的,包括使用電話線撥號上網在內。所以我們的信號在物理層傳輸的時候,仍然毫無疑問是數字信號,而不是模擬信號。


===============================================================


舉乙太網的例子來簡單說明前面的過程:

乙太網物理層的信源來自於上層協議棧,一般來說是一個1518位元組左右的比特流,乙太網不做信源編碼,但是進行一次4B/5B(或者8B/10B)的信道編碼,用來在信號中同時傳輸時鐘信號。乙太網使用基帶調製,而且是最簡單的ASK(鍵控幅度調製),1就是高電平,0就是低電平。

接收方受到的信號是一個變形了的方波,首先需要通過這個信號進行鎖相還原出時鐘,然後通過最簡單的採樣判別的方法解調,將解調後的符號進行4B/5B(或者8B/10B)的解碼,得到原始的1518位元組比特流。

這個過程中的電信號,毫無疑問是數字信號。將中間發送的連續信號描述成模擬信號是很不準確的。


網線不屬於任何一層。我覺得題主犯了一個錯誤,就是把物理層和物理設備或者說物理信號混為一談了。

通信網的七層,只是七個抽象的層,只是對於通信的規則進行通行性的描述,不應該把某些實體的設備對應說是哪一層。你就說你的電腦吧,你用不同的軟體,就可以對不同層的數據進行操作,你說它應該屬於哪一層呢?物理層也只是對各種調製方式、檢錯方式等進行標準的描述,它也是抽象的,並不關係到你的實現或者設備上。
總之一點,七層都是沒有實體的,它們只是對於你所通信的數據一些約定俗成的規則。它們處理的都是抽象數字,並不涉及模擬。不是因為它叫物理層,所以就和物理設備有關係。它這所以叫物理層,是因為它對數據傳輸的物理實現進行了定義。

所以可以這麼認為,你在七層所處理的數據,其實都是數字的,在物理層上也是數字的,所以確確實實是比特流。但是在物理設備中,它肯定是模擬的,因為自然界中的東西都是模擬的,你永遠也找不到一個0或者1出來,是吧?

題主要清楚一點,不要把物理設備和物理層混為一談,整個七層所涉及的所有數據,都是物理設備一層層分析展開再打包合併了的。可以這麼說,各層的意義其實都是人為的,它們本身在傳輸線或者設備內部都是模擬信號,只不過通過人為的規定,把他們規定成了有意義的比特流。

總結就是,傳輸線只是傳輸物理信號的物理設備,並不是物理層的東西。任何信號,本質上來說都是模擬的,比如你覺得計算機處理的都是數字信號嗎?並不是,我們只是把那些各種三極體的輸出電平給視為0或者1,人腦袋裡想的那些數字信號都是一些抽象信號。你不能把抽象的物理層和實際中的模擬信號傳輸的網線放在一起比較。


根據題主的問題,偶大致的理解如下,可能不是特別準確。
如果按照定義而言的話,這裡實際上有三種信號模式:
1.模擬信號,又稱連續時間信號
2.離散時間信號,好像一般採樣的時候可以採用,見的不太多
3.數字信號
其中模擬信號和離散時間信號的區別在於一個是連續的,一個是離散的,而他們的幅值是沒有量化的。而數字信號則是一個離散的,同時其幅值又是量化的,從而我們才可以用數字電路進行實現,比如說我記錄下一個sin波形,按照每個時間點對應的量化幅值,如1,2,3,4這樣記錄下來,然後通過DA晶元把這個量化的幅值按照時間點輸出,從而就能夠輸出一個sin波形。
在傳統的電話網路或者移動網路中間,一般有CS域和PS域的區別,一般好像CS域走的是模擬信號,而PS域走的是數字信號。以打電話做為例子,模擬信號是通過高頻調製傳遞給對方,對方再通過降頻解調來獲得我說法對應的模擬波形。而通過數字信號,在我跟對方說話的時候,本地將我的語音對應採樣成數字的序列,然後對該序列進行編碼,然後傳遞給對方,對方解碼完了之後,再將該序列重新生成模擬波形,對方才可以聽到。由於網路OSI模型是晚於電話通信的,所以在OSI模型物理層應該都是基於PS域的(這話說的不太準確,因為兩個不是同一個模型體系下的,沒有很好的可比性,僅僅作為下參考,如有錯誤,還請指正)。
在我們上面舉的電話傳輸的例子裡面,由於我本身傳遞的語音信號是模擬信號,雖然我可以通過量化編碼的形式(如PCM編碼),記錄成數字信號,再傳遞給對方,但是這裡就多了額外的我本地的量化編碼和對方端的解碼還原兩個動作,雖然在性能上有優勢,但是性價比的角度而言,傳統的CS域還是直接走的是模擬信號。
而在計算機網路中,計算機所存儲以及利用的信息本身就是按照二進位量化存儲的,在傳遞給對端計算機後,其也是按照二進位進行使用的,所以在數據傳遞的過程中,也就是OSI所利用的場景,我們直接採用數字信號傳遞還更為方便,否則利用模擬信號可能要多好幾個步驟。(PS:這裡的數字信號為了傳輸質量的保證一般也是需要進行編碼的,這個過程一般都是被稱為基帶傳輸)
最後一點需要補充的是,這裡的所使用的數字信號實際上我們在說信號在發送以及接收的時候(即工作在彼端和對端網卡的時候)是按照數字信號進行處理的,而信號在網線上真實傳遞的還是模擬的,也就是連續的,自然界中實際上傳遞的都是模擬信號,只不過我們是按照數字信號的方式進行處理的而已。


本質是模擬信號,把模擬信號的強度劃分兩個範圍,屬於一個範圍算 1,另一個範圍的算 0,這就是數字信號了。


推薦閱讀:

tcp重傳機制 對端滑動窗口一直為0時如何處理?
為什麼TCP4次揮手時等待為2MSL?
在計算機領域中,有哪些令你拍案叫絕的思想?
乙太網與互聯網有什麼區別?
埠號和協議號的區別在哪裡?

TAG:計算機科學 | TCPIP |