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