![USRP-OFDM通信系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/de31dabb056f5c03334eb15c69964891/de31dabb056f5c03334eb15c699648911.gif)
![USRP-OFDM通信系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/de31dabb056f5c03334eb15c69964891/de31dabb056f5c03334eb15c699648912.gif)
![USRP-OFDM通信系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/de31dabb056f5c03334eb15c69964891/de31dabb056f5c03334eb15c699648913.gif)
![USRP-OFDM通信系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/de31dabb056f5c03334eb15c69964891/de31dabb056f5c03334eb15c699648914.gif)
![USRP-OFDM通信系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/de31dabb056f5c03334eb15c69964891/de31dabb056f5c03334eb15c699648915.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)實(shí)驗(yàn)一 利用GNU-Radio和USRP搭建OFDM通信系統(tǒng)圖1,基于GNU-Radio和USRP的OFDM通信系統(tǒng)示意圖1 實(shí)驗(yàn)設(shè)備設(shè)備清單設(shè)備型號(hào)數(shù)量1Ettus USRP N21022SBX-40子板23VERT245024計(jì)算機(jī)2開(kāi)發(fā)環(huán)境操作系統(tǒng):Ubuntu 14.04 64bit軟件平臺(tái):GNU-Radio v3.7.8 UHD release_003_009_0012 實(shí)驗(yàn)?zāi)康睦斫釵FDM信號(hào)的調(diào)制和解調(diào)原理;熟悉使用GNU-Radio軟件并對(duì)信號(hào)進(jìn)行處理
2、;學(xué)會(huì)使用軟件GNU-Radio和硬件USRP來(lái)完成點(diǎn)對(duì)點(diǎn)設(shè)備的通信。3 實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)是在Linux桌面應(yīng)用系統(tǒng)Ubuntu上進(jìn)行的,使用到的包括一款免費(fèi)的無(wú)線電和信號(hào)處理開(kāi)發(fā)軟件GNU-Radio,和通用軟件無(wú)線電外設(shè)硬件USRP N210。實(shí)驗(yàn)的任務(wù)是在GUN-Radio和USRP組成的軟硬件平臺(tái),搭建了基于OFDM調(diào)制的無(wú)線通信環(huán)境,以便更好的了解OFDM通信原理和信號(hào)在無(wú)線信道中傳播的特點(diǎn)。實(shí)驗(yàn)主要包括三部分:發(fā)送端、信道和接收端。其中發(fā)送端主要包括信源、符號(hào)映射、子載波分配、IFFT并加CP、USRP TX;無(wú)線信道所處的是室內(nèi)環(huán)境,也被稱為準(zhǔn)靜態(tài)信道環(huán)境(這也為接收端的均衡提供了
3、思想);接收端主要包括USRP RX、同步、去CP FFT、信道估計(jì)和均衡、解符號(hào)映射、信宿。4 實(shí)驗(yàn)步驟4.1 發(fā)送端在OFDM通信系統(tǒng)中,發(fā)送端需要完成以下幾個(gè)功能:信源編碼、數(shù)據(jù)打包、符號(hào)映射、子載波分配、IFFT變換、加CP、USRP發(fā)送射頻信號(hào)等。除USRP模塊外其它幾個(gè)模塊中的信號(hào)處理都是在GNR-Radio中完成的,也即在主機(jī)中完成。USRP模塊擁有單獨(dú)的DSP和FPGA模塊,因此可以獨(dú)立對(duì)輸入數(shù)據(jù)進(jìn)行處理。在USRP模塊里面需要完成很多的功能,比如抽取、數(shù)字上變頻、A/D轉(zhuǎn)換、混頻等功能都是在其中完成的。發(fā)送端的主要目的是完成信號(hào)的調(diào)制、上變頻、功放,最后通過(guò)專用天線將其發(fā)送到
4、無(wú)線信道中去??紤]到若上變頻后的信號(hào)幅度過(guò)大,在經(jīng)過(guò)功放后可能導(dǎo)致信號(hào)失真,因此需要在USRP模塊前增加一個(gè)限幅器模塊。圖2, OFDM通信系統(tǒng)的發(fā)送端實(shí)驗(yàn)流程圖4.1.1 數(shù)據(jù)幀結(jié)構(gòu)實(shí)驗(yàn)開(kāi)始時(shí)一幀數(shù)據(jù)的長(zhǎng)度規(guī)定為96個(gè)字節(jié),其中每個(gè)字節(jié)包含8個(gè)比特。信源不斷地產(chǎn)生0和1的比特序列,經(jīng)過(guò)數(shù)據(jù)打包模塊(B模塊)后變成上述固定長(zhǎng)度的幀數(shù)據(jù)。數(shù)據(jù)流經(jīng)過(guò)CRC校驗(yàn)后,會(huì)在一幀數(shù)據(jù)的末尾增加4個(gè)字節(jié),這時(shí)一幀數(shù)據(jù)便變成了100字節(jié)。這些有用的信息稱為payload,其采用的是QPSK調(diào)制方式,注意經(jīng)過(guò)QPSK映射后一幀數(shù)據(jù)的長(zhǎng)度變成了100*8/2=400個(gè)QPSK符號(hào)。接著,針對(duì)每一幀數(shù)據(jù)需要生成一個(gè)
5、幀頭,用來(lái)記錄當(dāng)前幀的一些信息,比如幀長(zhǎng)、這是第幾幀等信息。實(shí)驗(yàn)中幀頭信息長(zhǎng)度為6個(gè)字節(jié)共48個(gè)比特,幀頭中的信息稱為Header,采用BPSK方式調(diào)制,故其長(zhǎng)度不變。Payload 和 Header需要復(fù)合在一起才能進(jìn)行傳輸,一般將Header置于Payload之前形成新的幀結(jié)構(gòu),這時(shí)一幀數(shù)據(jù)的長(zhǎng)度又發(fā)生了變化,變成了400+48=448個(gè)符號(hào)。在實(shí)驗(yàn)中一個(gè)OFDM符號(hào)的長(zhǎng)度設(shè)定為64(即總載波個(gè)數(shù)為64),除去虛擬載波、直流子載波和射頻子載波還有48個(gè)有效數(shù)據(jù)子載波。因此,一個(gè)OFDM符號(hào)可以負(fù)載48個(gè)Payload的符號(hào),也就是這是一幀數(shù)據(jù)需要10(448/48=9.333)個(gè)OFDM符
6、號(hào)。另外,根據(jù)文獻(xiàn)【1】為了接收端能正常解調(diào)信號(hào),需要在一幀數(shù)據(jù)前加上兩個(gè)OFDM符號(hào)的同步字。所以,一幀數(shù)據(jù)中包含12個(gè)OFDM符號(hào)。圖3 數(shù)據(jù)幀結(jié)構(gòu)示意圖4.1.2發(fā)送端各模塊功能的介紹A. Vector Source: 實(shí)現(xiàn)的功能是循環(huán)產(chǎn)生同一組向量,并將該向量轉(zhuǎn)化成無(wú)符號(hào)整形變量(即uchar型變量),所以其輸出是一連串的0和1的數(shù)據(jù)流。輸入變量:Vector,range(packet_len)。其中packet_len是個(gè)變量指一幀數(shù)據(jù)的長(zhǎng)度,單位字節(jié),試驗(yàn)中該變量的值設(shè)為96。所以,根據(jù)python語(yǔ)法規(guī)則range(Packet_len)就是產(chǎn)生一組0到95的向量。Vec len
7、gth, 1。產(chǎn)生一個(gè)向量??蛇x變量:是否循環(huán):Yes。輸出:一串0和1的數(shù)據(jù)流,數(shù)據(jù)類型byte。圖3,向量信源模塊B. Stream to Tagged Stream: 該模塊實(shí)現(xiàn)的功能是將輸入數(shù)據(jù)流進(jìn)行打包,形成一定長(zhǎng)度的幀數(shù)據(jù)流,并給數(shù)據(jù)貼上標(biāo)簽。因此,試驗(yàn)中設(shè)定一幀數(shù)據(jù)長(zhǎng)度為96個(gè)字節(jié),則該模塊按該長(zhǎng)度輸出打包好的幀數(shù)據(jù)流,共96個(gè)字節(jié)96*8個(gè)比特。輸入變量:Vector length :1,輸入向量的個(gè)數(shù),默認(rèn)為1個(gè);2,packet length:packet_len, 定義一幀數(shù)據(jù)的長(zhǎng)度,在流程圖的變量模塊中packet_len設(shè)定為96;3, Length Tag Key:
8、 length_tag_key, 給輸出數(shù)據(jù)打上標(biāo)簽,其標(biāo)簽名為length_tag_key,值為96.輸出:帶標(biāo)簽的幀數(shù)據(jù)流,數(shù)據(jù)類型byte.圖4,數(shù)據(jù)打包模塊C. Stream CRC32: 該模塊實(shí)現(xiàn)的功能是對(duì)輸入的每幀數(shù)據(jù)進(jìn)行校驗(yàn),并將形成的4個(gè)字節(jié)的校驗(yàn)字附在每幀數(shù)據(jù)的末尾。注意:經(jīng)過(guò)該模塊后輸出的一幀數(shù)據(jù)長(zhǎng)度較輸入之前增加了4個(gè)字節(jié),所以一幀數(shù)據(jù)長(zhǎng)度變成100個(gè)字節(jié)共100*8個(gè)比特。輸入變量:Length tag name :length_tag_key,輸入的標(biāo)簽名,該模塊需要知道一幀數(shù)據(jù)的長(zhǎng)度是多少;可選變量:Mode: Generate CRC。這里是發(fā)送端,所以選產(chǎn)生C
9、RC校驗(yàn)碼,而不是校驗(yàn)接收到的數(shù)據(jù)。Packed: Yes。 告訴模塊輸入的數(shù)據(jù)是否是打包好的數(shù)據(jù)。輸出:帶標(biāo)簽的幀數(shù)據(jù)流,數(shù)據(jù)類型byte.圖5,CRC校驗(yàn)?zāi)KD. Packer Header Generator: 該模塊用來(lái)記錄一幀數(shù)據(jù)中的信息,即形成幀頭,共6個(gè)字節(jié)6*8個(gè)比特,其中字節(jié)1代表一幀數(shù)據(jù)的長(zhǎng)度,字節(jié)2和3一起表示當(dāng)前幀的幀號(hào),字節(jié)2每16個(gè)加一幀,到255字節(jié)3便加1;其它三個(gè)字節(jié)還不知道具體表示什么。輸入變量:Formatter Object :header_formatter.formatter(). 指定形成的幀頭格式;Length Tag Name: packet_
10、len. 標(biāo)簽名。該模塊在對(duì)數(shù)據(jù)進(jìn)行處理時(shí)需要知道一幀數(shù)據(jù)的長(zhǎng)度。輸出:幀頭數(shù)據(jù)流,數(shù)據(jù)類型byte,暫存到Header Bits 模塊中.圖6,幀頭生成模塊E. Repack Bits: 該模塊實(shí)現(xiàn)的功能是將8比特一組的數(shù)據(jù)變成2比特一組,由最低位到最高位依次轉(zhuǎn)換。因此,在解碼的時(shí)候需要特別注意每個(gè)比特在一個(gè)字節(jié)中的位置。輸入變量:Bits per input byte :8, 輸入端口每個(gè)字節(jié)中包含的比特?cái)?shù),指定為8;Bits per output byte: payload_mod.bits_per_symbol(), 輸出端口每個(gè)字節(jié)中所包含的比特?cái)?shù),payload_mod.bits_
11、per_symbol 中的payload_mod 在流圖的變量模塊中設(shè)定為QPSK,因此每個(gè)符號(hào)應(yīng)包含2個(gè)比特?cái)?shù)。Length Tag Key: length_tag_key. 標(biāo)簽名。該模塊在對(duì)數(shù)據(jù)進(jìn)行處理時(shí)需要知道幀長(zhǎng)??蛇x變量:Packet Alignment: input. 選擇需要進(jìn)行該操作的端口,這里只有一個(gè)input端口可選。Endianness: LSB. 從一個(gè)字節(jié)的最低位開(kāi)始操作。輸出:帶標(biāo)簽的幀數(shù)據(jù)流,數(shù)據(jù)類型byte,但每個(gè)byte包含2個(gè)字節(jié).圖7,字節(jié)重生成模塊F. Chunks to Symbols: 符號(hào)映射模塊,完成數(shù)據(jù)塊到符號(hào)流的轉(zhuǎn)換。這里可選的符號(hào)參數(shù)為-
12、1+0j 和 1+0j,因此該模塊的功能是實(shí)現(xiàn)BPSK映射。輸入變量:Symbol Table :header_mod.points(), 該值在變量模塊中已定義,其映射規(guī)則是輸入0時(shí)輸出-1+0j,輸入1時(shí)輸出1+0j;Dimension : 1, 整個(gè)流圖始終處理的都是一維數(shù)據(jù),所以這里同樣是1維。Num Ports: 1. 端口數(shù),同樣這里選1??蛇x變量:Input Type: Byte: 輸入數(shù)據(jù)類型與前一模塊的數(shù)據(jù)類型相同。Output Type: Complex. 輸出數(shù)據(jù)類型為復(fù)數(shù)。輸出:帶標(biāo)簽的幀數(shù)據(jù)流,數(shù)據(jù)類型complex。圖8,BPSK映射模塊G. Chunks to S
13、ymbols: 符號(hào)映射模塊,完成數(shù)據(jù)塊到符號(hào)流的轉(zhuǎn)換。這里可選符號(hào)參數(shù)包括-0.707+0.707j, -0.707-0.707j, 0.707-0.707j 和 0.707+0.707j,因此該模塊實(shí)現(xiàn)的功能是QPSK映射。輸入變量:Symbol Table :payloas_mod.points(), 該值在變量模塊中已定義,其映射規(guī)則是輸入10時(shí)輸出-0.707+0.707j,輸入00時(shí)輸出-0.707-0.707j, 輸入01時(shí)輸出0.707-0.707j,輸入11時(shí)輸出0.707+0.707j。Dimension : 1, 整個(gè)流圖始終處理的都是一維數(shù)據(jù),所以這里同樣是1維。Num
14、 Ports: 1. 端口數(shù),同樣這里選1??蛇x變量:Input Type: Byte: 輸入數(shù)據(jù)類型與前一模塊的數(shù)據(jù)類型相同。Output Type: Complex. 輸出數(shù)據(jù)類型為復(fù)數(shù)。輸出:帶標(biāo)簽的幀數(shù)據(jù)流,數(shù)據(jù)類型complex。圖9,QPSK映射模塊H. Tagged Stream Mux: 該模塊的功能是增大或減小數(shù)據(jù)流標(biāo)簽中值的大小,從而達(dá)到增加或縮減一幀數(shù)據(jù)長(zhǎng)度的目的。這里需要將兩路信號(hào)合并,因此需要增加數(shù)據(jù)幀的長(zhǎng)度。之前我們分析過(guò)數(shù)據(jù)幀長(zhǎng)為100個(gè)字節(jié)共100*8個(gè)比特,經(jīng)QPSK映射后為100*4個(gè)符號(hào);同樣針頭有6個(gè)字節(jié)共48個(gè)比特,經(jīng)BPSK映射后變成48個(gè)符號(hào)。因此
15、,將這兩路信號(hào)進(jìn)行合并后得到的一幀數(shù)據(jù)長(zhǎng)度為100*4+48=448個(gè)符號(hào)。輸入變量:1,Number of Input : 2, 輸入端口數(shù),有兩路信號(hào)輸入,因此這里應(yīng)填。2, Length tag names : length_tag_key, 輸入數(shù)據(jù)幀的長(zhǎng)度, 96。3,Vector Length : 1. 和信源保持一致;可選變量:IO Type: complex, 端口輸入數(shù)據(jù)類型。輸出:帶標(biāo)簽的幀數(shù)據(jù)流,數(shù)據(jù)類型complex。圖10,信號(hào)合成模塊I. OFDM Carrier Allocator: OFDM子載波分配模塊,也即串并轉(zhuǎn)換模塊。該模塊的作用是給每個(gè)子載波分配相應(yīng)的值
16、,數(shù)據(jù)相應(yīng)地實(shí)現(xiàn)串并轉(zhuǎn)換。這里設(shè)總載波個(gè)數(shù)為64,載波類型包括以下幾種:數(shù)據(jù)子載波(Occupied carriers )、導(dǎo)頻子載波(Pilot carriers)、虛擬子載波(Virtual carriers, VC)和直流子載波(DC carrier)。其中占用載波可以用來(lái)攜帶數(shù)據(jù)和同步字,導(dǎo)頻載波用于發(fā)射特定符號(hào)數(shù)據(jù),空載波的值默認(rèn)為0.在試驗(yàn)中發(fā)送端OFDM子載波的編號(hào)規(guī)則是:為了保持左右對(duì)稱,將64個(gè)子載波編號(hào)為-32,31。其中,最左邊6個(gè)子載波-32,-27和最右邊的5個(gè)子載波26,31 稱為虛擬載波,即不使用的載波它的值默認(rèn)為0,其作用是為了減少帶外功率和抑制ACI。編號(hào)為-
17、26,-22、-20,-8、-6,-1、1,6、8,20、22,26都是數(shù)據(jù)子載波;編號(hào)為-21、-7、7、21為射頻子載波;編號(hào)為0為直流子載波,作用是降低OFDM信號(hào)的峰值信噪比以及硬件電路的復(fù)雜度【3】。由此可知,64個(gè)子載波中有效子載波只有48個(gè)。這樣我們便可以計(jì)算出承載一幀有效數(shù)據(jù)(包括幀頭和負(fù)載共448個(gè)符號(hào))所需要的OFDM符號(hào)數(shù)(將64個(gè)子載波組成的并行數(shù)據(jù)稱為一個(gè)OFDM符號(hào)),即448/48=9.33個(gè)OFDM符號(hào),也就是說(shuō)傳輸一幀有效數(shù)據(jù)需要10個(gè)OFDM符號(hào)。另外,為了接收端解調(diào)方便,本實(shí)驗(yàn)中的OFDM信號(hào)需要加入2個(gè)符號(hào)的同步字置于一幀有效數(shù)據(jù)的開(kāi)頭。所以,最后傳輸?shù)?/p>
18、一幀數(shù)據(jù)中包含了12個(gè)OFDM字符,2個(gè)同步字和10個(gè)有效數(shù)據(jù)。輸入變量:FFT length : fft_len, 傅里葉變換的長(zhǎng)度,fft_len在流圖變量模塊中指定為64。Occupied Carriers: occupied_carrieds, 數(shù)據(jù)子載波編號(hào),occupied_carrieds在流圖變量模塊中指定為-26,-22、-20,-8、-6,-1、1,6、8,20、22,26。Pilot Carriers: pilot_carrieds, 導(dǎo)頻子載波編號(hào),pilot_carrieds在流圖變量模塊中指定為-21、-7、7、21。Pilot Symbols: pilot sym
19、bols, 導(dǎo)頻子載波上對(duì)應(yīng)的符號(hào)(值),pilot symbols在流圖變量模塊中對(duì)應(yīng)上述載波編號(hào)指定為:1,1,1, -1。Sync_words: (sync_word1, sync_word2), 同步字信息,sync_word1, sync_word2是在流圖變量模塊中指定信息。其中同步數(shù)組1的值為0., 0., 0., 0., 0., 0., 0., 1., 0., -1., 0., 1., 0., -1., 0., -1., 0., -1., 0., 1., 0., -1., 0., 1., 0., -1., 0., -1., 0., -1., 0., -1., 0., 1., 0
20、., -1., 0., 1., 0., 1., 0., 1., 0., -1., 0., 1., 0., 1., 0., 1., 0., -1., 0., 1., 0., 1., 0., 1., 0., 0., 0., 0., 0., 0.;同步數(shù)組2的數(shù)據(jù)為0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 0, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1,
21、 -1, -1, 1, -1, 1, -1, -1, -1, -1, 0, 0, 0, 0, 0。可選變量:無(wú)輸出:OFDM符號(hào)流,數(shù)據(jù)類型complex。圖11,OFDM子載波分配模塊J. FFT: 傅里葉變換模塊。對(duì)已分配好的子載波符號(hào)進(jìn)行傅里葉變換,完成OFDM調(diào)制。輸入變量:FFT Size : fft_len, 傅里葉變換的長(zhǎng)度,fft_len在流圖變量模塊中指定為64。Windows : (), 傅里葉變化的窗函數(shù),不清楚()代表什么。Num. Threads: 1, 線程數(shù)設(shè)為1,C+中多線程數(shù)在任務(wù)量大時(shí)才有效,當(dāng)任務(wù)量小時(shí)采用多線程會(huì)消耗額外的通信開(kāi)銷而導(dǎo)致其效率比單線程還低
22、。因此,這里64點(diǎn)DFT采用單線程較好。可選變量:Input Type: Complex, 輸入的數(shù)據(jù)類型為復(fù)數(shù)。Forward/Reverse: Reverse, FFT變換類型,F(xiàn)orward表示FFT變換,Reverse表示IFFT(逆傅里葉)變換。Shift:shift, 傅里葉變換后是否將頻率點(diǎn)(下標(biāo))移動(dòng),shift表示需要移動(dòng),移動(dòng)規(guī)則如下圖所示。這里需要注意的是在接收端FFT模塊中需要做同樣的設(shè)置,否則無(wú)法正常解調(diào)信號(hào)。輸出:OFDM符號(hào)流,數(shù)據(jù)類型complex。圖12,F(xiàn)FT/IFFT Shift 變換過(guò)程圖13,F(xiàn)FT 變換模塊K. OFDM Cyclic Prefixe
23、s: 給OFDM符號(hào)添加循環(huán)前綴。OFDM信號(hào)中加循環(huán)前綴的目的是為了防止OFDM符號(hào)間干擾(ISI),但需要保證循環(huán)前綴的長(zhǎng)度大于信道卷積長(zhǎng)度。輸入變量:FFT Length : fft_len, 傅里葉變換的長(zhǎng)度,fft_len在流圖變量模塊中指定為64。CP Length : fft_len/4, 循環(huán)前綴的長(zhǎng)度,其值為fft_len/4=16。Rolloff: rolloff, 成形濾波器參數(shù)設(shè)置,rolloff 為升余弦滾降。Length Tag Key : length_tag_key, 數(shù)據(jù)幀的長(zhǎng)度,同之前模塊中的值一樣。可選變量:無(wú)。輸出:OFDM符號(hào)流,數(shù)據(jù)類型complex
24、。圖14,OFDM循環(huán)前綴模塊L. Multiply Const: 衰減器模塊。該模塊通常將輸入的數(shù)據(jù)乘上一個(gè)常數(shù),從而達(dá)到改變輸入信號(hào)幅度的目的。在這里為了防止調(diào)制好的OFDM信號(hào)在進(jìn)入功率放大器后產(chǎn)生非線性失真,需要將輸入信號(hào)乘上一個(gè)小于1的常數(shù)。輸入變量: Constant : M_const, 一個(gè)小于1的浮點(diǎn)型常數(shù),為方便將其設(shè)為仿真中可變的值,設(shè)置如圖15所示,默認(rèn)值為0.02,變動(dòng)范圍0, 0.1,步進(jìn)為0.001。Vec Length: 1. 同上??蛇x變量:IO Type : complex。輸出:OFDM符號(hào)流,數(shù)據(jù)類型complex。圖15,衰減器模塊M. UHD: US
25、RP Sink: 信號(hào)發(fā)送模塊。該模塊實(shí)現(xiàn)信號(hào)從軟件到硬件轉(zhuǎn)換的橋梁作用,將信號(hào)送到硬件再經(jīng)射頻天線將信號(hào)發(fā)送出去。本實(shí)驗(yàn)中所用的硬件是USRP N210和其搭載的母板SBX_v2,它們主要的任務(wù)是完成插值、上變頻、D/A轉(zhuǎn)換、功放、混頻、最后經(jīng)射頻天線發(fā)射出去。USRP N210有一個(gè)千兆以太網(wǎng)端口,可以通過(guò)網(wǎng)線和主機(jī)連接實(shí)現(xiàn)最高50MS/s的通信速率。需要設(shè)置的參數(shù):Device Address : usrp_addr, 輸入U(xiǎn)SRP設(shè)備的地址,通常一臺(tái)設(shè)備對(duì)應(yīng)一個(gè)IP地址,其儲(chǔ)存在芯片EPROM中,主機(jī)通過(guò)尋找該地址來(lái)實(shí)現(xiàn)通信。usrp_addr是流圖變量模塊中的一個(gè)變量名,其值為“ad
26、dr = 192.168.10.2”。另外,要想完成主機(jī)和設(shè)備通信還需要對(duì)主機(jī)進(jìn)行設(shè)置,具體參見(jiàn)文獻(xiàn)【4】中的PDF資料。Samp Rate (Sps): samp_rate, 采樣率。通??梢岳斫鉃橹鳈C(jī)和設(shè)備之間傳輸數(shù)據(jù)速率,最大為50MS/s(8bit )或25MS/s(16 bit)。samp_rate 的值在流圖的變量模塊中設(shè)為1MHz。Center Freq (Hz): c_freq, 中心頻率。指信號(hào)在無(wú)線環(huán)境中傳播的頻率,也即射頻。c_freq 的值在流圖的變量模塊中設(shè)為433MHz。Gain Value: Tx_gain, USRP發(fā)送增益,單位是dB。Tx_gain 的值在流
27、圖的變量模塊中設(shè)為25dB。可選變量:1,其它變量采用默認(rèn)值。輸出:射頻信號(hào),數(shù)據(jù)類型:模擬信號(hào)。圖16,USRP 信號(hào)發(fā)送模塊4.2 接收端與發(fā)送端相對(duì)應(yīng),接收端主要由以下幾個(gè)模塊組成:USRP Source 模塊、同步模塊、載波頻偏估計(jì)及消除模塊、FFT模塊、信道估計(jì)及均衡模塊、逆子載波分配模塊、解QPSK和BPSK模塊、CRC校驗(yàn)?zāi)K等。同樣除了USRP模塊外其它幾個(gè)模塊中的信號(hào)處理都是在GNR-Radio中完成的,也即在主機(jī)中完成。USRP模塊由于擁有單獨(dú)的DSP和FPGA模塊,因此可以獨(dú)立對(duì)輸入數(shù)據(jù)進(jìn)行處理。在USRP模塊中需要完成混頻、D/A轉(zhuǎn)換、字下變頻、插值數(shù)等功能。接收端的主
28、要功能是將射頻信號(hào)從無(wú)線信道中接收下來(lái),模數(shù)轉(zhuǎn)換,再經(jīng)過(guò)一系列信號(hào)處理模塊最終將信號(hào)解調(diào)出來(lái)。圖1,OFDM通信系統(tǒng)的接收端實(shí)驗(yàn)流程圖4.2.1工作原理首先,USRP模塊將無(wú)線信道中的信號(hào)接收下來(lái),IQ兩路A/D采樣變成數(shù)字信號(hào),之后經(jīng)過(guò)數(shù)字下變頻、抽取等得到一連串的復(fù)信號(hào)流。輸出的數(shù)據(jù)分成兩路,一路經(jīng)過(guò)同步模塊B和調(diào)制模塊D進(jìn)入相乘模塊E。模塊B有兩個(gè)輸出端口分別輸出小數(shù)倍載波頻偏和定時(shí)脈沖,小數(shù)倍載波頻偏輸入到模塊D中進(jìn)行調(diào)制,用于消除接收信號(hào)中的載波頻偏,定時(shí)脈沖輸入到模塊F中用于觸發(fā)一幀數(shù)據(jù)的起始點(diǎn);另一路數(shù)據(jù)流經(jīng)過(guò)模塊C延遲一個(gè)OFDM符號(hào)(包括CP)后進(jìn)入相乘模塊。在模塊E中兩路信
29、號(hào)相乘從而使得小數(shù)倍的載波頻偏得以糾正,消去載波頻偏后的數(shù)據(jù)流進(jìn)入F模塊來(lái)將一幀數(shù)據(jù)中的Header和Payload分開(kāi)。但是,接收端一開(kāi)始不知道接收信號(hào)中的數(shù)據(jù)幀結(jié)構(gòu),所以在解調(diào)時(shí)需要先讀出Header中信息,才能將接收信號(hào)正常解調(diào)。因此,我們先分析Header這路信號(hào)。信號(hào)首先進(jìn)入了FFT模塊做傅里葉變換,之后進(jìn)入信號(hào)估計(jì)模塊,經(jīng)過(guò)該模塊后會(huì)得到整數(shù)倍載波頻偏和系統(tǒng)頻譜響應(yīng)兩個(gè)參數(shù)。接著信號(hào)流帶著這兩個(gè)參數(shù)進(jìn)入模塊I中進(jìn)行頻域均衡同時(shí)糾正整數(shù)倍的載波頻偏,這時(shí)接收信號(hào)中的載波頻偏已完全消除了。數(shù)據(jù)之后經(jīng)過(guò)串并轉(zhuǎn)換模塊(即逆子載波分配模塊J)和解星座映射模塊K得到所需的信息(包括幀頭信息、整
30、數(shù)載波頻偏和系統(tǒng)頻域響應(yīng)等參數(shù)),在將其以PMT字典格式的數(shù)據(jù)儲(chǔ)存并輸入到模塊F中。模塊F的作用之前已經(jīng)提到,它將一幀數(shù)據(jù)的Header和Payload分開(kāi),其具體工作原理見(jiàn)下一節(jié)的模塊分析。Header和Payload數(shù)據(jù)分開(kāi)后,現(xiàn)在主要考慮Payload這路數(shù)據(jù)流,這部分功能大體和接收端是對(duì)稱的。首先,它同樣進(jìn)入FFT模塊中進(jìn)行傅里葉變換,后經(jīng)過(guò)模塊N來(lái)進(jìn)行信道均衡和去載波頻偏,然后在模塊O中做逆子載波分配,之后是解QPSK映射。這之后的步驟便完全是發(fā)送端實(shí)現(xiàn)過(guò)程的逆過(guò)程了,直到信號(hào)完全解調(diào)出來(lái)。另外,最后信號(hào)輸出的是標(biāo)簽,包括載波頻偏,信道均衡系數(shù)(即系統(tǒng)頻率響應(yīng))、當(dāng)前數(shù)據(jù)幀的幀號(hào)、接
31、收時(shí)間等信息。4.2.2 接收端各模塊功能的介紹A. UHD USRP Source:該模塊可以實(shí)現(xiàn)硬件和軟件之間的連接。具體是將硬件USRP N210接收到的信號(hào)(經(jīng)過(guò)一系列處理后得到的信號(hào))傳送到主機(jī)。需要設(shè)定的參數(shù)是USRP設(shè)備地址,采樣頻率以及中心頻率。輸出是復(fù)數(shù)類型的I/Q數(shù)據(jù)流。B. Schmidl & Cox OFDM synch:該模塊實(shí)現(xiàn)兩個(gè)功能,第一實(shí)現(xiàn)符號(hào)定時(shí)同步;第二去除小數(shù)部分的載波頻偏。該模塊所使用的方法是根據(jù)文獻(xiàn)【1】編寫(xiě)的,但是整數(shù)倍頻偏糾正的方法沒(méi)在該模塊中給出。輸入變量:FFT length:fft_len。其中fft_len是傅里葉變換的長(zhǎng)度,也是指OFD
32、M符號(hào)中子載波的總個(gè)數(shù)。fft_len在流圖的變量模塊中設(shè)定為64;Cyclic Prefix length: fft_len/4, 循環(huán)前綴的長(zhǎng)度。值為傅里葉變換長(zhǎng)度的四分之一??蛇x變量:Preamble Carriers:Odd。模塊使用同步字里面的奇數(shù)載波來(lái)計(jì)算起始點(diǎn)和載波頻偏。使用奇數(shù)載波的目的是什么呢?在進(jìn)行定時(shí)和載波頻偏糾正時(shí)考慮的是第一同步字,而第一個(gè)同步字在頻域中偶數(shù)載波上有值,而奇數(shù)載波為了零,但在時(shí)域是對(duì)稱的??梢钥隙ǖ氖瞧鏀?shù)載波為0是同步字1的特征,因?yàn)樗械膕ymbol在奇數(shù)載波上都是有值的,但并沒(méi)有表明定時(shí)和去載波頻偏算法中和奇數(shù)載波的關(guān)系。輸出:輸出兩個(gè)值,一個(gè)是載
33、波頻偏(小數(shù)倍),一個(gè)是定時(shí)信息。小數(shù)倍的載波頻偏是經(jīng)過(guò)歸一化的:,可以得到輸出output的變化范圍為,也就是說(shuō)載波頻偏如果超過(guò)該范圍便無(wú)法糾正。(其實(shí)指的是相位的變化,這是因?yàn)樵跀?shù)字域里面頻率都被奈奎斯特采樣率給歸一化了,也就是說(shuō)模擬頻率和數(shù)字頻率存在一定映射關(guān)系,而這種映射關(guān)系往往體現(xiàn)在相位的變化上。通常數(shù)字域中相位使用得多,模擬域中頻率使用得多)。定時(shí)信息是一串和數(shù)據(jù)等長(zhǎng)的0,1序列,起始點(diǎn)對(duì)應(yīng)的地方設(shè)為1,其它為0.圖2,信號(hào)同步和載波C. Delay: 延遲模塊。實(shí)現(xiàn)數(shù)據(jù)流指定長(zhǎng)度延時(shí)。這里該模塊的作用是使輸入數(shù)據(jù)延遲一個(gè)OFDM符號(hào)。Why the number of delay
34、s is an OFDM symbol?輸入變量: Delay:fft_len+fft_len/4。延遲參數(shù),當(dāng)該值為正時(shí)輸出在數(shù)據(jù)前端添加相應(yīng)個(gè)數(shù)的0,當(dāng)該值為負(fù)時(shí)輸出舍棄相應(yīng)個(gè)數(shù)的數(shù)據(jù)。fft_len上面已經(jīng)介紹其值為64,加上循環(huán)前綴的長(zhǎng)度為80,剛好一個(gè)OFDM符號(hào)的長(zhǎng)度。Num Ports: 1, 輸入端口數(shù),1個(gè)。Vec Length: 1,輸入向量數(shù),1個(gè)??蛇x變量:Type:Complex。選擇輸入數(shù)據(jù)類型。輸出:延遲一個(gè)OFDM符號(hào)后的信號(hào)流,數(shù)據(jù)類型復(fù)數(shù)。 D. Frequency Mod: 頻率調(diào)制模塊。作用是產(chǎn)生一個(gè)和載波頻偏對(duì)應(yīng)的序列,進(jìn)而將該序列和接收的數(shù)據(jù)流相乘,
35、達(dá)到去除載波頻偏的目的。輸入變量: Sensitivity: -2.0/fft_len。 這個(gè)該叫什么呢?通信原理中有個(gè)調(diào)頻靈敏度,好像有點(diǎn)像這個(gè);其中fft_len 的值是64。可選變量:無(wú)。輸出:經(jīng)過(guò)該模塊后輸出的序列為: MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 1)其中,是模塊C輸出的載波頻偏,的值和輸入信號(hào)長(zhǎng)度一樣。E. Multiply: 該模塊實(shí)現(xiàn)兩個(gè)向量相乘。作用是去除小數(shù)倍載波頻偏,消除ACI干擾。輸入變量:Num In
36、puts:2。 輸入端口數(shù)為兩個(gè)。Vec Length: 1。向量長(zhǎng)度為1??蛇x變量:IO Type:Complex。輸入和輸出端口的數(shù)據(jù)類型為復(fù)數(shù)。輸出:去除小數(shù)倍載波頻偏的數(shù)據(jù)流,數(shù)據(jù)類型為復(fù)數(shù)。F. Header/Payload Demux: 該模塊的作用是根據(jù)定時(shí)信息和幀頭信息,將復(fù)合在一起的針頭和數(shù)據(jù)進(jìn)行分離。該模塊的工作原理是:首先,將三個(gè)輸入端口從上到下編號(hào)為0,1,2, 輸出端編號(hào)類似。0號(hào)端口連續(xù)輸入去除載波頻偏的數(shù)據(jù)流,當(dāng)2號(hào)端口(定時(shí)信息)輸入1時(shí),也就是功能被觸發(fā),則輸出端口0輸出幀頭,而數(shù)據(jù)(Payload)則保持不動(dòng)。直到輸入端口2接收到解碼后的幀頭信息,輸出端口才
37、有數(shù)據(jù)輸出,輸出數(shù)據(jù)為幀頭和數(shù)據(jù)payload 的合并數(shù)據(jù),也就是說(shuō)輸出端口2中的信息包含一幀數(shù)據(jù)中的完整信息。輸入變量: Header Length (Symbols):3。 幀頭占用的OFDM符號(hào)數(shù)。 Items per symbol: fft_len。 每個(gè)OFDM符號(hào)中所包含的項(xiàng)數(shù)。 Guard Interval (iterms): fft_len/4。一個(gè)符號(hào)中保護(hù)間隔所包含的項(xiàng)數(shù)。 Length tag key: length_tag_key。一幀數(shù)據(jù)的長(zhǎng)度,它的值是frame_len 設(shè)定為960. Timing tag key: rx_time。給每個(gè)定時(shí)點(diǎn)貼上標(biāo)簽,以便后面輸
38、出,或調(diào)試。 Sampling Rate: samp_rate。采樣率??蛇x變量:Output Format: symbols。 輸出格式為符號(hào);IO Type: Complex.。輸出數(shù)據(jù)類型為復(fù)數(shù)。輸出:去除小數(shù)倍載波頻偏的數(shù)據(jù)流,數(shù)據(jù)類型為復(fù)數(shù)。G. FFT: 傅里葉變換模塊。在發(fā)送端也有一個(gè)FFT變換模塊,那是逆向(Reverse)變換,為了實(shí)現(xiàn)解調(diào)這里應(yīng)該做正向(Forward)變換。注意為與發(fā)送端一致需要選擇shift操作,否則無(wú)法正常解調(diào)信號(hào)。H. OFDM Channel Estimation:信道估計(jì)模塊。該模塊實(shí)現(xiàn)兩個(gè)功能,得到整數(shù)倍頻偏和系統(tǒng)頻域響應(yīng)(即信道的頻率響應(yīng))。
39、整數(shù)倍頻偏的獲取依靠同步字2,其具體算法參考文獻(xiàn)【1】。它在FFT模塊之后,因此實(shí)現(xiàn)的是信道頻域估計(jì),得到的是信道的頻域響應(yīng), MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 2)其中,是同步字序列(同步字1或同步字2),是經(jīng)過(guò)傅里葉正反變換和信道之后的序列。綜上,該模塊的工作原理是,根據(jù)同步字1和2來(lái)獲取整數(shù)倍頻偏和信道的頻率響應(yīng),并將這兩個(gè)值作為標(biāo)簽傳遞到該模塊以后的所有模塊中,而輸入信號(hào)流不做任何處理輸出。輸入變量: Sync. symb
40、ol 1: sync_word 1。 同步字1。sync_word 1是個(gè)變量,它的值在流圖變量模塊中給出。 Sync. symbol 2: sync_word 2。同步字2。 Number of data symbol: 1。 數(shù)據(jù)符號(hào)的個(gè)數(shù),為1. Maximum carrier offset: 3。 最大的載波頻偏,為3,也就說(shuō)允許最大有3個(gè)載波位置的偏移。但為什么是3呢?可選變量:Force One Synchronizations Symbol:No。不知道什么意思?輸出: 輸出數(shù)據(jù)與輸入數(shù)據(jù)相比少了兩個(gè)同步字,但第一數(shù)據(jù)符號(hào)多了兩個(gè)標(biāo)簽:一個(gè)是整數(shù)倍載波頻偏,記為ofdm_sync
41、_carr_offset (integer);另一個(gè)是信號(hào)頻率響應(yīng),記為ofdm_sync_eq_offset (complex vector)。也就是說(shuō)輸出是帶標(biāo)簽的數(shù)據(jù)流,數(shù)據(jù)類型是復(fù)數(shù)。I. OFDM Frame Equalizer: OFDM幀均衡模塊。該模塊實(shí)現(xiàn)兩個(gè)功能,第一糾正整數(shù)倍頻偏,第二對(duì)接收信號(hào)進(jìn)行均衡。糾正整數(shù)倍頻偏可以通過(guò)循環(huán)移位子載波編號(hào)來(lái)完成。比如,設(shè)接收信號(hào)經(jīng)FFT后為,其產(chǎn)生的整數(shù)倍頻偏為(該值在前一模塊中求得,并通過(guò)標(biāo)簽ofdm_sync_carr_offset傳遞到當(dāng)前模塊),則通過(guò)循環(huán)移位得到來(lái)消除頻偏,其中表示到步進(jìn)為的向量,且。另外,信道均衡依賴系統(tǒng)頻
42、率響應(yīng)(該值也是從上一個(gè)模塊中獲得的),均衡后的信號(hào)。輸入變量: FFT length:fft_len。 傅里葉變換長(zhǎng)度。 CP length: fft_len/4。 OFDM保護(hù)間隔長(zhǎng)度 Equalizer: header_equalizer.base()。 采用的均衡方法,內(nèi)部指定。 Length Tag Key: length_tag_key。 一幀數(shù)據(jù)的長(zhǎng)度。 Fixed frame length: 1。 幀的長(zhǎng)度是否等長(zhǎng),設(shè)為1等長(zhǎng)??蛇x變量:Propagate Channel State: Yes。 將信道狀態(tài)作為標(biāo)簽繼續(xù)傳遞下去。輸出:去除整數(shù)倍載波頻偏和均衡后的帶有標(biāo)簽的數(shù)據(jù)流
43、,數(shù)據(jù)類型為復(fù)數(shù)。J. OFDM Serializer: 逆OFDM子載波分配模塊,也稱為并串轉(zhuǎn)換模塊。該模塊實(shí)現(xiàn)的功能是發(fā)送端OFDM Carrier Allocator 模塊的逆過(guò)程,需要知道OFDM符號(hào)中每個(gè)子載波的分配規(guī)則,找到攜帶數(shù)據(jù)的48個(gè)子載波,并提取其信息。輸出: 有效數(shù)據(jù)流,去除了空載波和虛擬載波信息,數(shù)據(jù)類型復(fù)數(shù)。K. Constellation Decoder: 解符號(hào)映射模塊。這里解調(diào)的是針頭數(shù)據(jù),因此根據(jù)發(fā)送端規(guī)則,該模塊是解BPSK映射。輸出: 輸出的0和1的信息流,數(shù)據(jù)類型是字節(jié)。L. Packet Header parser: 解幀頭信息模塊。該模塊實(shí)現(xiàn)的功能是
44、發(fā)送端 packet header generator模塊的逆過(guò)程,唯一不同的是這里不是輸出一連串的0,1數(shù)據(jù)流,而是PMT字典格式的信息,伴隨著一個(gè)“header_data”的ID。輸入變量: Formatter Object:header_formatter.base()。 幀的格式,內(nèi)部指定的格式,當(dāng)無(wú)輸入時(shí),調(diào)用默認(rèn)格式??蛇x變量:Propagate Channel State: 無(wú)。輸出: PMT字典格式的信息,伴隨著一個(gè)“header_data”的ID。M. FFT: 傅里葉變換模塊。 功能與G模塊相同。輸出: 帶標(biāo)簽的數(shù)據(jù)流,數(shù)據(jù)類型復(fù)數(shù)。N. OFDM Frame Equali
45、zer: OFDM幀均衡。 其功能與之前的I模塊相同。輸出:帶標(biāo)簽的數(shù)據(jù)流,數(shù)據(jù)類型復(fù)數(shù)。O. OFDM seriallzer: 逆子載波分配模塊,也稱為并串轉(zhuǎn)換模塊。輸出:帶標(biāo)簽的數(shù)據(jù)流,數(shù)據(jù)類型復(fù)數(shù)。P. Constellation Decoder: 解符號(hào)映射模塊。這里解調(diào)的是paylaod數(shù)據(jù),因此根據(jù)發(fā)送端規(guī)則,該模塊是解QPSK映射。輸出: 輸出的0和1的信息流,數(shù)據(jù)類型是字節(jié)。Q. Repack Bits: 字節(jié)重組合模塊。 這里實(shí)現(xiàn)的功能是將2個(gè)比特的字節(jié)變換成8個(gè)比特的字節(jié),從最低位開(kāi)始。輸出: 輸出的0和1的信息流,數(shù)據(jù)類型是字節(jié)。R. Stream CRC32: CRC校
46、驗(yàn)?zāi)K。 是發(fā)送端的CRC校驗(yàn)?zāi)K的逆過(guò)程,發(fā)送端是生成4個(gè)字節(jié)的校驗(yàn)碼,而這里是驗(yàn)證校驗(yàn)碼。輸出: 去除CRC校驗(yàn)字的0和1的信息流,數(shù)據(jù)類型是字節(jié)。S. Tag Debug: 標(biāo)簽調(diào)試。沒(méi)有實(shí)際的功能,只是在終端中輸出數(shù)據(jù)流所攜帶的標(biāo)簽信息。輸出: 標(biāo)簽信息。實(shí)驗(yàn)二 在MATLAB中編寫(xiě)接收端代碼1 實(shí)驗(yàn)設(shè)備設(shè)備清單設(shè)備型號(hào)數(shù)量1Ettus USRP N21022SBX-40子板23VERT245024計(jì)算機(jī)2開(kāi)發(fā)環(huán)境操作系統(tǒng):Ubuntu 14.04 64bit軟件平臺(tái):GNU-Radio v3.7.8; UHD release_003_009_001; Matlab 2012b2 實(shí)驗(yàn)
47、目的學(xué)會(huì)利用MATLAB 來(lái)讀取GNU-Radio中保存的數(shù)據(jù)文件;理解OFDM接收信號(hào)的解調(diào)原理;學(xué)會(huì)畫(huà)星座圖,并通過(guò)星座圖來(lái)估計(jì)系統(tǒng)性能;學(xué)會(huì)計(jì)算誤碼率。3 實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)的主要根據(jù)實(shí)驗(yàn)一中的接收端OFDM信號(hào)的解調(diào)原理,采用Matlab軟件編程來(lái)重新實(shí)現(xiàn)實(shí)驗(yàn)一中接收端流程圖的各模塊功能?;蛘哒f(shuō)用Matlab語(yǔ)言來(lái)重寫(xiě)接收端模塊的底層代碼,以實(shí)現(xiàn)相同的功能。這些功能包括同步、載波頻偏估計(jì)、信道估計(jì)與均衡、FFT/IFFT、星座圖、誤碼率等。其中,載波頻偏估計(jì)算法和同步算法是根據(jù)文獻(xiàn)【1】來(lái)編寫(xiě)的,這與GNU-Radio中Schmidl & Cox OFDM synch模塊的工作原理是一致的
48、。信道估計(jì)采用的是最小二乘估計(jì)方法,得到的是信道的頻域響應(yīng)來(lái)實(shí)現(xiàn)信號(hào)均衡的。星座圖的作用類似于二元通信系統(tǒng)中的眼圖,用來(lái)觀測(cè)接收信號(hào)的好壞。最后,誤碼率用于表征系統(tǒng)的性能。3 實(shí)驗(yàn)步驟本實(shí)驗(yàn)在實(shí)驗(yàn)一的基礎(chǔ)上進(jìn)行擴(kuò)展。首先,在實(shí)驗(yàn)一接收端流程圖的模塊A后增加一個(gè)File Sink模塊,其作用是將接收到的數(shù)據(jù)保存到當(dāng)前文件中,實(shí)驗(yàn)中將該數(shù)據(jù)文件命名為T(mén)est1_data_1M,其默認(rèn)的文件格式為,dat。重新運(yùn)行實(shí)驗(yàn)一(運(yùn)行時(shí)間盡量不要超過(guò)5分鐘,以免接收的文件過(guò)大)得到Test1_data_1M.dat數(shù)據(jù)文件。打開(kāi)Matlab軟件,將得到的數(shù)據(jù)文件的所在路徑加入到Matlab工作路徑中,并調(diào)用
49、專用函數(shù)讀到Matlab中。(需要注意的是文件中保存的是復(fù)數(shù)格式的數(shù)據(jù),所以在讀取數(shù)據(jù)時(shí)應(yīng)交替讀取,即奇數(shù)為實(shí)部,偶數(shù)為虛部,反之亦然。)根據(jù)實(shí)驗(yàn)一中接收端流程圖的工作原理,在Matlab中重新編寫(xiě)接收端的解調(diào)代碼。運(yùn)行編寫(xiě)的程序,觀測(cè)星座圖,從而估計(jì)系統(tǒng)的性能。計(jì)算Payload的誤碼率。圖1 實(shí)驗(yàn)流程圖3.1 各模塊功能介紹A. 讀取數(shù)據(jù)模塊:該模塊實(shí)現(xiàn)兩個(gè)功能:將GNU-Radio中File Sink模塊保存的數(shù)據(jù)文件讀取到Matlab中,和截?cái)鄶?shù)據(jù)中設(shè)備的啟動(dòng)噪聲。圖2和圖3分別是初始讀取的數(shù)據(jù)和截?cái)嘣肼暫蟮臄?shù)據(jù),從圖2中可以明顯看到在數(shù)據(jù)起始端設(shè)備啟動(dòng)噪聲非常大,之后逐漸衰減。圖3是
50、截?cái)嘣肼暫蟮慕邮招盘?hào),可以看出總體幅度比較平坦,設(shè)備的啟動(dòng)噪聲被消除。調(diào)用函數(shù):read_complex_binary輸入?yún)?shù):Filename, Data length。其中Filename 表示保存的數(shù)據(jù)文件Test1_data_1M.dat;Data length是讀取的數(shù)據(jù)長(zhǎng)度,試驗(yàn)中設(shè)為1e6,當(dāng)文件中數(shù)據(jù)小于該值時(shí)讀取的數(shù)據(jù)長(zhǎng)度將根據(jù)文件的大小自動(dòng)截止。輸出參數(shù):RX signal。表示讀出的數(shù)據(jù),這里使用名稱x0。圖2 初始讀出的數(shù)據(jù)圖3 截?cái)嘣肼暫蟮臄?shù)據(jù)B 同步模塊:該模塊實(shí)現(xiàn)三個(gè)功能。第一找出USRP模塊中DSP插值器插值的大?。▽?shí)際實(shí)驗(yàn)中發(fā)現(xiàn)該值不是固定的);第二找出一幀數(shù)
51、據(jù)的起始點(diǎn);第三估計(jì)接收信號(hào)中小數(shù)倍的載波頻偏。根據(jù)文獻(xiàn)【1】中同步字1的特點(diǎn)有 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 1)其中,表示截?cái)嘣肼暫蟮慕邮招盘?hào),包括OFDM信號(hào)和噪聲,是采樣點(diǎn)下標(biāo)。為了使得到的值差異性更明顯,可以除以同步字1后一半的能量,進(jìn)而得到測(cè)量 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic
52、* MERGEFORMAT 2)其中 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 3)根據(jù)公式(2)我們可以找出USRP模塊中DSP插值器插值的大?。?到4的整數(shù))和一幀數(shù)據(jù)的起始點(diǎn),其基本原理是前者讓的一幀數(shù)據(jù)的最大值(根據(jù)文獻(xiàn)【1】中Fig3,在一幀數(shù)據(jù)中會(huì)形成一個(gè)高峰)大于當(dāng)前幀數(shù)據(jù)平均值的倍找出;在其基礎(chǔ)上再讓的一幀數(shù)據(jù)大于當(dāng)前幀數(shù)據(jù)最大值的倍(實(shí)驗(yàn)中,)找出起始點(diǎn)。根據(jù)文獻(xiàn)【1】找到起始點(diǎn)后,載波頻偏可以估計(jì)為 MACROBUTT
53、ON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 4)其中 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 5)是一個(gè)OFDM符號(hào)的持續(xù)時(shí)間。但是,我們?cè)趯?shí)驗(yàn)中會(huì)發(fā)現(xiàn)估計(jì)的相位和真實(shí)的相位之間有一個(gè)的偏移。通過(guò)分析其產(chǎn)生的原因,發(fā)現(xiàn)式(1)對(duì)符號(hào)的一半操作剛好產(chǎn)生的相位,其理論分析見(jiàn)附錄A。圖4所示為該模塊的信號(hào)處
54、理示意圖,從圖中可以看出每幀數(shù)據(jù)的起始都會(huì)產(chǎn)生一個(gè)很大的高峰,高峰越明顯說(shuō)明信號(hào)質(zhì)量越好,判決設(shè)置更準(zhǔn)確。另外,從圖中可以看出相位大致位于()附近(為了圖像美觀相位都乘了0.1的系數(shù)),這說(shuō)明信號(hào)在傳輸過(guò)程中沒(méi)有產(chǎn)生頻偏或頻偏很小。圖中的黑線是尋找起始點(diǎn)的判決門(mén)限,從圖中可以看到大于判決門(mén)限的點(diǎn)不是唯一的(理論上應(yīng)該有CP長(zhǎng)度個(gè)),也就是說(shuō)每幀數(shù)據(jù)的起始點(diǎn)不是固定的。那么它是否會(huì)對(duì)解調(diào)產(chǎn)生影響呢?這個(gè)問(wèn)題將在模塊D精確的符號(hào)定時(shí)(STO)中解決。圖4 同步模塊信號(hào)處理示意圖調(diào)用函數(shù):synchron輸入?yún)?shù):RX signal, Frame length, Data length。Rx sig
55、nal 是截?cái)嘣肼暫蟮慕邮招盘?hào),所以需要調(diào)入的參數(shù)為x0;Frame length 是一幀數(shù)據(jù)的長(zhǎng)度,這里的值為960;Data length是讀取的數(shù)據(jù)長(zhǎng)度,試驗(yàn)中設(shè)為1e4,當(dāng)文件中數(shù)據(jù)小于該值時(shí)讀取的數(shù)據(jù)長(zhǎng)度將根據(jù)文件的大小自動(dòng)截止。輸出參數(shù):Start point, signal。Start point 表示一幀數(shù)據(jù)的起始點(diǎn),用符號(hào)start_p表示;signal 表示重新讀取過(guò)的數(shù)據(jù),沒(méi)做任何處理只是改變輸入信號(hào)的長(zhǎng)度,表示符號(hào)x。C. IFFT模塊:逆傅里葉變換模塊。該模塊完成的功能是逆傅里葉變換,不采用shift。這似乎接收端做FFT并采用shift剛好相反,確實(shí),原因是GNU-
56、Radio中的的傅里葉變換和Matlab中的傅里葉變換不一致,尤其是shift的方式完全不同,如圖5所示。所以,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)在Matlab中正確解調(diào)數(shù)據(jù)需要做IFFT,并自己編寫(xiě)與GNU-Radio中一致的shift代碼(稱為載波位置調(diào)整)。圖5 GNU-Radio和Matlab中的Shift變換方式調(diào)用函數(shù):ifft輸入?yún)?shù):T_Sym, FFT_len, dim。T_Sym 是待變換的信號(hào),是由OFDM符號(hào)組成的二維信號(hào)矩陣;FFT_len 是傅里葉變換的長(zhǎng)度,這里的值為64;dim是矩陣做傅里葉變換的維度,這里需要對(duì)行向量作變換,故dim為1。輸出參數(shù):T_Sym_fft。T_Sym_f
57、ft 表示經(jīng)過(guò)逆傅里葉變換處理后的信號(hào)。D. 估計(jì)整數(shù)倍CFO模塊:該模塊的功能是估計(jì)出接收信號(hào)中的整數(shù)倍載波頻偏。其理論分析見(jiàn)參考文獻(xiàn)【1】,這樣結(jié)合之前的得到小數(shù)倍載波頻偏,估計(jì)得到載波頻偏為 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 6)其中,是估計(jì)得到的整數(shù)倍載波頻偏。調(diào)用函數(shù):Integer_CFO輸入?yún)?shù):sync_r1, sync_r2, sync_1, sync_2, Max_offset。sync_r1, sync_r2
58、 分別是接收到信號(hào)作IFFT后的同步字1和同步字2,即一幀數(shù)據(jù)的第1、2個(gè)OFDM符號(hào);sync_1, sync_2 分別是發(fā)送端設(shè)定的同步字1和同步字2;Max_offset 是所能糾正的最大載波頻偏,這里設(shè)為10;輸出參數(shù):integer_CFO, 表示整數(shù)倍載波頻偏使用epsilon代替。E. 信道估計(jì)與頻域均衡模塊:該模塊實(shí)現(xiàn)兩個(gè)功能信道估計(jì)和均衡。這里的信道估計(jì)考慮最簡(jiǎn)單的最小二乘估計(jì)方法,根據(jù)參考文獻(xiàn)【2】的方法得到 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arab
59、ic * MERGEFORMAT 7)其中,是信道的頻率響應(yīng),是頻域接收信號(hào),是頻域發(fā)送信號(hào)。因此,可以頻域均衡為 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 8)該方法又叫做單抽頭的頻域均衡器,它可以用來(lái)解決模塊B中提到的相位旋轉(zhuǎn)問(wèn)題,如圖6所示。下面對(duì)相位旋轉(zhuǎn)產(chǎn)生影響進(jìn)行簡(jiǎn)單分析即FFT窗的起始點(diǎn)位置估計(jì)。我們知道只要FFT 窗的起始位置在保護(hù)間隔內(nèi),那么子載波間仍保持正交性并能正常解調(diào)。但是,如圖7所示,當(dāng)起始點(diǎn)不是而是在到之間的位置
60、時(shí)(其中,是FFT變換的長(zhǎng)度,是之間的任意整數(shù)),傅里葉變換后便會(huì)產(chǎn)生一個(gè)相應(yīng)的相位旋轉(zhuǎn),理論分析見(jiàn)附錄B。要解決這個(gè)問(wèn)題,便要準(zhǔn)確估計(jì)出每幀數(shù)據(jù)的相位旋轉(zhuǎn)量。下面將利用同步字2(其FFT變換用符號(hào)來(lái)表示)來(lái)找出相位旋轉(zhuǎn)量。首先,將經(jīng)過(guò)接收到的同步字2進(jìn)行圓周擴(kuò)展,其中表示接收到的同步字2,表示將兩個(gè)信號(hào)合并成一個(gè)長(zhǎng)度增加一倍的信號(hào)。以同步字2為滑動(dòng)窗對(duì)擴(kuò)展后的信號(hào)進(jìn)行相關(guān)運(yùn)算得到 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 9)再令 MA
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部審人教版七年級(jí)數(shù)學(xué)下冊(cè)聽(tīng)評(píng)課記錄《5.2.1 平行線》2
- 人教版地理七年級(jí)上冊(cè)第二節(jié)《地球的運(yùn)動(dòng)》聽(tīng)課評(píng)課記錄3
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)4.1《不等式》聽(tīng)評(píng)課記錄
- 人教版地理八年級(jí)下冊(cè)7.2《魚(yú)米之鄉(xiāng)-長(zhǎng)江三角洲地區(qū)》聽(tīng)課評(píng)課記錄2
- 用戶體驗(yàn)設(shè)計(jì)服務(wù)協(xié)議書(shū)(2篇)
- 環(huán)境整治用功協(xié)議書(shū)(2篇)
- 人教部編版八年級(jí)道德與法治上冊(cè):8.1《國(guó)家好 大家才會(huì)好-國(guó)家利益的含義》聽(tīng)課評(píng)課記錄
- 【人教版】河南省八年級(jí)地理上冊(cè)3.2土地資源聽(tīng)課評(píng)課記錄1新版新人教版
- 新版華東師大版八年級(jí)數(shù)學(xué)下冊(cè)《17.3.2一次函數(shù)的圖象2》聽(tīng)評(píng)課記錄22
- 北京課改版歷史八年級(jí)上冊(cè)第3課《第二次鴉片戰(zhàn)爭(zhēng)》聽(tīng)課評(píng)課記錄
- (完整版)高考英語(yǔ)詞匯3500詞(精校版)
- 2024年聯(lián)勤保障部隊(duì)第九四〇醫(yī)院社會(huì)招聘筆試真題
- 防火墻漏洞掃描基礎(chǔ)知識(shí)
- 供應(yīng)鏈網(wǎng)絡(luò)安全解決方案
- NPI管理流程文檔
- 運(yùn)動(dòng)技能學(xué)習(xí)PPT
- 嶺南版三年級(jí)美術(shù)下冊(cè)教學(xué)工作計(jì)劃
- 應(yīng)急裝備、應(yīng)急物資臺(tái)賬(較詳細(xì))
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制
- 大學(xué)物理光學(xué)答案
- 關(guān)于教材編寫(xiě)的統(tǒng)一格式的規(guī)定
評(píng)論
0/150
提交評(píng)論