引言 美國NI公司推出的LabVIEW語言是一種優秀的面向對象的圖形化編程語言,使用圖標代替文本代碼創建應用程序,擁有大量與其他應用程序通信的VI庫。LabVIEW作為目前國際上應用最廣的數據采集和控制開發環境之一,在測試與測量、數據采集、儀器控制、數字信號分析、通信仿真等領域獲得了廣泛的應用。本文主要研究基于LabVIEW的通信仿真。 LabVIEW程序結構 LabVIEW程序主要包括兩部分:前面板(即人機界面)和方框圖程序。前面板用于模擬真實儀器的面板操作,可設置輸入數值、觀察輸出值以及實現圖表、文本等顯示。框圖程序應用圖形編程語言編寫,相當于傳統程序的源代碼。其用于傳送前面板輸入的命令參數到儀器以執行相應的操作。LabVIEW的強大功能在于層次化結構,用戶可以把創建的VI程序當作子程序調用,以創建更復雜的程序,而且,調用階數可以是任意的。labVIEW編程方法與傳統的程序設計方法不同,它擁有流程圖程序設計語言的特點,擺脫了傳統程序語言線性結構的束縛。labVIEW的執行順序依方塊圖間數據的流向決定,而不像一般通用的編程語言逐行執行。在編寫方塊圖程序時,只需從功能模塊中選用不同的函數圖標,然后再以線條相互連接,即可實現數據的傳輸。 仿真過程 信號源產生的是模擬信號,必須首先對它進行數字處理。在仿真過程中,用100Hz的正弦信號作為信號源。按照一般語音通信的要求,這里采用8kHz速率對100Hz的正弦號進行抽樣,得到的是間隔為125μs的離散抽樣值。信號的幅度為歸一化幅度,最小幅度為-1,最大幅度為1,再進行32級(4bit)PCM量化編碼。再將每一個樣值轉化成4bit的二進制的PCM代碼流,其速率為32kbps。對PCM編碼的數據流進行漢明編碼,得到的是56kbps的糾錯編碼后的數據流。隨后進行調制,在發送端對碼流進行4PSK數字編碼調制,采用的載波是400kHz的正弦波,然后送上信道進行傳輸。信道是最常見的高斯加性白噪聲信道,信號傳輸過程中受到高斯噪聲的干擾。在接收端對接受到的碼流進行數字解調、漢明碼解碼,最后PCM信號恢復所發送的信號。 這里所使用的仿真環境為LabVIEW軟件。下文中主要針對4PSK的仿真進行敘述。 ● 抽樣、量化和編碼 在發送端,源(Source)子VI產生一個100Hz的正弦信號作為信號源,通過量化(Quantify)子VI對它進行抽樣和量化。對信號源進行8kHz的抽樣,抽樣產生的離散抽樣值歸一化為絕對值小于等于1的數據流。量化器把-1~1的范圍等分為32個小區間,每一個區間用0~31之間的一個整數表示,每個樣值通過它被量化成32個值中的某一個值,再轉化成元素為0、1的矢量,即C端輸出的源信息流。這時輸出的是長度為4的矢量,進入到編碼(Coding)子VI。在信號傳輸的過程中,為了提高信號的傳輸效率,降低誤碼率,采用了糾錯編碼技術。這里采用的是(4,7)漢明糾錯編碼技術。對8kSPS的矢量信號中,每個矢量加入3bit的控制位,但所占的時間長度仍為原來4位矢量的時間長度。接著,將7位的矢量信號進行串行化,產生56kbps的0、1數據流輸出到A端,如圖1所示。 ![]() ● 調制、解調和信道傳輸 從A端輸出的二進制數據流在調制(Modulation)子VI中進行4PSK數字調制。4PSK是受0~3這4個數據調制的,這四個值是用連續兩個二進制位表示的。這里進行的調制是基帶調制,調制子VI輸出的調制過后的基帶信號。采用多個控件實現對調制的一些基本參數的設定,如字符速率、每個字符的采樣數、波形形成濾波器的類型及參數。輸出的基帶信號通過上變頻(upconverter)VI實現上變頻,把基帶信號搬移到400kHz的頻率段。對應實際中的信號,就可以直接發射到信道上了。仿真過程中,采用的是一個簡單的加性高斯白噪聲信道模型。通過對信噪比(Eb/NO)控件的設置,實現對信道信噪比參數的選擇。接受端收到一個被信道噪聲損傷的信號,通過相逆過程實現解調功能。經過下變頻(downconverter)VI程序下變頻的基帶信號進入到解調(Demodulation)子VI。在解調中進行相位檢測,將4個不同的相位檢測出來,映射成0~3的4個不同的量值,然后轉換為2bit的二進制比特流從B端輸出。所述實現了調制解調和高斯白噪聲信道的傳輸,如圖2所示。 ![]() ● 解碼和信號恢復 B端輸出的二進制比特流進入到解碼(Decode)子VI,其完成數據流的漢明碼譯碼的功能。解碼VI將比特流組成七維的矢量數組,經漢明距離的判斷,再把七維矢量糾錯轉化為四維矢量,即D端輸出的接受信息流,完成糾錯譯碼的功能。四維的矢量數組由To Dwave子VI化為數字波形進行顯示,接下來通過數模轉換VI恢復到模擬的信號,如圖3所示。 ![]() ● 信號的同步 為了實現信號的同步,避免信道延遲帶來的影響,在整個傳輸過程中引入了保護信號和同步信號。生成的保護和同步信號從E端輸出。在信息比特進入調制子VI之前,就在信息比特的前面加上了保護信號和同步信號,E端和A端輸出的信號合為一路信號,然后再進行調制。在接受方通過把同步信號映射為字符,再與接受的字符流進行比較,確定同步信號的位置,實現接受和發射的同步。同步信號的產生和輸出,如圖4所示。 ![]() ● 誤碼率的計算 為了計算誤碼率,C端的源信息流和D端的接受信息流通過一個比較(Compare)子VI進行比較,計算出誤碼的個數,從而計算出誤碼率,如圖5所示。 ![]() ● 性能分析 4PSK數字相位調制波形可表示為 其向量表達式為 4PSK符號錯誤概率為 由于進行了(7,4)漢明碼糾錯編碼,然后進行4PSK調制,并且 比特符號對相應信號相位映射中采用格雷(Gray)碼,因而編碼比特能量可以用信息比特能量表示為 且程序采用的模擬加性高斯白噪聲信道,設定信道的信噪比則為 ,可得 圖6為仿真生成和理論生成的誤碼率的對照圖。信道信噪比超過7dB以后,要求樣本數很大,由于計算機內存的限制,使得仿真的結果與理論的結果有一定偏差。在7dB之前,仿真誤比特率和理論值很接近,擬合得很好。 結論 作為應用最廣的數據采集和控制開發環境之一,LabVIEW在通信仿真中有著重要的作用。由于LabVIEW有很強的儀器控制功能,相對于Matlab等其他仿真軟件,LabVIEW能更有效地把仿真試驗移植到實際中。LabVIEW只需要用實際的發射和接受機及實際的信道來替換模擬的發射和接受機及模擬的信道,但也要進行一定量的相應改動。這樣就能很好地把LabVIEW在仿真和儀器控制兩方面的功能有機結合起來,更好地發揮LabVIEW在虛擬儀器中的作用。 |