王 欣,陶 杰,康朝紅
(1.陸軍工程大學石家莊校區 電子與光學工程系 河北 石家莊 050003;2.石家莊鐵道大學四方學院 河北 石家莊 050003)
Simulink 是MATLAB 中的一個可視化建模和仿真平臺,它將代碼模塊化,只要將模塊的輸入、輸出設定正確,就能夠實現其功能,因此搭建系統模型是完成仿真的基礎。在通信原理課程中,強調的通信意識非常重要,通信系統的建立根據實際要求來建立。通信系統最基本的模型有信源、信道和信宿,而信源產生的信號多為模擬信號,如語音或圖像等信號,必須將模擬信號轉換為數字信號,則必不可少的就是編碼解碼,這也是通信系統的精髓之一,因此分析通信系統時很重要的一部分就是編碼、解碼。根據基本理論,搭建通信模型,設定模塊參數,通過仿真,對不同信號分析,找到其各自的適用場合。
對模擬信號數字化,最常用的方法是脈沖編碼調制(Pulse Code Modulation,簡稱 PCM),然而其編碼位數多,占用帶寬寬,對于頻譜資源有限的系統,會受到一定的限制。因此出現了傳出差值再進行編碼,這就是DPCM 編碼[1],其編碼位數減少,占用頻譜資源少,如果抽樣頻率很高,抽樣的時間隔Ts 很小,那么相鄰抽樣點信號的幅度一般不會變化很大。前一抽樣點的幅值加上(或減去)當前樣值的差值,就能十分逼近當前抽樣點信號的幅值。將這些差值編碼發出去,同樣可以傳送該連續信號所含的消息[2],這個差值就稱為“增量”(Delta Modulation,簡稱DM)。
增量調制編碼時,將量化器量化電平數取為2,如圖1 所示,輸入模擬信號與預測信號相減[3],得到預測誤差ek。預測誤差被量化為rk,它只有兩個電平+σ或-σ,σ為量化臺階。若預測誤差為正值,則判決輸出電壓+σ,用1 代表;若預測誤差為負值,則判決輸出電壓-σ,用0 代表。

圖1 編碼器
在譯碼器端,如圖2 所示,接收端只要收到一個“1”碼元就使其輸出升高σ,每收到一個“0”碼元就使其輸出降低σ,這樣就可以恢復出階梯型電壓[4],這個電壓通過低通濾波器平滑后,就能得到十分接近編碼器輸入的模擬信號。

圖2 譯碼器
根據增量調制編譯碼工作原理,建立仿真模型,如圖3 所示。
輸入信號m(t)的Fcn 功能模塊如圖4 所示,將函數寫入,再通過抽樣保持模塊Zero-Order Hold 模塊進行抽樣[5],抽樣時間設為0.001s。

圖3 增量調制仿真模型

圖4 Fcn 功能模塊
對應將二電平量化,采用了Relay 模塊,將其門限值設為0,輸出值分別設為0.4 和-0.4,也就是量化臺階為0.4。Unit Delay 模塊將前一個值作為新的預測值。而Relay1 模塊用于編碼[6],將其門限值設為0,輸出值分別設為1 和0,也就是如果量化臺階大于0,輸出1,否則輸出0。
在解碼端,Relay2 模塊用于譯碼,將其門限值設為0.5,輸出值分別設為0.4 和-0.4,也就是如果接收的碼大于0.5,則在原來信號基礎上增加輸出量化臺階0.4,否則降低量化臺階。其仿真結果如圖5 所示,黃色線為原信號,紫色線為譯碼后信號。圖6 為DM 編碼結果。

圖5 原信號及譯碼信號

圖6 DM 編碼
由仿真結果可以看出,用DM 進行編碼時,是用增量σ來量化的(增、減一個σ值),譯碼后的信號與原始信號始終存在誤差[7],這就是一般量化誤差,它是由于編碼方式導致的,并且永遠存在,并且誤差最大值為量化臺階值σ。在信號變換較快時,由于量化臺階σ固定,σ跟不上信號的變換,這就造成了過載量化誤差,這是由于信號變換過快導致的,這種誤差較大,會大于σ。
由于過載量化誤差對通信影響很大,因此在實際應用中應盡量避免過載現象的出現。假設模擬信號為m(t),則

要想避免過載,解決方法有兩個:一是采用變化量階σ,使之隨輸入信號斜率的變化而變化,斜率大時,σ隨之增大,從而減小過載噪聲;斜率小時,σ隨之減小,從而減小一般噪聲。連續可變斜率增量調制(Continuous Variable Slope Delta Modulation簡稱CVSD)[8]就是根據此思想設計的。二是提高fs,但不能提高太多,否則傳輸速率增大,所需系統傳輸頻帶加寬。
亦可將式(1)改寫成

可以看出,當抽樣斜率一定時,允許的信號幅度隨信號頻率的增加而減小,這將導致語音高頻段的量化信噪比下降。這也是簡單增量調制不能實用的一個主要原因。為了克服這個問題,提出了多種改進的自適應增量調制系統。
為了減小量化誤差,改進了增量調制系統,自適應地改變σ的大小,這就是自適應增量調制系統(Adaptive Delta Modulation,簡稱ADM)。自適應增量調制(ADM)的特點是量化器的量階能自動跟隨信號幅度變化而改變,從而擴大了動態范圍。為了驗證其量化誤差與增量調制系統量化誤差之間的關系,將其進行仿真。
根據自適應增量調制系統的產生原理,在增量調制系統基礎上增加了自適應步長的調整[9]。自適應增量調制系統的產生框圖,如圖7 所示,與增量調制系統原理是相同的,參數設置也是相同的。自適應步長的調整,也就是圖7 的Subsystem,其子函數為圖8,首先通過Relay 模塊,設置量化誤差為±1,再通過單位延時模塊Uint Delay 模塊,再相乘,目的是得到前后兩個量化誤差是否為同符號,來調整步長。通過Fcn 模塊設定調整步長,Fcn 中的數學表達式設為1.3^u(1),也就是前后兩次采用值同符號,則步長乘以1.3,來增大步長,如果前后兩個采樣值符號相反,也就是信號從上升變為下降或從下降變為上升時,步長除以1.3。在解碼端,Subsystem1 與編碼端的Subsystem 子模塊是相同的,原理相同,各個參數的設置也是相同的。

圖7 ADM 調制系統

圖8 Subsystem 子函數
通過構建ADM 系統模型,得出仿真結果如圖9 和圖10 所示,圖9 中黃色線為輸入原始信號,紫色線為ADM 譯碼得到的信號。通過實驗仿真結果可以看出,量化臺階σ可以自適應的增大或減小,譯碼信號能較好地跟上原始信號的變化,因此過載量化噪聲[10]減小了,但是在信號變換(上升變為下降或下降變為上升)時,由于量化臺階σ可能變大,致使一般量化噪聲變大,而σ小時,一般量化噪聲也小。圖10 中,ADM 編碼和DM 編碼原理是類似的,編碼位數為1 位,只與編的前一位碼進行比較,得到0 或1 碼。

圖9 原信號及ADM 譯碼信號

圖10 ADM 編碼
輸入任意的信號都適合ADM 嗎?下面我們來進行分析。
(1)信號斜率較大
信號斜率大,量化臺階σ固定不變,如果,則編碼跟不上信號的變化,致使過載量化噪聲過大。
增量譯碼跟不上信號的變化,如圖11 所示,導致過載量化噪聲很大[11]。ADM 譯碼如圖12 所示,能夠避免過載量化噪聲,能夠更加準確地恢復出原始信號。
(2)信號幅度變化緩慢
信號幅度變化緩慢時,DM 編碼保持量化臺階不變,導致一般量化噪聲較大,并且如果信號在時,信號編碼一直是0101,如圖13 所示……而ADM 編碼時,量化臺階自適應地調整,使一般量化噪聲減小[12]如圖14 所示。
(3)信號頻率較大,并且量化臺階跟的上信號的變化

圖11 斜率大時,DM 譯碼與原信號比較

圖12 斜率大時,ADM 譯碼與原信號比較

圖13 斜率小時,DM 譯碼與原信號比較
信號頻率過大,而量化臺階能跟蹤上信號的變化時,DM 編碼過載量化噪聲和一般量化噪聲都比較小,如圖15 所示。而ADM 由于量化臺階不斷變化,有時不能迅速將量化臺階減小,致使一般量化噪聲較大,如圖16 所示。

圖15 能跟蹤上信號DM 譯碼與原信號比較

圖16 能跟蹤上信號ADM 譯碼與原信號比較
因此,不同的通信系統應用不同的編碼方式,如果信號變換斜率總是很大,則宜選擇ADM 編碼,減小過載量化噪聲,如果信號總是由上升變為下降或下降變為上升,而信號斜率不大的情況適宜選擇DM 編碼。
在選用通信系統時,要考慮的方面很多,如通信系統兩個重要的性能指標:有效性和可靠性,通過仿真進行比較,選定系統。首先構建出正確的通信系統模型,通過Simulink選定模塊,搭建系統框圖。其次通過改變輸入信號的條件,得到不同信號的仿真結果。在常見編碼中,DM 和ADM 系統占用帶寬窄,有效性高。給定不同輸入信號,其譯碼恢復原信號會有不同的誤差。最后根據實際輸入信號的要求,通過仿真比較,決定選用哪種系統。