PCM(Pulse-Code Modulation,脈衝編碼調製)是現在最為常見的一種音頻編碼格式,什麼wav,ape,flac,mp3等等幾乎所有常見音頻都是pcm編碼格式。
其原理簡單來說,我們先準備好一組規定電平值(對於電平這個概念,可以簡單地等同理解為電壓),比如-3,-2,-1,0,1,2,3等等,每個值給一個編號,就像ABCD這樣,不過我們現在給這些電平值使用二進位的編號(就是000 001 010 等等)。
好了,開始轉換過程,從麥克風過來了一段模擬信號,我們每隔一小段時間,對這個信號採一次樣,得到其採樣電平,然後從先前的那組規定電平內,找出最接近採樣電平的值,嗯..採用四捨五入的辦法....然後記錄下來這個最接近值的編號。
然後進行下一次採樣..如此反覆,就能用一組二進位編號(也就是數位訊號)把麥克風過來的原始模擬信號給記錄下來了,記錄下來的數位訊號就是PCM了。
上面的整個過程就是常說的ADC編碼過程。用畫圖來表示的話,圖中的紅線表示一個信號(隨手畫的,實際的信號更複雜就是了)
縱坐標表示電平值,橫坐標表示時間,縱坐標被平均分成若干份,在圖中每一條橫向黑線代表度量用的規定電平值,橫向從左往右每走一格取一次樣,得到圖中藍色的點,每個點都對應一個縱坐標,也就是取樣點的電平。
然後,我們就要用這組規定電平值來度量和記錄取樣電平了,但是取樣電平肯定不會都剛好等於規定電平的,於是這時候我們就要找相近的電平值來大概地表示這個取樣了,用四捨五入的辦法來記錄接近的電平值,於是,圖中紫色的點表示最終記錄的值。綠線表示記錄的值還原後的信號曲線,可以看出和原信號相比有明顯失真。