感謝閱讀。
上一篇講述了Um接口的物理信道,這一篇將講述語(yǔ)音是如何“裝進(jìn)”物理信道的。換句話說(shuō),上一篇講的是“路”,這一篇講的是“貨”。更具體的,這一篇講的是“貨”是怎么來(lái)的,也就是語(yǔ)音信號(hào)的“數(shù)字化”過(guò)程。
部分示圖和推算引用自曹志剛的《現(xiàn)代通信原理》和陳愛軍的《深入淺出通信原理》,版權(quán)歸原作者所有。為了內(nèi)容的可讀性和風(fēng)格的統(tǒng)一性,我重新進(jìn)行了繪制和標(biāo)注,如果存在理解不到位而產(chǎn)生的錯(cuò)誤...… 這個(gè)歸我(要不還能咋地)。由于編輯器不支持輸入公式,文中對(duì)推算只能進(jìn)行有限的表述,請(qǐng)大家結(jié)合示圖理解。
言歸正傳。
GSM系統(tǒng)的目標(biāo),是把通話一方的聲音傳送到另一方,反向亦然。在這一點(diǎn)上,GSM和PSTN(Public Switched Telephone Network,公共交換電話網(wǎng)絡(luò)…… 就是你家里那個(gè)座機(jī)啦)是相同的,“數(shù)字化”的原理也是相似的。
大家小時(shí)候也許玩過(guò),用細(xì)線串接兩個(gè)紙杯底部,把線拉直便是一個(gè)簡(jiǎn)易的通話系統(tǒng)(我們才這么無(wú)聊,現(xiàn)在小朋友都玩真手機(jī)了)。發(fā)送方對(duì)著紙杯說(shuō)話,聲波使紙杯產(chǎn)生振動(dòng),振動(dòng)通過(guò)細(xì)線傳送,接收方紙杯產(chǎn)生相同的振動(dòng),于是聽到發(fā)送方的聲音。這里暫且把這個(gè)系統(tǒng)稱為CUP吧。
GSM和CUP有什么不同呢?
CUP通過(guò)細(xì)線傳送聲波,只適合短距離通信。我們常說(shuō)過(guò)去通信靠吼,CUP還真不如吼傳得遠(yuǎn)。不過(guò)要是不會(huì)“千里傳音”,長(zhǎng)距離通信還是交給GSM吧。GSM沒有直接傳送聲波,這是實(shí)現(xiàn)長(zhǎng)距離通信的關(guān)鍵。在GSM看來(lái),網(wǎng)絡(luò)傳送的是“信息”而不是“聲音”。發(fā)送方從“聲音”轉(zhuǎn)換為“信息”,接收方則從“信息”恢復(fù)出“聲音”。
GSM終端將聲波轉(zhuǎn)換為電平信號(hào),再轉(zhuǎn)換為無(wú)線信號(hào),這就比CUP傳送的遠(yuǎn)得多,通過(guò)中繼可以實(shí)現(xiàn)更長(zhǎng)距離的傳送。第一步又稱為聲電轉(zhuǎn)換,一百多年前貝爾就已經(jīng)實(shí)現(xiàn)了。終端通過(guò)電磁感應(yīng)將聲波轉(zhuǎn)換為隨時(shí)間連續(xù)變化的電平值,即語(yǔ)音信號(hào)。這就是網(wǎng)絡(luò)需要傳送的“信息”。(不太嚴(yán)格的) 電磁感應(yīng)是法拉第發(fā)現(xiàn)的(名字不幸被賈布斯盯上了),說(shuō)的是:閉合電路的部分導(dǎo)體在磁場(chǎng)中切割磁感線時(shí),由于磁通量發(fā)生變化,導(dǎo)體會(huì)產(chǎn)生感應(yīng)電流。動(dòng)圈式話筒應(yīng)用了電磁感應(yīng)原理,將聲波轉(zhuǎn)換為膜片振動(dòng),帶動(dòng)套在磁極上的線圈運(yùn)動(dòng),線圈切割磁感線產(chǎn)生感應(yīng)電流。(示圖中運(yùn)動(dòng)的是磁極而不是線圈,大家將就看看吧… 運(yùn)動(dòng)是相對(duì)的嘛) 第二步有兩種方式可選擇:模擬通信或數(shù)字通信。很長(zhǎng)一段時(shí)間里,電話、電臺(tái)和電視都使用模擬通信方式。模擬通信簡(jiǎn)單來(lái)說(shuō)就是“依葫蘆畫瓢”,發(fā)送方根據(jù)語(yǔ)音信號(hào)產(chǎn)生波形“一模一樣”的波動(dòng)信號(hào)(比如AM調(diào)制,已調(diào)信號(hào)的包絡(luò)和基帶信號(hào)的波形是相同的),接收方從波動(dòng)信號(hào)恢復(fù)出語(yǔ)音信號(hào)。這種通信方式我們稱為模擬通信。(CUP也可看作模擬通信系統(tǒng))
思路很直接,問(wèn)題也很多。
模擬信號(hào)容易受噪聲和干擾影響而產(chǎn)生失真,電話的雜音和電視的雪花都是信號(hào)失真的反映。模擬信號(hào)失真難以消除,長(zhǎng)距離傳送失真還會(huì)積累,在無(wú)線環(huán)境中尤為明顯。模擬信號(hào)難以加密,信息容易被竊聽,這也是第一代移動(dòng)通信系統(tǒng)(如TACS)的缺點(diǎn)之一。
如果把語(yǔ)音信號(hào)看成一段小曲(一連串高低起伏的音符),模擬通信就像發(fā)送終端跟著用戶A哼哼,接收終端聽到再唱給用戶Z聽??梢韵胂螅脩鬦聽的和用戶A唱的多少有點(diǎn)差別,原因可能是唱的人跑調(diào),或是聽的人五音不全,甚至是環(huán)境太嘈雜了。
如果小曲經(jīng)過(guò)傳唱(BTS、BSC、MSC)可能就差的更遠(yuǎn)了。想象有這么一群人,A唱給B聽,B唱給C聽…… 經(jīng)過(guò)若干人傳唱后,最后Z聽到的會(huì)是什么樣。也許A唱的是“你是我的主打歌”,而Z聽到的卻是“你是我的豬大哥”。這就是信號(hào)的“失真”。
數(shù)字通信的思路,是把小曲記錄成簡(jiǎn)譜,再轉(zhuǎn)換成兩線譜。兩線譜只有兩個(gè)音:低音Do和高音Do。在具體實(shí)現(xiàn)上,就是發(fā)送方把語(yǔ)音信號(hào)轉(zhuǎn)換成“0”和“1”構(gòu)成的數(shù)字信號(hào)(如何表示“0”和“1”有多種形式)。這個(gè)過(guò)程我們稱為“信源編碼”,或通俗的稱為“數(shù)字化”。
發(fā)送方看見“1”就唱高音Do,看見“0”就唱低音Do,接收方根據(jù)聽到的音調(diào)記錄數(shù)字信號(hào),再解碼恢復(fù)出簡(jiǎn)譜。高音Do和低音Do差別明顯,比音高相近的音符容易區(qū)分,即使跑點(diǎn)兒調(diào)(信號(hào)失真)也能猜個(gè)八九不離十。數(shù)字通信對(duì)信道的要求低于模擬通信,抗干擾性顯然強(qiáng)于模擬通信。
除此以外,數(shù)字通信還有很多優(yōu)點(diǎn):長(zhǎng)距離傳送可中繼放大,消除失真的積累;接收方可檢測(cè)是否存在誤碼,甚至可進(jìn)行糾錯(cuò)(本質(zhì)是增加冗余信息,犧牲帶寬換取可靠性);可應(yīng)用加密保護(hù)和完整性保護(hù),以確保信息不被竊聽或篡改。
GSM是第二代移動(dòng)通信系統(tǒng)(所謂的2G網(wǎng)絡(luò)),自然采用數(shù)字通信方式。GSM希望接收方盡量還原語(yǔ)音信號(hào),又希望編碼不太長(zhǎng)以節(jié)省帶寬 —— 換句話說(shuō),就是編碼效率要高。怎么把時(shí)間連續(xù)、幅度連續(xù)的語(yǔ)音信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),才可以達(dá)到GSM的期望呢?
首先得對(duì)語(yǔ)音信號(hào)分段。
在CUP中是沒有分段的,發(fā)送方說(shuō)話細(xì)線就跟著振動(dòng),紙杯之間聲波是連續(xù)傳送的(把線一掐通話會(huì)立刻中斷)。在GSM中無(wú)線信道可不會(huì)跟著發(fā)送方說(shuō)話振動(dòng),不說(shuō)別的,物理信道在時(shí)間上就不是連續(xù)的(“時(shí)隙”的物理意義,終端每隔約4.615毫秒發(fā)送一次數(shù)據(jù)),怎么和發(fā)送方說(shuō)話同步振動(dòng)呢?(我認(rèn)為這也是模擬信道和數(shù)字信道的一個(gè)差異)
在GSM看來(lái),從語(yǔ)音信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)和從數(shù)字信號(hào)恢復(fù)為語(yǔ)音信號(hào)都是終端的事,網(wǎng)絡(luò)主要負(fù)責(zé)傳送數(shù)字信號(hào)。終端將時(shí)間連續(xù)的語(yǔ)音信號(hào)分段,轉(zhuǎn)換為數(shù)字信號(hào)再交給網(wǎng)絡(luò)傳送。物理信道是否時(shí)間連續(xù)并不重要,只要終端產(chǎn)生信號(hào)的速率和網(wǎng)絡(luò)傳送信號(hào)的速率匹配即可,關(guān)于這點(diǎn)后面再來(lái)驗(yàn)證。
和PSTN、VoLTE相同,GSM將語(yǔ)音每20毫秒分成一段。為什么取這么短呢?如果每10秒分成一段,終端要等用戶說(shuō)完10秒才開始轉(zhuǎn)換,就算信號(hào)瞬間傳送到另一端,對(duì)方聽到的聲音也是10秒前產(chǎn)生的,對(duì)于時(shí)延敏感的語(yǔ)音業(yè)務(wù)顯然不可行。為了減輕對(duì)用戶感知的影響,分段時(shí)長(zhǎng)必須足夠短。(也可以減輕個(gè)別分段傳送失敗的影響。)
接著,終端將20毫秒語(yǔ)音信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。語(yǔ)音信號(hào)的時(shí)間和幅度都是連續(xù)的,取值具有無(wú)限多可能性(跟實(shí)數(shù)一樣多),要轉(zhuǎn)換為有限長(zhǎng)度的編碼必須先離散化。在時(shí)間(橫軸)上的離散化稱為采樣,在幅度(縱軸)上的離散化稱為量化。
采樣和量化就是把小曲記錄成簡(jiǎn)譜的過(guò)程。
如果我唱“兩只老虎”給你聽,你會(huì)怎么記錄呢?一般的歌曲,音符長(zhǎng)度是規(guī)整的,比如一拍、兩拍、四拍等,假設(shè)只有這三種音符,每一拍記錄一次音高就可以了,因?yàn)槟恪按_信”接下來(lái)這一拍都是這個(gè)音高。如果我唱了個(gè)兩拍的Do,你就記錄成兩個(gè)Do。這個(gè)過(guò)程就是采樣。(這里放個(gè)“兩只老虎”的鏈接,是不是覺得寫個(gè)簡(jiǎn)譜So Easy,感覺自己滿滿的都是藝術(shù)細(xì)胞?) 如果我是個(gè)靈魂歌手,對(duì)你的考驗(yàn)就大了。假如你聽到一個(gè)Do和Re之間的音,就要判斷我唱的是Do還是Re。你把音域以Do、Re、Me、Fa、So、La、Ti為中心劃分為七個(gè)區(qū)間(對(duì)不起,我不是張靚穎),不管你聽到的音多不準(zhǔn)總會(huì)落入一個(gè)區(qū)間,記錄為相應(yīng)的音符就可以了,換句話說(shuō),聽起來(lái)像哪個(gè)就記成哪個(gè)。這個(gè)過(guò)程就是量化。
可是我來(lái)脾氣了:誰(shuí)說(shuō)我在唱“兩只老虎”啦,誰(shuí)要你修音啦,我唱的再難聽,也得如實(shí)記錄下來(lái)。為了能更好的記錄和還原我“美妙”的歌聲,你提高了采樣頻率,劃分了更多量化區(qū)間,信心滿滿的來(lái)找我,結(jié)果發(fā)現(xiàn)我在唱“忐忑”,于是你內(nèi)心崩潰了。(這里放一個(gè)“忐忑”的鏈接,大家感受一下這種“忐忑”的心情) 數(shù)字通信的挑戰(zhàn),就在于不能預(yù)判輸入會(huì)是什么樣(要是知道對(duì)方會(huì)說(shuō)什么還打啥電話,語(yǔ)音信號(hào)是隨機(jī)信號(hào),這是后續(xù)分析的重要前提)。你無(wú)法知道最短音符是一拍,如果我唱了個(gè)二分之一拍音符,每一拍采樣一次就會(huì)錯(cuò)過(guò)這個(gè)變化;你也無(wú)法知道音域只有一個(gè)八度,如果我變身張靚穎,你記下一大堆高音Do,什么都還原不出來(lái)。由此可見,數(shù)字通信只適用于特定范圍的信號(hào),對(duì)應(yīng)的頻率和幅度范圍,我們不太嚴(yán)格的稱為“動(dòng)態(tài)范圍”。
即使在動(dòng)態(tài)范圍內(nèi),無(wú)論如何增加量化區(qū)間,輸出總是和輸入存在偏差。就像我們用簡(jiǎn)譜去記錄原生態(tài)歌曲(有可能比“忐忑”還忐忑),總是無(wú)法完全還原這些歌曲的神韻。這就是“數(shù)字化”引入的失真。
如果聽覺角度不好理解,我換成視覺解釋一下。我的高中數(shù)學(xué)老師很厲害,拿著粉筆一揮就是一個(gè)圓(我總覺得和體型有關(guān),對(duì)不起了尊敬的紀(jì)老師)。不過(guò),大部分人是學(xué)不來(lái)的,我們是怎么畫圓的呢—— 我們會(huì)先打上一圈點(diǎn),感覺差不多了再連成一個(gè)圓。(也可理解為從正多邊形逼近于圓,祖沖之也是這么干的)
GSM終端也這樣記錄和恢復(fù)語(yǔ)音信號(hào)的波形,終端以固定間隔記錄電平值,相當(dāng)于記錄打點(diǎn)位置,這個(gè)過(guò)程就是采樣。采樣獲得的電平值是個(gè)實(shí)數(shù),取值仍然具有無(wú)窮多可能,終端將其劃歸為某個(gè)區(qū)間,并以中間值替代作為重建值,這個(gè)過(guò)程就是量化。
采樣頻率越高,量化區(qū)間越多,重建信號(hào)越接近語(yǔ)音信號(hào),但相應(yīng)的編碼越長(zhǎng),網(wǎng)絡(luò)傳送的信息越多,需要的帶寬越大,這里存在一個(gè)平衡??梢钥吹?,這里提到的信源編碼,本質(zhì)上依然是“依葫蘆畫瓢”,這種編碼我們稱為“波形編碼”。 來(lái)看一下采樣數(shù)對(duì)失真的影響。黃色曲線表示語(yǔ)音信號(hào),藍(lán)色鋸齒線表示重建信號(hào)。采樣數(shù)為28時(shí),重建信號(hào)和語(yǔ)音信號(hào)相對(duì)接近,采樣數(shù)下降到14時(shí)失真顯著增大,采樣數(shù)下降到7時(shí)失真已經(jīng)無(wú)法接受。量化區(qū)間數(shù)對(duì)信號(hào)失真的影響相似。
具體說(shuō)一下采樣。
GSM采樣頻率為8KHz,20毫秒語(yǔ)音信號(hào)包含160個(gè)樣本。直覺上采樣頻率多高都無(wú)法避免失真,但GSM認(rèn)為8KHz就足夠了,這個(gè)結(jié)論主要基于兩位老人家的發(fā)現(xiàn),一位是傅立葉,另一位是奈奎斯特。(有的人活著,他已經(jīng)死了;有的人死了,他還在折磨學(xué)習(xí)通信的孩子…)
傅立葉說(shuō):我有一個(gè)大膽的想法!周期信號(hào)都可以分解為成諧波關(guān)系的正弦波和余弦波。這句話的數(shù)學(xué)表述就是我們常說(shuō)的“傅立葉級(jí)數(shù)”。若干年后,狄利克雷(或稱為狄里赫利)證明了傅立葉的猜想在一定條件下是成立的,這些條件當(dāng)然就是“狄利克雷條件”。
狄利克雷條件說(shuō)的是: <1>函數(shù)在任意的有限區(qū)間內(nèi)連續(xù),或存在有限數(shù)量的第一類間斷點(diǎn)(即左極限、右極限都存在的間斷點(diǎn)); <2>在一個(gè)周期內(nèi),函數(shù)存在有限數(shù)量的極大值或極小值; <3>函數(shù)在單個(gè)周期內(nèi)絕對(duì)可積。
更具體的,傅立葉級(jí)數(shù)有兩種表述形式,第一種是三角函數(shù),將f(t)分解為常數(shù)項(xiàng)、余弦級(jí)數(shù)和正弦級(jí)數(shù)。第二種是復(fù)指數(shù)函數(shù),可根據(jù)歐拉公式由第一種轉(zhuǎn)換得到。系數(shù)cn和an、bn的關(guān)系如下:<1>c0 =a0/2; <2>n>0時(shí),cn=(an-jbn)/2;<3>n<0時(shí),cn=c|n|,即正負(fù)頻率成分的系數(shù)相同。 即使不經(jīng)過(guò)嚴(yán)格的證明,也可以想象周期函數(shù)為什么可以分解為正弦級(jí)數(shù)和余弦級(jí)數(shù)。一方面,周期相同的周期函數(shù)疊加依然是周期函數(shù),正弦函數(shù)和余弦函數(shù)是周期函數(shù),如果基波cosωt和sinωt周期為T,則T也是n次諧波cosnωt和sinnωt的周期,因而成諧波關(guān)系的正弦函數(shù)和余弦函數(shù)疊加依然是周期函數(shù)。另一方面,任何函數(shù)均可分解為一個(gè)奇函數(shù)[ f(t) - f(-t) ] / 2和一個(gè)偶函數(shù)[ f(t) f(-t) ] / 2,且奇函數(shù)疊加依然是奇函數(shù),偶函數(shù)疊加依然是偶函數(shù),而正弦函數(shù)和余弦函數(shù)正好分別是奇函數(shù)和偶函數(shù)。
由此可見,將周期函數(shù)分解為正弦級(jí)數(shù)和余弦級(jí)數(shù)是可能的,如果你接受了這個(gè)設(shè)定(來(lái)不及解釋了,快上車),剩下的事情就是計(jì)算系數(shù)an和bn了。計(jì)算的訣竅是在等式兩側(cè)同時(shí)乘以cosnωt(或sinnωt),再進(jìn)行積分。計(jì)算過(guò)程利用了三角函數(shù)的正交特性,即當(dāng)m<>n時(shí),cosmωt x cosnωt(或sinmωt x sinnωt等組合)在一個(gè)周期內(nèi)積分為0。這樣等式右側(cè)的級(jí)數(shù)就只留下了an或bn那一項(xiàng)不為0。
我們來(lái)嘗試分解一個(gè)周期為T,幅度為-E/2或 E/2的方波信號(hào)。由計(jì)算結(jié)果可見:an=0,即分解后只包含正弦波,這很容易理解,示圖中的方波是奇函數(shù),因而分解后不包含余弦波(偶函數(shù));n為偶數(shù)時(shí)bn=0,即分解后只包含基波和奇數(shù)次諧波,其角速率(ω=2π/T=2πf)分別為ω0、3ω0、5ω0…… 角速率(或頻率)越高的諧波分量越小。 再反過(guò)來(lái)驗(yàn)證一下。如果把級(jí)數(shù)的前n項(xiàng)疊加,可以看到n越大輸出波形越趨近于方波。n=5時(shí)疊加出方波雛形,n=11時(shí)已經(jīng)接近方波,n=31相對(duì)于n=21線條更趨于平滑,但波形差別已經(jīng)很小,可見高頻成分對(duì)輸出影響越來(lái)越小,和計(jì)算結(jié)果相吻合。 傅立葉級(jí)數(shù)有什么用呢?
用戶不是復(fù)讀機(jī),語(yǔ)音信號(hào)也不是周期信號(hào)。傅立葉又說(shuō)了:非周期信號(hào),可以看作周期無(wú)限長(zhǎng)的周期信號(hào)。當(dāng)基波的周期T趨向于無(wú)窮大時(shí),其諧波頻率的間隔(即基波頻率f)則趨向于無(wú)窮小。傅立葉級(jí)數(shù)的求和運(yùn)算轉(zhuǎn)換為積分運(yùn)算。
因而,非周期信號(hào)也可分解為正弦波和余弦波,只是頻率成分不再是離散的,而是連續(xù)的。我們把不同頻率的權(quán)重稱為頻譜系數(shù),這是一個(gè)以角速率ω(或頻率f)為自變量的函數(shù),可記錄為F(ω)。通過(guò)f(t)計(jì)算F(ω)的(信號(hào)分解)過(guò)程稱為“傅立葉變換”,通過(guò)F(ω)計(jì)算f(t)的(信號(hào)合成)過(guò)程則稱為“傅立葉反變換”。 反過(guò)來(lái),周期信號(hào)也可看作非周期信號(hào)的特例。周期信號(hào)的頻譜具有三個(gè)特點(diǎn):<1>離散性:頻譜是離散而不是連續(xù)的;<2>諧波性:分量不為零的頻率均為基波的整數(shù)倍;<3>收斂性:或n大于某個(gè)值時(shí)F(ω)=0,或n趨近于無(wú)窮大時(shí)F(ω)趨近于0。
傅立葉變換的意義在于改變我們看信號(hào)的角度。
傅立葉告訴我們:萬(wàn)物皆表象(傅立葉:對(duì),是我說(shuō)的)。時(shí)域中幅度隨時(shí)間的不同變化,等同于頻域中頻譜的不同構(gòu)成。語(yǔ)音信號(hào)在時(shí)域看沒什么特征,在頻域看特征卻相當(dāng)明顯:當(dāng)角頻率ω大于一定值時(shí),頻譜系數(shù)F(ω)趨近為零。我們把具有這種特征的信號(hào)稱為“帶限信號(hào)”。
實(shí)際上,聲音信號(hào)基本都是“帶限信號(hào)”。比如說(shuō),西班牙吉他有六根琴弦,細(xì)弦比粗弦振動(dòng)頻率高,發(fā)出的音也高。如果縮短琴弦振動(dòng)的長(zhǎng)度,提高振動(dòng)頻率,就可以發(fā)出更高的音。吉他手彈高音時(shí),手總是按在細(xì)弦最靠下的位置。不過(guò)這已經(jīng)是上限了,他們?cè)僭趺醋晕姨兆?,也無(wú)法讓吉他發(fā)出更高的音。
人的聲帶就像一把吉他,振動(dòng)頻率也是有范圍的,主音一般在85~1100Hz之間,因而語(yǔ)音信號(hào)也是一個(gè)“帶限信號(hào)”。奈奎斯特說(shuō):對(duì)于“帶限信號(hào)”,只要采樣頻率不小于原始信號(hào)最大頻率的兩倍,就可以從采樣完全恢復(fù)出原始信號(hào)。這就是“奈奎斯特采樣定理”或“香農(nóng)采樣定理”(俄羅斯人稱為“科捷利尼科夫采樣定理”,大家都記不住,所以說(shuō)名字不要起的太長(zhǎng))。
簡(jiǎn)單理解一下采樣定理。
在時(shí)域中,采樣相當(dāng)于原始信號(hào)和采樣脈沖(周期沖激信號(hào))相乘,如圖所示,f(t)為原始信號(hào),p(t)為采樣脈沖(假設(shè)采樣頻率為fs,則p(t)周期為Ts=1/fs),g(t) = f(t) x p(t)(這里的x表示乘積)即為采樣信號(hào)。 根據(jù)“時(shí)域相乘等同于頻域卷積”,在頻域中,采樣相當(dāng)于原始信號(hào)和采樣脈沖進(jìn)行卷積,即G(f) = F(f) * P(f)(這里的*表示卷積),采樣脈沖的頻譜是一系列間隔為fs、強(qiáng)度為fs的沖激信號(hào),原始信號(hào)和沖激信號(hào)δ( f – nfs )卷積相當(dāng)于將原始信號(hào)頻譜搬移到nfs位置,因而,采樣相當(dāng)于以fs為間隔對(duì)原始信號(hào)頻譜進(jìn)行周期性拓展。 從采樣信號(hào)頻譜可見,當(dāng)fs > 2fi時(shí)(fi為原始信號(hào)最大頻率),通過(guò)低通濾波器可將原始信號(hào)過(guò)濾出來(lái)。如果fs減小,周期性拓展的頻譜相互靠近;如果fs減小到2fi,頻譜會(huì)連在一起;如果fs進(jìn)一步減小,頻譜就會(huì)出現(xiàn)交疊(此時(shí)無(wú)法完全的恢復(fù)原始信號(hào)),我們把這種現(xiàn)象稱為“混疊”(Aliasing)。顯然,避免混疊的條件是采樣頻率fs不小于原始信號(hào)最大頻率fi的兩倍。
GSM是設(shè)計(jì)給“人”使用的,采樣頻率只要滿足人聲的需求就好,8KHz對(duì)低于1.1KHz的主音是足夠的,對(duì)高于1.1KHz的泛音就有點(diǎn)吃力了,這也是電話里的聲音不夠“保真”的原因之一。(人類的聽覺范圍是20Hz ~20KHz,而CD采樣頻率是44.1KHz,所以CD音質(zhì)對(duì)人而言已經(jīng)相當(dāng)保真,但放給電話那頭聽就不是那么回事了。)
再具體說(shuō)一下量化。
前面提到,量化是把幅度劃分為多個(gè)區(qū)間,記錄采樣值落入的區(qū)間,并以代表值(離散值)替代采樣值(連續(xù)值)進(jìn)行信號(hào)重建。量化不是什么新鮮概念,生活中也不時(shí)會(huì)用到。比如描述一個(gè)人的年齡,如果告訴你這個(gè)人二十幾歲,你就有了大致的印象,如果讓你猜多少歲,二十五總不會(huì)差太多。
每十年劃分成一個(gè)區(qū)間,大致描述了是少年、青年還是中年,不過(guò)有時(shí)這樣太粗放了。十一歲男生還會(huì)告同桌的狀,到十九歲都學(xué)會(huì)撩妹了,都用十幾歲來(lái)描述會(huì)丟失太多信息。把區(qū)間縮小為一年,就可以更準(zhǔn)確的傳達(dá)年齡的信息。當(dāng)然,還可以縮小為一月或一天,但在大多數(shù)場(chǎng)合沒什么意義,區(qū)間大小取決于對(duì)精度的要求。(就好像我非要告訴你,這個(gè)人已經(jīng)二十七歲五個(gè)月十三天了,如果不是你提的要求我就會(huì)像個(gè)神經(jīng)?。?/span>
來(lái)看一個(gè)簡(jiǎn)單的例子。先給輸入電平設(shè)定一個(gè)量化范圍,均勻劃分為8個(gè)區(qū)間,按電平高低編號(hào)為1~8,并對(duì)區(qū)間序號(hào)進(jìn)行二進(jìn)制編碼。取每個(gè)區(qū)間的中間值為量化電平,記為y1、y2… yk。采樣時(shí)刻記為t1、t2… tn,采樣電平記為s1、s2… sn。 我們來(lái)看幾個(gè)采樣電平的量化,s1、s7、s8分別落在序號(hào)4、6、8區(qū)間,輸出編碼為0112、1012和1112,接收方將編碼還原為區(qū)間序號(hào),并以量化電平y(tǒng)4、y6、y8替代采樣電平s1、s7、s8進(jìn)行信號(hào)重建。(具體實(shí)現(xiàn)中,量化和編碼往往是同時(shí)進(jìn)行的,區(qū)間序號(hào)只是為了幫助大家理解,并不是必須的)
量化的本質(zhì)是一種映射。
用數(shù)學(xué)語(yǔ)言表達(dá),量化是在量化范圍[-V, V]內(nèi),把連續(xù)幅度值的無(wú)限數(shù)集合{xk}映射成離散幅度值的有限數(shù)集合{yk}。量化器Q(x)的輸入是信號(hào)幅度x,輸出是L個(gè)量化值yk(k=1,2, … ,L)中的一個(gè)取值。當(dāng)x落在xk與xk 1之間時(shí),輸出電平為yk。xk稱為分層電平或判決閾值,Δk=xk 1-xk稱為量化間隔,yk稱為量化電平或重建電平。
更進(jìn)一步的,如果在量化范圍內(nèi)量化間隔Δk是相等的,則稱為均勻量化。還是以年齡為例,將“量化范圍”0~80歲分為L(zhǎng)=8個(gè)“量化區(qū)間”,“量化間隔”Δk都為10歲,“分層電平”xk為0、10、20…... 80,“重建電平”yk為5、15、25…... 75。如果“輸入電平”x為27,則落入20~30區(qū)間,輸出“重建電平”為25,“量化誤差”為2。
顯然,示圖中的例子也是均勻量化。只看t1、t7、t8問(wèn)題不大,但看t1~t6會(huì)發(fā)現(xiàn)采樣電平s1~s6均落入序號(hào)4的區(qū)間,輸出編碼均為0112,重建信號(hào)時(shí)t1~t6的曲線會(huì)變成一條直線,電平值均為量化電平y(tǒng)4,采樣電平s1~s6的差異被抹平。這個(gè)量化器不是很理想。
怎樣才是理想的量化器呢?
在發(fā)送方,量化電平Q(x)和輸入電平x之間總是存在量化誤差(量化誤差σq=輸入電平x-量化電平Q(x))。在接收方,量化誤差的影響表現(xiàn)為量化噪聲(σq平方的期望值),與輸入信號(hào)x的概率密度px(x)有關(guān)??偭炕肼暿遣贿^(guò)載噪聲和過(guò)載噪聲之和。(σs平方=σq平方 σqo平方)
在通信系統(tǒng)中,我們用信號(hào)噪聲比S/N來(lái)衡量信號(hào)的失真程度,在量化中N就是量化噪聲。顯然,N越小則S/N越大。在某種程度上,輸入信號(hào)功率S的大小是不可控的(不可預(yù)知的隨機(jī)信號(hào)),而輸出噪聲功率N的大小是可控的(可以努力控制的),很容易產(chǎn)生這樣的想法:令量化噪聲最小的就是最佳量化器。
換句話說(shuō):“最佳量化”是在給定輸入信號(hào)概率密度px(x)與量化電平數(shù)L的條件下,求出一組分層電平值{xk}與量化電平值{yk},使量化噪聲為最小值。推算可知:分層電平應(yīng)取在相鄰重建電平的中點(diǎn);重建電平應(yīng)取在量化間隔的質(zhì)心上(px(x)為均勻分布時(shí)質(zhì)心就是相鄰分層電平的中點(diǎn))。這和我們的直覺是一致的。 進(jìn)一步推算可知,均勻量化器的不過(guò)載量化噪聲與px(x)無(wú)關(guān),只與量化間隔Δ有關(guān),如果給定量化范圍[-V, V],則只與量化電平數(shù)L有關(guān)。因而,要改善示例的均勻量化器,方法就是增加量化電平數(shù)L,即增加量化區(qū)間的數(shù)量,這和我們的直覺也是一致的。 均勻量化器很簡(jiǎn)單,但應(yīng)用在語(yǔ)音信號(hào)上有一定的局限性。均勻量化器的量化噪聲和輸入信號(hào)概率密度(x)無(wú)關(guān),只有輸入信號(hào)是均勻分布時(shí)(如圖像信號(hào)),均勻量化器才是最佳量化器。可是語(yǔ)音信號(hào)并不是均勻分布的 —— 語(yǔ)音信號(hào)有兩個(gè)特點(diǎn),一個(gè)是變動(dòng)范圍大,嗓門、情緒或環(huán)境都會(huì)影響音量大小;另一個(gè)是以小信號(hào)為主,畢竟喜歡大呼小叫的人并不多。這些特點(diǎn)對(duì)信號(hào)噪聲比S/N有直接的影響。
語(yǔ)音信號(hào)的概率密度px(x)可近似的用拉普拉斯分布表示。假設(shè)語(yǔ)音信號(hào)功率為S,令D=√S/V,n為輸出編碼位數(shù)(即n=log2L),可推算出:當(dāng)D<0.2時(shí),過(guò)載噪聲可忽略,[S/N]dB≈ 6.02n 4.77 20lgD;當(dāng)S很大時(shí),過(guò)載噪聲起主要作用,[S/N]dB≈ 6.1/D。于是,我們得到了輸入為語(yǔ)音信號(hào)時(shí)均勻量化器的S/N特性。 可見,在不過(guò)載范圍內(nèi),S和N呈線性關(guān)系(輸出編碼數(shù)n每增加1位,S/N增益約為6.02dB);在過(guò)載范圍內(nèi),S/N明顯下降。注意,示圖中自變量為20lgD。
如果在期望S/N(例如25dB)位置水平的畫一條線,可以看出n不同取值時(shí)輸入信號(hào)功率的動(dòng)態(tài)范圍大小。顯然,n取值越大(量化級(jí)數(shù)L越大)則動(dòng)態(tài)范圍越大,相應(yīng)的帶寬需求也越大。(此前,動(dòng)態(tài)范圍定義為不過(guò)載的電平輸入范圍,這里重新定義為滿足S/N大于期望值的功率輸入范圍,不僅限定了輸入信號(hào)功率的最大值,也限定了最小值)。
在PSTN中,由于發(fā)送方音量的差異,語(yǔ)音信號(hào)功率變動(dòng)范圍接近30dB,又由于話機(jī)和終端機(jī)距離的差異(和GSM不同,PSTN數(shù)字化在終端機(jī)進(jìn)行,話機(jī)和終端機(jī)之間傳送的是模擬信號(hào)),線路損耗變動(dòng)范圍也接近30dB,因而,量化器的輸入信號(hào)功率變化范圍接近40~50dB(在這一點(diǎn)上GSM有優(yōu)勢(shì),不需要考慮線路損耗)。
由均勻量化器的S/N特性可以推算,要滿足S/N大于25dB(長(zhǎng)途話音質(zhì)量),且動(dòng)態(tài)范圍達(dá)到40~50dB(對(duì)應(yīng)上述輸入信號(hào)功率變化范圍),n要不小于12。由采樣頻率為8KHz,n=12意味著編碼速率為96Kbps —— 這是一個(gè)相當(dāng)高的要求,要知道早期的貓(Modem)速率也不過(guò)28Kbps啊。
此外,均勻量化器在各個(gè)區(qū)間的量化噪聲N是相同的,S越大S/N就越大(換句話說(shuō),就是相同的量化誤差在不同區(qū)間對(duì)S/N的影響是不同的,這很好理解,同樣是相差1歲,5歲和6歲的差別,要遠(yuǎn)遠(yuǎn)大于75歲和76歲的差別)??墒牵Z(yǔ)音信號(hào)大部分都是小信號(hào),系統(tǒng)主要受限于小信號(hào)的低S/N,大信號(hào)的高S/N并沒什么意義,怎樣可以使量化器的S/N平均一些呢?
我們來(lái)做一些“優(yōu)化”。在大信號(hào)段,信號(hào)功率大,對(duì)量化噪聲的容忍度就高,可以將量化間隔Δ加大;在小信號(hào)段,信號(hào)功率小,對(duì)量化噪聲的容忍度就低,可以將量化間隔Δ減小。這樣,就可以在不增加量化級(jí)數(shù)L的情況下改善小信號(hào)的S/N(犧牲大信號(hào)“多余”的S/N)。由于量化間隔Δ不再是相同的,均勻量化變成了非均勻量化。
非均勻量化怎么實(shí)現(xiàn)呢?
非均勻量化不直接對(duì)輸入信號(hào)進(jìn)行量化,而是對(duì)輸入信號(hào)非線性變換后再進(jìn)行均勻量化,間接實(shí)現(xiàn)非均勻量化。更具體的,量化器通過(guò)非線性變換函數(shù)z=f(x)將采樣電平x轉(zhuǎn)換為z,再對(duì)z進(jìn)行均勻量化。當(dāng)然,接收方需要通過(guò)逆變換進(jìn)行還原。我們希望f(x)對(duì)大信號(hào)進(jìn)行壓縮,對(duì)小信號(hào)進(jìn)行擴(kuò)張,因而f(x)又稱為壓擴(kuò)函數(shù)。
通過(guò)令取最小值的方法,可以推算出所謂“最佳壓擴(kuò)特性”的f(x)和對(duì)應(yīng)S/N特性,不過(guò)得到的f(x)過(guò)于復(fù)雜,難以實(shí)現(xiàn)。同時(shí),“最佳”f(x)總量化噪聲最小,但動(dòng)態(tài)范圍不大,并沒有得到推廣應(yīng)用。為了同時(shí)滿足高S/N和大動(dòng)態(tài)范圍,我們需要S/N特性曲線比較平坦的量化器。什么樣的f(x)可以滿足需求呢?
答案是對(duì)數(shù)型函數(shù)。令f(x)=(lnx)/B,可以推算出,在量化范圍[0, V]內(nèi)S/N是由量化級(jí)數(shù)L、量化范圍V和常數(shù)B決定的固定值,這樣就有條件同時(shí)保證S/N和動(dòng)態(tài)范圍。對(duì)數(shù)型函數(shù)對(duì)小信號(hào)進(jìn)行了擴(kuò)張,對(duì)大信號(hào)進(jìn)行壓縮,也符合我們的期望。 不過(guò),還有兩個(gè)問(wèn)題要解決。一個(gè)是f(x)=(lnx)/B要求x為正,只適用于量化范圍[0, V],要擴(kuò)展到量化范圍[-V, V]并保持正負(fù)對(duì)稱,只能取x的絕對(duì)值進(jìn)行量化,并在編碼增加一位作為極性碼(表示電平的正負(fù));另一個(gè)是當(dāng)x小于1時(shí),z轉(zhuǎn)為負(fù)值,當(dāng)x趨近于0時(shí),z趨近于-∞,這種特性是無(wú)法實(shí)現(xiàn)的。
實(shí)際上,使用對(duì)數(shù)型函數(shù),主要是利用對(duì)大信號(hào)的壓縮特性,對(duì)小信號(hào)的擴(kuò)張?zhí)匦?,可以用其他函?shù)替代。更理想的特性,是當(dāng)x趨近于0時(shí),z也趨近于0,這樣量化范圍[-V,0]和[0, V]可以同時(shí)映射在z軸上。按照這個(gè)思路,CCITT G.712建議提出了兩個(gè)改進(jìn)方案:A律對(duì)數(shù)壓縮和μ律對(duì)數(shù)壓縮。(我國(guó)和歐洲采用的是A律,而美國(guó)和日本采用的是μ律,我們重點(diǎn)看A律就好啦)
更具體的,A律對(duì)數(shù)壓縮函數(shù)定義為:x在[0,1/A]區(qū)間,f(x) = Ax / (1 lnA);在[1/A,1]區(qū)間,f(x) = (1 lnAx)/ (1 lnA)。μ律對(duì)數(shù)壓縮函數(shù)定義為:x在[0,1]區(qū)間,f(x) = ln(1 μx) / ln(1 μ)。A和μ為壓擴(kuò)參數(shù),表示壓擴(kuò)程度。(注意,此處x為歸一化輸入,即x = |原始輸入xo| / V) 可以看到,A律壓縮將歸一化量化范圍[0,1](對(duì)應(yīng)原始量化范圍[0, V])分為兩段:[0,1/A]和[1/A,1],當(dāng)x取值為1/A時(shí),lnAx正好為0,是對(duì)數(shù)型函數(shù)輸出正值和負(fù)值的分界點(diǎn)。在[1/A,1]范圍f(x)使用的依然是對(duì)數(shù)特性曲線,而在[0,1/A]范圍f(x)則用一條直線替代了原來(lái)的特性曲線。
早期A律壓縮和μ律壓縮是利用二極管的非線性實(shí)現(xiàn)的,壓擴(kuò)特性的穩(wěn)定性和一致性無(wú)法保證。由于發(fā)送方和接收方的壓擴(kuò)特性難以匹配,信號(hào)失真增大。在數(shù)字電路技術(shù)成熟后,CCITT建議采用折線近似A律(13折線)和μ律(15折線)壓擴(kuò)特性,解決穩(wěn)定性和一致性問(wèn)題。示圖中為13折線,和A=87.6時(shí)的A律壓擴(kuò)特性曲線十分接近。 你可能會(huì)問(wèn),圖上不是只有8段折線嗎,哪來(lái)的“13折線”?是這么回事:在整個(gè)量化范圍內(nèi),A律壓縮函數(shù)為奇函數(shù)。如果將負(fù)值部分呈現(xiàn)出來(lái),z軸-1到 1之間共劃分為16個(gè)段落(注意,段落并不是量化區(qū)間,只是段落內(nèi)壓擴(kuò)特性相同),對(duì)應(yīng)16段折線??拷c(diǎn)的4段折線斜率相同,16段折線中只有12處斜率發(fā)生變化,因而稱為13折線。
我們來(lái)看一下效果。示圖可見,如果是理想A律壓擴(kuò)(A=87.6),非均勻量化相對(duì)于均勻量化小信號(hào)S/N有所提升,大信號(hào)S/N有所下降,整體而言S/N特性相對(duì)平坦,動(dòng)態(tài)范圍得以擴(kuò)大。在小信號(hào)段,A律對(duì)數(shù)壓縮量化比均勻量化增加了24dB。 13折線的S/N特性和理想A律相比稍有差異。在小信號(hào)段,13折線和A律特性是相同的;在大信號(hào)段,每次斜率改變量化間隔Δ增加一倍,量化噪聲N隨之突增,而信號(hào)功率S平穩(wěn)增加,因而S/N會(huì)突然下降,再隨著信號(hào)功率增加而逐漸上升,于是S/N特性曲線出現(xiàn)了6個(gè)波谷(對(duì)應(yīng)6次斜率改變),但總體而言S/N特性是比較平坦的。
不過(guò),采用非均勻量化是不得已的選擇,GSM采用的依然是均勻量化(不要打我)。GSM量化電平數(shù)L達(dá)到8192,原始編碼位數(shù)n=log28192=13。n為8我們都覺得編碼速率太大,n為13就更加無(wú)法接受了,必須在編碼上做些功夫。
最后具體說(shuō)一下編碼。
經(jīng)過(guò)采樣和量化,發(fā)送方得到160個(gè)樣本和量化電平,完成“簡(jiǎn)譜”的記錄。接著,發(fā)送方對(duì)區(qū)間序號(hào)(量化電平)進(jìn)行編碼,將“簡(jiǎn)譜”轉(zhuǎn)換為“二線譜”。到這里,“數(shù)字化”過(guò)程就完成了。這種通過(guò)采樣、量化、編碼形成的編碼稱為PCM編碼(Pulse Code Modulation,脈沖編碼調(diào)制。這里的“調(diào)制”和上一篇提到的概念相似,不過(guò)PCM調(diào)制的“載波”是脈沖而不是正弦波)。
最簡(jiǎn)單的,是將區(qū)間序號(hào)轉(zhuǎn)換為二進(jìn)制編碼。舉個(gè)例子,如果量化范圍[-V, V]劃分為16個(gè)區(qū)間,區(qū)間序號(hào)按電平大小編號(hào)為0~15,將0~15轉(zhuǎn)換為二進(jìn)制,就得到對(duì)應(yīng)編碼:00002、00012、00102...… 11112。這種二進(jìn)制碼組稱為NBC(Natural Binary Code,自然二進(jìn)制碼組,簡(jiǎn)稱自然碼)。 當(dāng)然,最簡(jiǎn)單不一定最好。NBC容易理解和記憶,這是對(duì)人而言,對(duì)機(jī)器而言就不算什么優(yōu)點(diǎn)了。編碼本質(zhì)上也是一種映射,理論上可逆的編碼都是可行的。除了NBC,常見的編碼還有兩種:FBC(Folded Binary Code,折疊二進(jìn)制碼組,簡(jiǎn)稱折疊碼)和RBC(Reflected Binary Code,格雷二進(jìn)制碼組,簡(jiǎn)稱格雷碼)。
FBC第一位為極性碼,表示輸入電平是正值還是負(fù)值(量化器的輸出就是編碼器的輸入),1表示正,0表示負(fù)。其余位表示幅度絕對(duì)值,以零電平為中心正負(fù)對(duì)稱,即幅度絕對(duì)值相同的正負(fù)電平,除第一位外的編碼相同,就像對(duì)稱折疊一樣。比如,如果量化電平-3的編碼是00112,那么量化電平 3的編碼就是10112,只有極性碼不同。
RBC既看不出極性也看不出幅度,規(guī)律是相鄰區(qū)間(或說(shuō)相鄰量化電平,量化器輸出的是量化電平,而不是區(qū)間序號(hào))的編碼之間只有一位是不同的:比如,區(qū)間03、04編碼是00102和01102,只有第二位不同;區(qū)間04、05編碼是01102和01112,只有第四位不同。(在后續(xù)射頻調(diào)制中會(huì)看到RBC的應(yīng)用場(chǎng)景)
這么多個(gè)“C”,選哪個(gè)好呢?
在位數(shù)(效率)相同時(shí),選信號(hào)失真最小的那個(gè)。量化在發(fā)送方進(jìn)行,重建在接收方進(jìn)行,但量化電平不是“嗖”的一下傳過(guò)去的 —— 發(fā)送方要編碼,接收方要解碼,中間還要通過(guò)信道傳送碼流。在計(jì)算失真時(shí),不僅要考慮量化誤差,還要考慮信道誤碼的影響(假定量化噪聲和誤碼噪聲統(tǒng)計(jì)相互獨(dú)立,則總噪聲是量化噪聲和誤碼噪聲的疊加)。
舉個(gè)例子。如果給你介紹個(gè)27歲(輸入電平)的妹子,但限于信道條件(量化級(jí)數(shù))只能告訴你25歲(量化電平)左右,如果不考慮信道誤碼,你收到的信息就是妹子25歲(重建電平),信息偏差(量化誤差)不會(huì)大于5歲(量化間隔的一半)。
由于不好公開談?wù)撁米幽挲g,我們約定用3位編碼表示8個(gè)年齡段,即0002表示5歲左右,0012表示15歲左右...... 1112表示75歲左右(假定你不顧世俗的目光)。我發(fā)送0102給你,表示妹子25歲左右。如果沒有誤碼,你收到的也是0102,則偏差依然是2歲,即只受量化誤差影響。
如果出現(xiàn)誤碼,你收到的可能另外7個(gè)編碼中的一個(gè),但是哪一個(gè)概率是不同的,只有1位出錯(cuò)的可能性遠(yuǎn)高于3位都出錯(cuò)。如果只考慮1位誤碼,則0102可能會(huì)變成1102、0002、0112,分別對(duì)應(yīng)65歲、5歲和35歲,偏差分別是38歲、22歲和8歲,你不一定會(huì)拒絕妹子,但一定會(huì)覺得通信系統(tǒng)太不靠譜了。
可見,信道誤碼產(chǎn)生的失真遠(yuǎn)比量化誤差嚴(yán)重。優(yōu)化量化器只能減小量化誤差,對(duì)信道誤碼則無(wú)能為力。要降低信道誤碼的影響,關(guān)鍵當(dāng)然是減少誤碼率,這是下一篇的關(guān)注點(diǎn)(信道編碼),這里還是重點(diǎn)分析信源編碼—— 如何選擇編碼可以減少失真?
先來(lái)算個(gè)簡(jiǎn)單的。
假定均勻量化器的量化級(jí)數(shù)為L(zhǎng),量化間隔為Δ,編碼位數(shù)為k=log2L。yi和yj分別表示第i級(jí)和第j級(jí)量化電平,Pi是量化電平y(tǒng)i的出現(xiàn)概率,Pj/i是誤判為的概率。yi誤判yj為的噪聲功率為(yi-yj)平方,量化電平為yi且誤判為yj的發(fā)生概率為PiPj/i,可得到誤碼噪聲計(jì)算公式。 假設(shè)輸入信號(hào)為均勻分布,每個(gè)量化電平的出現(xiàn)概率相同,即Pi=1/L;假設(shè)信道誤碼率Pe很低,n位編碼中只有1位出現(xiàn)誤碼,則量化電平y(tǒng)i只有k種誤判(為不同的yj)情況,發(fā)生概率為Pj/i≈ Pe。假定編碼使用NBC。當(dāng)?shù)趉位為誤碼時(shí),產(chǎn)生的差值(yi-yj)為2的(k-1)次冪乘以Δ,如k=4,則差值(yi-yj)為8Δ。此時(shí)可推算出誤碼噪聲、量化噪聲、總噪聲功率和總信號(hào)噪聲比。
把推算結(jié)果(黃色公式)的分母簡(jiǎn)化一下,令Pe=1/4(LxL-1),則S/N=LxL/2,即誤碼令S/N下降了3dB(僅考慮量化噪聲時(shí),信號(hào)噪聲比S/N=LxL)。反過(guò)來(lái)推算,如果L=256,則可令S/N下降3dB的誤碼率Pe=3.8e-6。如果Pe繼續(xù)增大,則誤碼會(huì)成為失真的主要因素。
以上結(jié)論是在均勻量化、輸入信號(hào)為均勻分布、編碼為NBC的條件下得到的,在非均勻量化、輸入信號(hào)為非均勻分布、編碼為FBC的條件下怎么計(jì)算…… 教材上沒有講,我也不會(huì),大家領(lǐng)會(huì)精神就好。 這里給出A律對(duì)數(shù)量化(A=87.6、L=256)、輸入信號(hào)為拉普拉斯分布、誤碼率Pe=10e-5的條件下,NBC和FBC的S/N特性曲線。可見在小信號(hào)段,F(xiàn)BC的S/N要高于NBC,因而在PCM系統(tǒng)中選用FBC而不是NBC。(當(dāng)Pe=0時(shí),采用NBC還是FBC對(duì)S/N就沒啥影響了,特性曲線合并成一條曲線,即灰色部分) 所以,A律對(duì)數(shù)量化(13折線近似)的8位PCM編碼是這樣的:8位劃分為1位極性碼、3位段落碼和4位段內(nèi)碼。如果信號(hào)為正值,則極性碼為1,如果信號(hào)為負(fù)值,則極性碼為0。3位段落碼對(duì)應(yīng)z軸(絕對(duì)值)均勻劃分的8個(gè)段落(段落內(nèi)斜率相同,即壓擴(kuò)特性相同),沿z軸由小到大分別取0002~1112。4位段內(nèi)碼對(duì)應(yīng)段落內(nèi)均勻劃分的16個(gè)區(qū)間,沿z軸(絕對(duì)值)由小到大分別取00002~11112。
如果編碼位數(shù)為8,采樣頻率為8KHz,則PCM編碼速率為64Kbps。64Kbps放在PSTN都嫌大,放在GSM空中接口就更不行了,何況GSM采用13位均勻量化,原始編碼速率達(dá)到104Kbps —— GSM需要更高效的編碼方案,用更短的編碼來(lái)表示相同的信息。
為啥PCM編碼效率不高呢?
因?yàn)镻CM是“笨小孩”。不知道大家是否見過(guò)這種情形,小孩大聲數(shù)數(shù),家長(zhǎng)一臉慈愛,完全不顧對(duì)旁人的影響。最痛苦的是上百以后,小孩依然不厭其煩的數(shù):一百二十一、一百二十二、一百二十三…… 如果拋開數(shù)數(shù)的本意,僅從傳遞信息的角度來(lái)看,這樣數(shù)很嚴(yán)謹(jǐn),但效率不高。高效點(diǎn)的數(shù)法,是把“一百”省去,前提是接收方能理解并補(bǔ)回。更激進(jìn)一點(diǎn),是說(shuō)“加一、加一……”,接收方知道前一個(gè)數(shù),就可以推算出下一個(gè)數(shù)。
我們把上述思路借鑒到編碼中來(lái)。PCM就像第一個(gè)小孩,對(duì)每個(gè)樣本都進(jìn)行編碼。實(shí)際上,短時(shí)間內(nèi)的語(yǔ)音信號(hào)樣本具有很強(qiáng)的相關(guān)性(可近似看成平穩(wěn)過(guò)程),利用這個(gè)特點(diǎn)可以降低編碼速率,DPCM(差分編碼調(diào)制)和ΔM(增量調(diào)制)是這種思路的典型實(shí)現(xiàn)。
DPCM,即差分編碼調(diào)制,差分就是只傳送差值信息。發(fā)送方輸入信號(hào)為S(k),接收方重建信號(hào)為Sr(k)(輸入和輸出均是樣本,因而是離散序列)。和PCM不同的是,量化器的輸入不是S(k),而是S(k)和預(yù)測(cè)信號(hào)Se(k)的差值d(k)。差值d(k)經(jīng)過(guò)量化、編碼、傳送和解碼后重建為dq(k)。由于傳送的是差值信息,可以達(dá)到節(jié)省帶寬的目的。 這個(gè)圖看著容易犯暈,關(guān)鍵是理解預(yù)測(cè)器的輸入和輸出。預(yù)測(cè)器的輸入是此前N個(gè)樣本點(diǎn),輸出是N個(gè)樣本點(diǎn)的線性疊加,如序號(hào)k樣本的預(yù)測(cè)信號(hào)Se(k),就是序號(hào)k-1、k-2… k-N樣本的線性疊加,這可以通過(guò)延遲電路實(shí)現(xiàn)。發(fā)送方和接收方的預(yù)測(cè)(桃紅色)和相加(黃色)是完全相同的。由此,重建信號(hào)Sr(k)=預(yù)測(cè)信號(hào)Se(k) 差值dq(k),總的量化誤差e(k)=d(k)-dq(k),即不考慮誤碼時(shí),量化誤差只取決于差值的量化。 在DPCM的基礎(chǔ)上,如果量化器和預(yù)測(cè)器能根據(jù)輸入信號(hào)的統(tǒng)計(jì)特性自適應(yīng)于最佳狀態(tài),則稱為ADPCM(即自適應(yīng)的DPCM),這里只關(guān)注利用“差分”節(jié)省帶寬的思路,就不具體展開了。
ΔM可以看作一種特殊的DPCM:把預(yù)測(cè)函數(shù)修改為只取前一個(gè)樣本(N=1),量化器簡(jiǎn)化為只判決差值正負(fù)(只有兩個(gè)量化區(qū)間),DPCM就變成了ΔM。ΔM編碼只要1位,對(duì)帶寬要求更低。簡(jiǎn)單的說(shuō),ΔM就是發(fā)送方將輸入樣本和前一個(gè)樣本進(jìn)行比較,如果比前一個(gè)大,輸出電平為 Δ,編碼C(n)=1,如果比前一個(gè)小,輸出電平為-Δ,編碼C(n)=0。接收方根據(jù)編碼重建。 ΔM具體實(shí)現(xiàn)可將量化器和編碼器合并為判決器,并用脈沖發(fā)生器和積分器替代解碼器,電路十分簡(jiǎn)單(可直接輸入模擬信號(hào))。ΔM信噪比與信號(hào)頻率的平方成反比,語(yǔ)音高頻段的信噪比下降較快,在ΔM的基礎(chǔ)上又發(fā)展出Δ∑(增量總和調(diào)制)。Δ∑對(duì)輸入信號(hào)先進(jìn)行積分,降低高頻成分幅度,再進(jìn)行ΔM調(diào)制,接收方進(jìn)行微分補(bǔ)償。如果積分器和微分器是互補(bǔ)的則接收方可都省去,電路進(jìn)一步簡(jiǎn)化。 再狠一些,就要脫離“波形編碼”的思路了,根據(jù)語(yǔ)音信號(hào)的數(shù)學(xué)模型,直接提取語(yǔ)音信號(hào)的特征參量進(jìn)行編碼,這種編碼方式稱為“參量編碼”。參量編碼速率比波形編碼低,但重建信號(hào)和原始信號(hào)波形差別很大,只能達(dá)到“可懂”的程度。LPC(線性預(yù)測(cè)編碼)就是一種常見的參量編碼。
GSM采用的是RPE-LTP(規(guī)則脈沖激勵(lì)長(zhǎng)期預(yù)測(cè))編碼,這是一種結(jié)合了波形編碼和參量編碼特點(diǎn)的混合編碼,兼具波形編碼高保真和參量編碼速率低的優(yōu)點(diǎn)。GSM中20毫秒語(yǔ)音信號(hào)經(jīng)RPE-LTP編碼后共輸出260位,最終編碼速率為13Kbps。篇幅所限,這里就不展開講述RPE-LTP編碼了,有機(jī)會(huì)再補(bǔ)充吧。
小結(jié)一下。
GSM的目標(biāo),是把通話一方的聲音傳送到另一方,反向亦然。在GSM看來(lái),從語(yǔ)音信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)和從數(shù)字信號(hào)恢復(fù)為語(yǔ)音信號(hào)都是終端的事,網(wǎng)絡(luò)主要負(fù)責(zé)傳送數(shù)字信號(hào)。終端將語(yǔ)音信號(hào)分段,轉(zhuǎn)換為數(shù)字信號(hào)再交給網(wǎng)絡(luò)傳送,這個(gè)過(guò)程稱為信源編碼,或通俗的稱為語(yǔ)音信號(hào)的“數(shù)字化”。
語(yǔ)音信號(hào)的時(shí)間和幅度都是連續(xù)的,取值具有無(wú)限多可能性,要轉(zhuǎn)換為有限長(zhǎng)度的編碼必須先離散化。在時(shí)間上的離散化稱為采樣,在幅度上的離散化稱為量化。通過(guò)采樣、量化、編碼獲得數(shù)字信號(hào)的方式稱為PCM編碼。PCM編碼是一種波形編碼,語(yǔ)音還原度高但編碼效率低,可通過(guò)DPCM、ΔM、Δ∑調(diào)制等差分編碼方式提高編碼效率。
和PSTN、VoLTE相同,GSM將語(yǔ)音每20毫秒分成一段。GSM的采樣頻率為8KHz,采用13位的均勻量化,原始編碼速率為104Kbps。GSM采用RPE-LTP編碼,是一種結(jié)合了波形編碼和參量編碼特點(diǎn)的混合編碼。GSM中20毫秒語(yǔ)音信號(hào)經(jīng)RPE-LTP編碼后共輸出260位,最終編碼速率為13Kbps,壓縮比為8:1。
本文僅代表個(gè)人觀點(diǎn),如有錯(cuò)誤之處,請(qǐng)?jiān)诨貜?fù)中指出。謝謝! |
|