【摘要】本文介紹了數字通信原理課程的特點,探討了MATLAB在數字通信原理教學中的應用。通過具體教學實例和實驗仿真結果說明了將MATLAB應用于數字通信原理的教學之中,對教學的改進很有幫助。MATLAB是數字通信原理課程的強有力的輔助工具。研究結果對數字通信原理教學改革具有一定的指導意義。
【關鍵詞】數字通信原理 MATLAB 教學改革
一、引言
數字通信原理是通信工程和電子信息專業的專業基礎課,也是眾多高校的研究生入學考試科目之一。數字通信原理的主要內容包括數字信號的調制與解調、模擬信號的數字傳輸、多路復用與數字復接、準同步與同步數字傳輸體系、數字信號的基帶傳輸、數字信號的頻帶傳輸、同步原理、差錯控制編碼、偽隨機序列及應用。數字通信原理課程對數學基礎要求很高,概念和原理很抽象,很多抽象的理論和信號變化的過程很難用板書和多媒體課件描述清楚。學生普遍認為比較難掌握這門課。
MATLAB是Math Works公司推出的一套高性能的數值計算和可視化的科學工程軟件。由于MATLAB的功能強大,在系統仿真、數字信號處理、圖形圖像分析、通信等領域得到廣泛應用[1]。
將MATLAB應用于數字通信原理的教學之中,可以對通信系統進行可視化動態仿真,反映通信系統的動態工作情況,具有很好的可視化、演示性特點[2]。MATLAB是數字通信原理課程教學中很好的輔助工具。
二、數字通信原理中的m序列
偽隨機序列及應用是數字通信原理中非常重要的內容。偽隨機序列在誤碼率測量、時延測量、擴頻通信等方面都有十分廣泛的應用[3]。在擴展頻譜通信系統中,偽隨機序列起著很重要的作用。在直接序列擴頻中,用偽隨機序列將傳輸信息展寬,在接收時又用它將信號壓縮。m序列是最長線性反饋移位寄存器序列的簡稱,是一種重要的偽隨機序列。m序列的產生是通過帶線性反饋的移位寄存器產生的。一個n級線性反饋移位寄存器可產生的m序列的最長周期等于(2n-1)。
由n=4級線性反饋移位寄存器構成的m序列產生器如圖1所示,該產生器產生的m序列周期最長為15。若各移位寄存器的初始狀態(A3,A2,A1,A0)= (0,0,0,1),則產生的m序列的一個周期為100010011010111。用板書的教學方法推到出該結果,需要很多時間,而且教學效果也不理想。
圖1 m序列的產生器
三、MATLAB仿真實現
m序列的相關原理比較抽象,用板書或課件的形式講解,課堂效果都不是很好,學生普遍認為比較難理解這部分知識。采用MATLAB軟件可將m序列的產生過程和結果直觀地現實出來。
(一) n=4級移位寄存器產生m序列
移位寄存器級數n=4,反饋系數c=[1,0,0,1,1],各寄存器初始狀態z=[0,0,0,1]。產生的m序列的一個周期為100010011010111, m序列矩形成形信號如圖2所示。使用MATLAB,可以快速得到m序列的具體形式,而且可以直接觀察到m序列的矩形形成信號。
圖2n=4級移位寄存器產生的m序列
clc
close all
clear all
n=4;
p=2^n-1;
c=zeros(1,n+1);
c=[1,0,0,1,1] ;
z=zeros(1,n) ;
z=[0,0,0,1];
L=1000
for j=1:p
v=0;
m(j)=z(n);
for i=2:n+1
if c(i)==1
v=v+z(i-1);
end
end
z=circshift(z,[0,1]);
z(1)=mod(v,2);
end
N_sample=8;
Tc=1;
dt=Tc/N_sample;
t=0:dt:Tc*p-dt;
gt=ones(1,N_sample);
mt=sigexpand(1-2*m,N_sample);
mt=conv(mt,gt);
figure(1)
plot(t,mt(1:length(t)));
axis ([0 15 -1.2 1.2] );title ('m序列矩形信號')
(二) n=6級移位寄存器產生m序列
如果想得到n=6級移位寄存器產生的m序列,只需對上述程序稍作修改,令程序中移位寄存器級數n=6,反饋系數c=[1 0 0 0 0 1 1],各寄存器初始狀態z=[ 0 0 0 0 0 1]。m序列矩形成形信號如圖3所示,產生的m序列的一個周期為1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1
圖3 n=6級移位寄存器產生的m序列
若想等到其他周期的m序列,只需要更改n、c和z三個參數即可。
四、結束語
在教學過程中,得到m序列的具體形式是很必要的,這是對m序列性質及應用進一步分析和討論的基礎。但是如果想通過傳統的板書方法,通過理論推導得到周期比較長的m序列,是一件非常耗時的工作,而且教學的效果并不理想。使用MATLAB可以快速得到已知條件下的m序列。為了節省寶貴的課堂時間,減少不必要的時間的浪費,在數字通信原理的教學之中,適當的使用MATLAB是非常必要的。
并且通過該實例,還可以清楚的看出,使用MATLAB可使教學過程變得具有演示性和可視性,學生更容易理解和接受抽象的原理。MATLAB是數字通信原理課程非常好的輔助工具。
【參考文獻】
[1]劉衛國. MATLAB程序設計與應用[M]. 北京:高等教育出版社,2002.
[2]肖珂,張月清等. MATLAB在《通信原理》課程實驗中的應用[J]. 河北農業大學學報,2009, 11(2): 1282-1291.
[3]樊昌信,曹麗娜. 通信原理[M]. 第6版.北京:國防工業出版社,2007.
[4]郭文彬,桑林. 通信原理-基于Matlab的計算機仿真[M]. 北京:北京郵電大學出版社,2006.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文