USRP-OFDM通信系統(tǒng)實驗報告_第1頁
USRP-OFDM通信系統(tǒng)實驗報告_第2頁
USRP-OFDM通信系統(tǒng)實驗報告_第3頁
USRP-OFDM通信系統(tǒng)實驗報告_第4頁
USRP-OFDM通信系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)實驗一 利用GNU-Radio和USRP搭建OFDM通信系統(tǒng)圖1,基于GNU-Radio和USRP的OFDM通信系統(tǒng)示意圖1 實驗設備設備清單設備型號數(shù)量1Ettus USRP N21022SBX-40子板23VERT245024計算機2開發(fā)環(huán)境操作系統(tǒng):Ubuntu 14.04 64bit軟件平臺:GNU-Radio v3.7.8 UHD release_003_009_0012 實驗目的理解OFDM信號的調(diào)制和解調(diào)原理;熟悉使用GNU-Radio軟件并對信號進行處理

2、;學會使用軟件GNU-Radio和硬件USRP來完成點對點設備的通信。3 實驗內(nèi)容本實驗是在Linux桌面應用系統(tǒng)Ubuntu上進行的,使用到的包括一款免費的無線電和信號處理開發(fā)軟件GNU-Radio,和通用軟件無線電外設硬件USRP N210。實驗的任務是在GUN-Radio和USRP組成的軟硬件平臺,搭建了基于OFDM調(diào)制的無線通信環(huán)境,以便更好的了解OFDM通信原理和信號在無線信道中傳播的特點。實驗主要包括三部分:發(fā)送端、信道和接收端。其中發(fā)送端主要包括信源、符號映射、子載波分配、IFFT并加CP、USRP TX;無線信道所處的是室內(nèi)環(huán)境,也被稱為準靜態(tài)信道環(huán)境(這也為接收端的均衡提供了

3、思想);接收端主要包括USRP RX、同步、去CP FFT、信道估計和均衡、解符號映射、信宿。4 實驗步驟4.1 發(fā)送端在OFDM通信系統(tǒng)中,發(fā)送端需要完成以下幾個功能:信源編碼、數(shù)據(jù)打包、符號映射、子載波分配、IFFT變換、加CP、USRP發(fā)送射頻信號等。除USRP模塊外其它幾個模塊中的信號處理都是在GNR-Radio中完成的,也即在主機中完成。USRP模塊擁有單獨的DSP和FPGA模塊,因此可以獨立對輸入數(shù)據(jù)進行處理。在USRP模塊里面需要完成很多的功能,比如抽取、數(shù)字上變頻、A/D轉(zhuǎn)換、混頻等功能都是在其中完成的。發(fā)送端的主要目的是完成信號的調(diào)制、上變頻、功放,最后通過專用天線將其發(fā)送到

4、無線信道中去??紤]到若上變頻后的信號幅度過大,在經(jīng)過功放后可能導致信號失真,因此需要在USRP模塊前增加一個限幅器模塊。圖2, OFDM通信系統(tǒng)的發(fā)送端實驗流程圖4.1.1 數(shù)據(jù)幀結(jié)構(gòu)實驗開始時一幀數(shù)據(jù)的長度規(guī)定為96個字節(jié),其中每個字節(jié)包含8個比特。信源不斷地產(chǎn)生0和1的比特序列,經(jīng)過數(shù)據(jù)打包模塊(B模塊)后變成上述固定長度的幀數(shù)據(jù)。數(shù)據(jù)流經(jīng)過CRC校驗后,會在一幀數(shù)據(jù)的末尾增加4個字節(jié),這時一幀數(shù)據(jù)便變成了100字節(jié)。這些有用的信息稱為payload,其采用的是QPSK調(diào)制方式,注意經(jīng)過QPSK映射后一幀數(shù)據(jù)的長度變成了100*8/2=400個QPSK符號。接著,針對每一幀數(shù)據(jù)需要生成一個

5、幀頭,用來記錄當前幀的一些信息,比如幀長、這是第幾幀等信息。實驗中幀頭信息長度為6個字節(jié)共48個比特,幀頭中的信息稱為Header,采用BPSK方式調(diào)制,故其長度不變。Payload 和 Header需要復合在一起才能進行傳輸,一般將Header置于Payload之前形成新的幀結(jié)構(gòu),這時一幀數(shù)據(jù)的長度又發(fā)生了變化,變成了400+48=448個符號。在實驗中一個OFDM符號的長度設定為64(即總載波個數(shù)為64),除去虛擬載波、直流子載波和射頻子載波還有48個有效數(shù)據(jù)子載波。因此,一個OFDM符號可以負載48個Payload的符號,也就是這是一幀數(shù)據(jù)需要10(448/48=9.333)個OFDM符

6、號。另外,根據(jù)文獻【1】為了接收端能正常解調(diào)信號,需要在一幀數(shù)據(jù)前加上兩個OFDM符號的同步字。所以,一幀數(shù)據(jù)中包含12個OFDM符號。圖3 數(shù)據(jù)幀結(jié)構(gòu)示意圖4.1.2發(fā)送端各模塊功能的介紹A. Vector Source: 實現(xiàn)的功能是循環(huán)產(chǎn)生同一組向量,并將該向量轉(zhuǎn)化成無符號整形變量(即uchar型變量),所以其輸出是一連串的0和1的數(shù)據(jù)流。輸入變量:Vector,range(packet_len)。其中packet_len是個變量指一幀數(shù)據(jù)的長度,單位字節(jié),試驗中該變量的值設為96。所以,根據(jù)python語法規(guī)則range(Packet_len)就是產(chǎn)生一組0到95的向量。Vec len

7、gth, 1。產(chǎn)生一個向量??蛇x變量:是否循環(huán):Yes。輸出:一串0和1的數(shù)據(jù)流,數(shù)據(jù)類型byte。圖3,向量信源模塊B. Stream to Tagged Stream: 該模塊實現(xiàn)的功能是將輸入數(shù)據(jù)流進行打包,形成一定長度的幀數(shù)據(jù)流,并給數(shù)據(jù)貼上標簽。因此,試驗中設定一幀數(shù)據(jù)長度為96個字節(jié),則該模塊按該長度輸出打包好的幀數(shù)據(jù)流,共96個字節(jié)96*8個比特。輸入變量:Vector length :1,輸入向量的個數(shù),默認為1個;2,packet length:packet_len, 定義一幀數(shù)據(jù)的長度,在流程圖的變量模塊中packet_len設定為96;3, Length Tag Key:

8、 length_tag_key, 給輸出數(shù)據(jù)打上標簽,其標簽名為length_tag_key,值為96.輸出:帶標簽的幀數(shù)據(jù)流,數(shù)據(jù)類型byte.圖4,數(shù)據(jù)打包模塊C. Stream CRC32: 該模塊實現(xiàn)的功能是對輸入的每幀數(shù)據(jù)進行校驗,并將形成的4個字節(jié)的校驗字附在每幀數(shù)據(jù)的末尾。注意:經(jīng)過該模塊后輸出的一幀數(shù)據(jù)長度較輸入之前增加了4個字節(jié),所以一幀數(shù)據(jù)長度變成100個字節(jié)共100*8個比特。輸入變量:Length tag name :length_tag_key,輸入的標簽名,該模塊需要知道一幀數(shù)據(jù)的長度是多少;可選變量:Mode: Generate CRC。這里是發(fā)送端,所以選產(chǎn)生C

9、RC校驗碼,而不是校驗接收到的數(shù)據(jù)。Packed: Yes。 告訴模塊輸入的數(shù)據(jù)是否是打包好的數(shù)據(jù)。輸出:帶標簽的幀數(shù)據(jù)流,數(shù)據(jù)類型byte.圖5,CRC校驗模塊D. Packer Header Generator: 該模塊用來記錄一幀數(shù)據(jù)中的信息,即形成幀頭,共6個字節(jié)6*8個比特,其中字節(jié)1代表一幀數(shù)據(jù)的長度,字節(jié)2和3一起表示當前幀的幀號,字節(jié)2每16個加一幀,到255字節(jié)3便加1;其它三個字節(jié)還不知道具體表示什么。輸入變量:Formatter Object :header_formatter.formatter(). 指定形成的幀頭格式;Length Tag Name: packet_

10、len. 標簽名。該模塊在對數(shù)據(jù)進行處理時需要知道一幀數(shù)據(jù)的長度。輸出:幀頭數(shù)據(jù)流,數(shù)據(jù)類型byte,暫存到Header Bits 模塊中.圖6,幀頭生成模塊E. Repack Bits: 該模塊實現(xiàn)的功能是將8比特一組的數(shù)據(jù)變成2比特一組,由最低位到最高位依次轉(zhuǎn)換。因此,在解碼的時候需要特別注意每個比特在一個字節(jié)中的位置。輸入變量:Bits per input byte :8, 輸入端口每個字節(jié)中包含的比特數(shù),指定為8;Bits per output byte: payload_mod.bits_per_symbol(), 輸出端口每個字節(jié)中所包含的比特數(shù),payload_mod.bits_

11、per_symbol 中的payload_mod 在流圖的變量模塊中設定為QPSK,因此每個符號應包含2個比特數(shù)。Length Tag Key: length_tag_key. 標簽名。該模塊在對數(shù)據(jù)進行處理時需要知道幀長??蛇x變量:Packet Alignment: input. 選擇需要進行該操作的端口,這里只有一個input端口可選。Endianness: LSB. 從一個字節(jié)的最低位開始操作。輸出:帶標簽的幀數(shù)據(jù)流,數(shù)據(jù)類型byte,但每個byte包含2個字節(jié).圖7,字節(jié)重生成模塊F. Chunks to Symbols: 符號映射模塊,完成數(shù)據(jù)塊到符號流的轉(zhuǎn)換。這里可選的符號參數(shù)為-

12、1+0j 和 1+0j,因此該模塊的功能是實現(xiàn)BPSK映射。輸入變量:Symbol Table :header_mod.points(), 該值在變量模塊中已定義,其映射規(guī)則是輸入0時輸出-1+0j,輸入1時輸出1+0j;Dimension : 1, 整個流圖始終處理的都是一維數(shù)據(jù),所以這里同樣是1維。Num Ports: 1. 端口數(shù),同樣這里選1??蛇x變量:Input Type: Byte: 輸入數(shù)據(jù)類型與前一模塊的數(shù)據(jù)類型相同。Output Type: Complex. 輸出數(shù)據(jù)類型為復數(shù)。輸出:帶標簽的幀數(shù)據(jù)流,數(shù)據(jù)類型complex。圖8,BPSK映射模塊G. Chunks to S

13、ymbols: 符號映射模塊,完成數(shù)據(jù)塊到符號流的轉(zhuǎn)換。這里可選符號參數(shù)包括-0.707+0.707j, -0.707-0.707j, 0.707-0.707j 和 0.707+0.707j,因此該模塊實現(xiàn)的功能是QPSK映射。輸入變量:Symbol Table :payloas_mod.points(), 該值在變量模塊中已定義,其映射規(guī)則是輸入10時輸出-0.707+0.707j,輸入00時輸出-0.707-0.707j, 輸入01時輸出0.707-0.707j,輸入11時輸出0.707+0.707j。Dimension : 1, 整個流圖始終處理的都是一維數(shù)據(jù),所以這里同樣是1維。Num

14、 Ports: 1. 端口數(shù),同樣這里選1??蛇x變量:Input Type: Byte: 輸入數(shù)據(jù)類型與前一模塊的數(shù)據(jù)類型相同。Output Type: Complex. 輸出數(shù)據(jù)類型為復數(shù)。輸出:帶標簽的幀數(shù)據(jù)流,數(shù)據(jù)類型complex。圖9,QPSK映射模塊H. Tagged Stream Mux: 該模塊的功能是增大或減小數(shù)據(jù)流標簽中值的大小,從而達到增加或縮減一幀數(shù)據(jù)長度的目的。這里需要將兩路信號合并,因此需要增加數(shù)據(jù)幀的長度。之前我們分析過數(shù)據(jù)幀長為100個字節(jié)共100*8個比特,經(jīng)QPSK映射后為100*4個符號;同樣針頭有6個字節(jié)共48個比特,經(jīng)BPSK映射后變成48個符號。因此

15、,將這兩路信號進行合并后得到的一幀數(shù)據(jù)長度為100*4+48=448個符號。輸入變量:1,Number of Input : 2, 輸入端口數(shù),有兩路信號輸入,因此這里應填。2, Length tag names : length_tag_key, 輸入數(shù)據(jù)幀的長度, 96。3,Vector Length : 1. 和信源保持一致;可選變量:IO Type: complex, 端口輸入數(shù)據(jù)類型。輸出:帶標簽的幀數(shù)據(jù)流,數(shù)據(jù)類型complex。圖10,信號合成模塊I. OFDM Carrier Allocator: OFDM子載波分配模塊,也即串并轉(zhuǎn)換模塊。該模塊的作用是給每個子載波分配相應的值

16、,數(shù)據(jù)相應地實現(xiàn)串并轉(zhuǎn)換。這里設總載波個數(shù)為64,載波類型包括以下幾種:數(shù)據(jù)子載波(Occupied carriers )、導頻子載波(Pilot carriers)、虛擬子載波(Virtual carriers, VC)和直流子載波(DC carrier)。其中占用載波可以用來攜帶數(shù)據(jù)和同步字,導頻載波用于發(fā)射特定符號數(shù)據(jù),空載波的值默認為0.在試驗中發(fā)送端OFDM子載波的編號規(guī)則是:為了保持左右對稱,將64個子載波編號為-32,31。其中,最左邊6個子載波-32,-27和最右邊的5個子載波26,31 稱為虛擬載波,即不使用的載波它的值默認為0,其作用是為了減少帶外功率和抑制ACI。編號為-

17、26,-22、-20,-8、-6,-1、1,6、8,20、22,26都是數(shù)據(jù)子載波;編號為-21、-7、7、21為射頻子載波;編號為0為直流子載波,作用是降低OFDM信號的峰值信噪比以及硬件電路的復雜度【3】。由此可知,64個子載波中有效子載波只有48個。這樣我們便可以計算出承載一幀有效數(shù)據(jù)(包括幀頭和負載共448個符號)所需要的OFDM符號數(shù)(將64個子載波組成的并行數(shù)據(jù)稱為一個OFDM符號),即448/48=9.33個OFDM符號,也就是說傳輸一幀有效數(shù)據(jù)需要10個OFDM符號。另外,為了接收端解調(diào)方便,本實驗中的OFDM信號需要加入2個符號的同步字置于一幀有效數(shù)據(jù)的開頭。所以,最后傳輸?shù)?/p>

18、一幀數(shù)據(jù)中包含了12個OFDM字符,2個同步字和10個有效數(shù)據(jù)。輸入變量:FFT length : fft_len, 傅里葉變換的長度,fft_len在流圖變量模塊中指定為64。Occupied Carriers: occupied_carrieds, 數(shù)據(jù)子載波編號,occupied_carrieds在流圖變量模塊中指定為-26,-22、-20,-8、-6,-1、1,6、8,20、22,26。Pilot Carriers: pilot_carrieds, 導頻子載波編號,pilot_carrieds在流圖變量模塊中指定為-21、-7、7、21。Pilot Symbols: pilot sym

19、bols, 導頻子載波上對應的符號(值),pilot symbols在流圖變量模塊中對應上述載波編號指定為: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??蛇x變量:無輸出:OFDM符號流,數(shù)據(jù)類型complex。圖11,OFDM子載波分配模塊J. FFT: 傅里葉變換模塊。對已分配好的子載波符號進行傅里葉變換,完成OFDM調(diào)制。輸入變量:FFT Size : fft_len, 傅里葉變換的長度,fft_len在流圖變量模塊中指定為64。Windows : (), 傅里葉變化的窗函數(shù),不清楚()代表什么。Num. Threads: 1, 線程數(shù)設為1,C+中多線程數(shù)在任務量大時才有效,當任務量小時采用多線程會消耗額外的通信開銷而導致其效率比單線程還低

22、。因此,這里64點DFT采用單線程較好??蛇x變量:Input Type: Complex, 輸入的數(shù)據(jù)類型為復數(shù)。Forward/Reverse: Reverse, FFT變換類型,F(xiàn)orward表示FFT變換,Reverse表示IFFT(逆傅里葉)變換。Shift:shift, 傅里葉變換后是否將頻率點(下標)移動,shift表示需要移動,移動規(guī)則如下圖所示。這里需要注意的是在接收端FFT模塊中需要做同樣的設置,否則無法正常解調(diào)信號。輸出:OFDM符號流,數(shù)據(jù)類型complex。圖12,F(xiàn)FT/IFFT Shift 變換過程圖13,F(xiàn)FT 變換模塊K. OFDM Cyclic Prefixe

23、s: 給OFDM符號添加循環(huán)前綴。OFDM信號中加循環(huán)前綴的目的是為了防止OFDM符號間干擾(ISI),但需要保證循環(huán)前綴的長度大于信道卷積長度。輸入變量:FFT Length : fft_len, 傅里葉變換的長度,fft_len在流圖變量模塊中指定為64。CP Length : fft_len/4, 循環(huán)前綴的長度,其值為fft_len/4=16。Rolloff: rolloff, 成形濾波器參數(shù)設置,rolloff 為升余弦滾降。Length Tag Key : length_tag_key, 數(shù)據(jù)幀的長度,同之前模塊中的值一樣。可選變量:無。輸出:OFDM符號流,數(shù)據(jù)類型complex

24、。圖14,OFDM循環(huán)前綴模塊L. Multiply Const: 衰減器模塊。該模塊通常將輸入的數(shù)據(jù)乘上一個常數(shù),從而達到改變輸入信號幅度的目的。在這里為了防止調(diào)制好的OFDM信號在進入功率放大器后產(chǎn)生非線性失真,需要將輸入信號乘上一個小于1的常數(shù)。輸入變量: Constant : M_const, 一個小于1的浮點型常數(shù),為方便將其設為仿真中可變的值,設置如圖15所示,默認值為0.02,變動范圍0, 0.1,步進為0.001。Vec Length: 1. 同上??蛇x變量:IO Type : complex。輸出:OFDM符號流,數(shù)據(jù)類型complex。圖15,衰減器模塊M. UHD: US

25、RP Sink: 信號發(fā)送模塊。該模塊實現(xiàn)信號從軟件到硬件轉(zhuǎn)換的橋梁作用,將信號送到硬件再經(jīng)射頻天線將信號發(fā)送出去。本實驗中所用的硬件是USRP N210和其搭載的母板SBX_v2,它們主要的任務是完成插值、上變頻、D/A轉(zhuǎn)換、功放、混頻、最后經(jīng)射頻天線發(fā)射出去。USRP N210有一個千兆以太網(wǎng)端口,可以通過網(wǎng)線和主機連接實現(xiàn)最高50MS/s的通信速率。需要設置的參數(shù):Device Address : usrp_addr, 輸入USRP設備的地址,通常一臺設備對應一個IP地址,其儲存在芯片EPROM中,主機通過尋找該地址來實現(xiàn)通信。usrp_addr是流圖變量模塊中的一個變量名,其值為“ad

26、dr = 192.168.10.2”。另外,要想完成主機和設備通信還需要對主機進行設置,具體參見文獻【4】中的PDF資料。Samp Rate (Sps): samp_rate, 采樣率。通??梢岳斫鉃橹鳈C和設備之間傳輸數(shù)據(jù)速率,最大為50MS/s(8bit )或25MS/s(16 bit)。samp_rate 的值在流圖的變量模塊中設為1MHz。Center Freq (Hz): c_freq, 中心頻率。指信號在無線環(huán)境中傳播的頻率,也即射頻。c_freq 的值在流圖的變量模塊中設為433MHz。Gain Value: Tx_gain, USRP發(fā)送增益,單位是dB。Tx_gain 的值在流

27、圖的變量模塊中設為25dB??蛇x變量:1,其它變量采用默認值。輸出:射頻信號,數(shù)據(jù)類型:模擬信號。圖16,USRP 信號發(fā)送模塊4.2 接收端與發(fā)送端相對應,接收端主要由以下幾個模塊組成:USRP Source 模塊、同步模塊、載波頻偏估計及消除模塊、FFT模塊、信道估計及均衡模塊、逆子載波分配模塊、解QPSK和BPSK模塊、CRC校驗模塊等。同樣除了USRP模塊外其它幾個模塊中的信號處理都是在GNR-Radio中完成的,也即在主機中完成。USRP模塊由于擁有單獨的DSP和FPGA模塊,因此可以獨立對輸入數(shù)據(jù)進行處理。在USRP模塊中需要完成混頻、D/A轉(zhuǎn)換、字下變頻、插值數(shù)等功能。接收端的主

28、要功能是將射頻信號從無線信道中接收下來,模數(shù)轉(zhuǎn)換,再經(jīng)過一系列信號處理模塊最終將信號解調(diào)出來。圖1,OFDM通信系統(tǒng)的接收端實驗流程圖4.2.1工作原理首先,USRP模塊將無線信道中的信號接收下來,IQ兩路A/D采樣變成數(shù)字信號,之后經(jīng)過數(shù)字下變頻、抽取等得到一連串的復信號流。輸出的數(shù)據(jù)分成兩路,一路經(jīng)過同步模塊B和調(diào)制模塊D進入相乘模塊E。模塊B有兩個輸出端口分別輸出小數(shù)倍載波頻偏和定時脈沖,小數(shù)倍載波頻偏輸入到模塊D中進行調(diào)制,用于消除接收信號中的載波頻偏,定時脈沖輸入到模塊F中用于觸發(fā)一幀數(shù)據(jù)的起始點;另一路數(shù)據(jù)流經(jīng)過模塊C延遲一個OFDM符號(包括CP)后進入相乘模塊。在模塊E中兩路信

29、號相乘從而使得小數(shù)倍的載波頻偏得以糾正,消去載波頻偏后的數(shù)據(jù)流進入F模塊來將一幀數(shù)據(jù)中的Header和Payload分開。但是,接收端一開始不知道接收信號中的數(shù)據(jù)幀結(jié)構(gòu),所以在解調(diào)時需要先讀出Header中信息,才能將接收信號正常解調(diào)。因此,我們先分析Header這路信號。信號首先進入了FFT模塊做傅里葉變換,之后進入信號估計模塊,經(jīng)過該模塊后會得到整數(shù)倍載波頻偏和系統(tǒng)頻譜響應兩個參數(shù)。接著信號流帶著這兩個參數(shù)進入模塊I中進行頻域均衡同時糾正整數(shù)倍的載波頻偏,這時接收信號中的載波頻偏已完全消除了。數(shù)據(jù)之后經(jīng)過串并轉(zhuǎn)換模塊(即逆子載波分配模塊J)和解星座映射模塊K得到所需的信息(包括幀頭信息、整

30、數(shù)載波頻偏和系統(tǒng)頻域響應等參數(shù)),在將其以PMT字典格式的數(shù)據(jù)儲存并輸入到模塊F中。模塊F的作用之前已經(jīng)提到,它將一幀數(shù)據(jù)的Header和Payload分開,其具體工作原理見下一節(jié)的模塊分析。Header和Payload數(shù)據(jù)分開后,現(xiàn)在主要考慮Payload這路數(shù)據(jù)流,這部分功能大體和接收端是對稱的。首先,它同樣進入FFT模塊中進行傅里葉變換,后經(jīng)過模塊N來進行信道均衡和去載波頻偏,然后在模塊O中做逆子載波分配,之后是解QPSK映射。這之后的步驟便完全是發(fā)送端實現(xiàn)過程的逆過程了,直到信號完全解調(diào)出來。另外,最后信號輸出的是標簽,包括載波頻偏,信道均衡系數(shù)(即系統(tǒng)頻率響應)、當前數(shù)據(jù)幀的幀號、接

31、收時間等信息。4.2.2 接收端各模塊功能的介紹A. UHD USRP Source:該模塊可以實現(xiàn)硬件和軟件之間的連接。具體是將硬件USRP N210接收到的信號(經(jīng)過一系列處理后得到的信號)傳送到主機。需要設定的參數(shù)是USRP設備地址,采樣頻率以及中心頻率。輸出是復數(shù)類型的I/Q數(shù)據(jù)流。B. Schmidl & Cox OFDM synch:該模塊實現(xiàn)兩個功能,第一實現(xiàn)符號定時同步;第二去除小數(shù)部分的載波頻偏。該模塊所使用的方法是根據(jù)文獻【1】編寫的,但是整數(shù)倍頻偏糾正的方法沒在該模塊中給出。輸入變量:FFT length:fft_len。其中fft_len是傅里葉變換的長度,也是指OFD

32、M符號中子載波的總個數(shù)。fft_len在流圖的變量模塊中設定為64;Cyclic Prefix length: fft_len/4, 循環(huán)前綴的長度。值為傅里葉變換長度的四分之一??蛇x變量:Preamble Carriers:Odd。模塊使用同步字里面的奇數(shù)載波來計算起始點和載波頻偏。使用奇數(shù)載波的目的是什么呢?在進行定時和載波頻偏糾正時考慮的是第一同步字,而第一個同步字在頻域中偶數(shù)載波上有值,而奇數(shù)載波為了零,但在時域是對稱的??梢钥隙ǖ氖瞧鏀?shù)載波為0是同步字1的特征,因為所有的symbol在奇數(shù)載波上都是有值的,但并沒有表明定時和去載波頻偏算法中和奇數(shù)載波的關系。輸出:輸出兩個值,一個是載

33、波頻偏(小數(shù)倍),一個是定時信息。小數(shù)倍的載波頻偏是經(jīng)過歸一化的:,可以得到輸出output的變化范圍為,也就是說載波頻偏如果超過該范圍便無法糾正。(其實指的是相位的變化,這是因為在數(shù)字域里面頻率都被奈奎斯特采樣率給歸一化了,也就是說模擬頻率和數(shù)字頻率存在一定映射關系,而這種映射關系往往體現(xiàn)在相位的變化上。通常數(shù)字域中相位使用得多,模擬域中頻率使用得多)。定時信息是一串和數(shù)據(jù)等長的0,1序列,起始點對應的地方設為1,其它為0.圖2,信號同步和載波C. Delay: 延遲模塊。實現(xiàn)數(shù)據(jù)流指定長度延時。這里該模塊的作用是使輸入數(shù)據(jù)延遲一個OFDM符號。Why the number of delay

34、s is an OFDM symbol?輸入變量: Delay:fft_len+fft_len/4。延遲參數(shù),當該值為正時輸出在數(shù)據(jù)前端添加相應個數(shù)的0,當該值為負時輸出舍棄相應個數(shù)的數(shù)據(jù)。fft_len上面已經(jīng)介紹其值為64,加上循環(huán)前綴的長度為80,剛好一個OFDM符號的長度。Num Ports: 1, 輸入端口數(shù),1個。Vec Length: 1,輸入向量數(shù),1個。可選變量:Type:Complex。選擇輸入數(shù)據(jù)類型。輸出:延遲一個OFDM符號后的信號流,數(shù)據(jù)類型復數(shù)。 D. Frequency Mod: 頻率調(diào)制模塊。作用是產(chǎn)生一個和載波頻偏對應的序列,進而將該序列和接收的數(shù)據(jù)流相乘,

35、達到去除載波頻偏的目的。輸入變量: Sensitivity: -2.0/fft_len。 這個該叫什么呢?通信原理中有個調(diào)頻靈敏度,好像有點像這個;其中fft_len 的值是64。可選變量:無。輸出:經(jīng)過該模塊后輸出的序列為: MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 1)其中,是模塊C輸出的載波頻偏,的值和輸入信號長度一樣。E. Multiply: 該模塊實現(xiàn)兩個向量相乘。作用是去除小數(shù)倍載波頻偏,消除ACI干擾。輸入變量:Num In

36、puts:2。 輸入端口數(shù)為兩個。Vec Length: 1。向量長度為1??蛇x變量:IO Type:Complex。輸入和輸出端口的數(shù)據(jù)類型為復數(shù)。輸出:去除小數(shù)倍載波頻偏的數(shù)據(jù)流,數(shù)據(jù)類型為復數(shù)。F. Header/Payload Demux: 該模塊的作用是根據(jù)定時信息和幀頭信息,將復合在一起的針頭和數(shù)據(jù)進行分離。該模塊的工作原理是:首先,將三個輸入端口從上到下編號為0,1,2, 輸出端編號類似。0號端口連續(xù)輸入去除載波頻偏的數(shù)據(jù)流,當2號端口(定時信息)輸入1時,也就是功能被觸發(fā),則輸出端口0輸出幀頭,而數(shù)據(jù)(Payload)則保持不動。直到輸入端口2接收到解碼后的幀頭信息,輸出端口才

37、有數(shù)據(jù)輸出,輸出數(shù)據(jù)為幀頭和數(shù)據(jù)payload 的合并數(shù)據(jù),也就是說輸出端口2中的信息包含一幀數(shù)據(jù)中的完整信息。輸入變量: Header Length (Symbols):3。 幀頭占用的OFDM符號數(shù)。 Items per symbol: fft_len。 每個OFDM符號中所包含的項數(shù)。 Guard Interval (iterms): fft_len/4。一個符號中保護間隔所包含的項數(shù)。 Length tag key: length_tag_key。一幀數(shù)據(jù)的長度,它的值是frame_len 設定為960. Timing tag key: rx_time。給每個定時點貼上標簽,以便后面輸

38、出,或調(diào)試。 Sampling Rate: samp_rate。采樣率??蛇x變量:Output Format: symbols。 輸出格式為符號;IO Type: Complex.。輸出數(shù)據(jù)類型為復數(shù)。輸出:去除小數(shù)倍載波頻偏的數(shù)據(jù)流,數(shù)據(jù)類型為復數(shù)。G. FFT: 傅里葉變換模塊。在發(fā)送端也有一個FFT變換模塊,那是逆向(Reverse)變換,為了實現(xiàn)解調(diào)這里應該做正向(Forward)變換。注意為與發(fā)送端一致需要選擇shift操作,否則無法正常解調(diào)信號。H. OFDM Channel Estimation:信道估計模塊。該模塊實現(xiàn)兩個功能,得到整數(shù)倍頻偏和系統(tǒng)頻域響應(即信道的頻率響應)。

39、整數(shù)倍頻偏的獲取依靠同步字2,其具體算法參考文獻【1】。它在FFT模塊之后,因此實現(xiàn)的是信道頻域估計,得到的是信道的頻域響應, MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 2)其中,是同步字序列(同步字1或同步字2),是經(jīng)過傅里葉正反變換和信道之后的序列。綜上,該模塊的工作原理是,根據(jù)同步字1和2來獲取整數(shù)倍頻偏和信道的頻率響應,并將這兩個值作為標簽傳遞到該模塊以后的所有模塊中,而輸入信號流不做任何處理輸出。輸入變量: Sync. symb

40、ol 1: sync_word 1。 同步字1。sync_word 1是個變量,它的值在流圖變量模塊中給出。 Sync. symbol 2: sync_word 2。同步字2。 Number of data symbol: 1。 數(shù)據(jù)符號的個數(shù),為1. Maximum carrier offset: 3。 最大的載波頻偏,為3,也就說允許最大有3個載波位置的偏移。但為什么是3呢?可選變量:Force One Synchronizations Symbol:No。不知道什么意思?輸出: 輸出數(shù)據(jù)與輸入數(shù)據(jù)相比少了兩個同步字,但第一數(shù)據(jù)符號多了兩個標簽:一個是整數(shù)倍載波頻偏,記為ofdm_sync

41、_carr_offset (integer);另一個是信號頻率響應,記為ofdm_sync_eq_offset (complex vector)。也就是說輸出是帶標簽的數(shù)據(jù)流,數(shù)據(jù)類型是復數(shù)。I. OFDM Frame Equalizer: OFDM幀均衡模塊。該模塊實現(xiàn)兩個功能,第一糾正整數(shù)倍頻偏,第二對接收信號進行均衡。糾正整數(shù)倍頻偏可以通過循環(huán)移位子載波編號來完成。比如,設接收信號經(jīng)FFT后為,其產(chǎn)生的整數(shù)倍頻偏為(該值在前一模塊中求得,并通過標簽ofdm_sync_carr_offset傳遞到當前模塊),則通過循環(huán)移位得到來消除頻偏,其中表示到步進為的向量,且。另外,信道均衡依賴系統(tǒng)頻

42、率響應(該值也是從上一個模塊中獲得的),均衡后的信號。輸入變量: FFT length:fft_len。 傅里葉變換長度。 CP length: fft_len/4。 OFDM保護間隔長度 Equalizer: header_equalizer.base()。 采用的均衡方法,內(nèi)部指定。 Length Tag Key: length_tag_key。 一幀數(shù)據(jù)的長度。 Fixed frame length: 1。 幀的長度是否等長,設為1等長??蛇x變量:Propagate Channel State: Yes。 將信道狀態(tài)作為標簽繼續(xù)傳遞下去。輸出:去除整數(shù)倍載波頻偏和均衡后的帶有標簽的數(shù)據(jù)流

43、,數(shù)據(jù)類型為復數(shù)。J. OFDM Serializer: 逆OFDM子載波分配模塊,也稱為并串轉(zhuǎn)換模塊。該模塊實現(xiàn)的功能是發(fā)送端OFDM Carrier Allocator 模塊的逆過程,需要知道OFDM符號中每個子載波的分配規(guī)則,找到攜帶數(shù)據(jù)的48個子載波,并提取其信息。輸出: 有效數(shù)據(jù)流,去除了空載波和虛擬載波信息,數(shù)據(jù)類型復數(shù)。K. Constellation Decoder: 解符號映射模塊。這里解調(diào)的是針頭數(shù)據(jù),因此根據(jù)發(fā)送端規(guī)則,該模塊是解BPSK映射。輸出: 輸出的0和1的信息流,數(shù)據(jù)類型是字節(jié)。L. Packet Header parser: 解幀頭信息模塊。該模塊實現(xiàn)的功能是

44、發(fā)送端 packet header generator模塊的逆過程,唯一不同的是這里不是輸出一連串的0,1數(shù)據(jù)流,而是PMT字典格式的信息,伴隨著一個“header_data”的ID。輸入變量: Formatter Object:header_formatter.base()。 幀的格式,內(nèi)部指定的格式,當無輸入時,調(diào)用默認格式??蛇x變量:Propagate Channel State: 無。輸出: PMT字典格式的信息,伴隨著一個“header_data”的ID。M. FFT: 傅里葉變換模塊。 功能與G模塊相同。輸出: 帶標簽的數(shù)據(jù)流,數(shù)據(jù)類型復數(shù)。N. OFDM Frame Equali

45、zer: OFDM幀均衡。 其功能與之前的I模塊相同。輸出:帶標簽的數(shù)據(jù)流,數(shù)據(jù)類型復數(shù)。O. OFDM seriallzer: 逆子載波分配模塊,也稱為并串轉(zhuǎn)換模塊。輸出:帶標簽的數(shù)據(jù)流,數(shù)據(jù)類型復數(shù)。P. Constellation Decoder: 解符號映射模塊。這里解調(diào)的是paylaod數(shù)據(jù),因此根據(jù)發(fā)送端規(guī)則,該模塊是解QPSK映射。輸出: 輸出的0和1的信息流,數(shù)據(jù)類型是字節(jié)。Q. Repack Bits: 字節(jié)重組合模塊。 這里實現(xiàn)的功能是將2個比特的字節(jié)變換成8個比特的字節(jié),從最低位開始。輸出: 輸出的0和1的信息流,數(shù)據(jù)類型是字節(jié)。R. Stream CRC32: CRC校

46、驗模塊。 是發(fā)送端的CRC校驗模塊的逆過程,發(fā)送端是生成4個字節(jié)的校驗碼,而這里是驗證校驗碼。輸出: 去除CRC校驗字的0和1的信息流,數(shù)據(jù)類型是字節(jié)。S. Tag Debug: 標簽調(diào)試。沒有實際的功能,只是在終端中輸出數(shù)據(jù)流所攜帶的標簽信息。輸出: 標簽信息。實驗二 在MATLAB中編寫接收端代碼1 實驗設備設備清單設備型號數(shù)量1Ettus USRP N21022SBX-40子板23VERT245024計算機2開發(fā)環(huán)境操作系統(tǒng):Ubuntu 14.04 64bit軟件平臺:GNU-Radio v3.7.8; UHD release_003_009_001; Matlab 2012b2 實驗

47、目的學會利用MATLAB 來讀取GNU-Radio中保存的數(shù)據(jù)文件;理解OFDM接收信號的解調(diào)原理;學會畫星座圖,并通過星座圖來估計系統(tǒng)性能;學會計算誤碼率。3 實驗內(nèi)容本實驗的主要根據(jù)實驗一中的接收端OFDM信號的解調(diào)原理,采用Matlab軟件編程來重新實現(xiàn)實驗一中接收端流程圖的各模塊功能?;蛘哒f用Matlab語言來重寫接收端模塊的底層代碼,以實現(xiàn)相同的功能。這些功能包括同步、載波頻偏估計、信道估計與均衡、FFT/IFFT、星座圖、誤碼率等。其中,載波頻偏估計算法和同步算法是根據(jù)文獻【1】來編寫的,這與GNU-Radio中Schmidl & Cox OFDM synch模塊的工作原理是一致的

48、。信道估計采用的是最小二乘估計方法,得到的是信道的頻域響應來實現(xiàn)信號均衡的。星座圖的作用類似于二元通信系統(tǒng)中的眼圖,用來觀測接收信號的好壞。最后,誤碼率用于表征系統(tǒng)的性能。3 實驗步驟本實驗在實驗一的基礎上進行擴展。首先,在實驗一接收端流程圖的模塊A后增加一個File Sink模塊,其作用是將接收到的數(shù)據(jù)保存到當前文件中,實驗中將該數(shù)據(jù)文件命名為Test1_data_1M,其默認的文件格式為,dat。重新運行實驗一(運行時間盡量不要超過5分鐘,以免接收的文件過大)得到Test1_data_1M.dat數(shù)據(jù)文件。打開Matlab軟件,將得到的數(shù)據(jù)文件的所在路徑加入到Matlab工作路徑中,并調(diào)用

49、專用函數(shù)讀到Matlab中。(需要注意的是文件中保存的是復數(shù)格式的數(shù)據(jù),所以在讀取數(shù)據(jù)時應交替讀取,即奇數(shù)為實部,偶數(shù)為虛部,反之亦然。)根據(jù)實驗一中接收端流程圖的工作原理,在Matlab中重新編寫接收端的解調(diào)代碼。運行編寫的程序,觀測星座圖,從而估計系統(tǒng)的性能。計算Payload的誤碼率。圖1 實驗流程圖3.1 各模塊功能介紹A. 讀取數(shù)據(jù)模塊:該模塊實現(xiàn)兩個功能:將GNU-Radio中File Sink模塊保存的數(shù)據(jù)文件讀取到Matlab中,和截斷數(shù)據(jù)中設備的啟動噪聲。圖2和圖3分別是初始讀取的數(shù)據(jù)和截斷噪聲后的數(shù)據(jù),從圖2中可以明顯看到在數(shù)據(jù)起始端設備啟動噪聲非常大,之后逐漸衰減。圖3是

50、截斷噪聲后的接收信號,可以看出總體幅度比較平坦,設備的啟動噪聲被消除。調(diào)用函數(shù):read_complex_binary輸入?yún)?shù):Filename, Data length。其中Filename 表示保存的數(shù)據(jù)文件Test1_data_1M.dat;Data length是讀取的數(shù)據(jù)長度,試驗中設為1e6,當文件中數(shù)據(jù)小于該值時讀取的數(shù)據(jù)長度將根據(jù)文件的大小自動截止。輸出參數(shù):RX signal。表示讀出的數(shù)據(jù),這里使用名稱x0。圖2 初始讀出的數(shù)據(jù)圖3 截斷噪聲后的數(shù)據(jù)B 同步模塊:該模塊實現(xiàn)三個功能。第一找出USRP模塊中DSP插值器插值的大?。▽嶋H實驗中發(fā)現(xiàn)該值不是固定的);第二找出一幀數(shù)

51、據(jù)的起始點;第三估計接收信號中小數(shù)倍的載波頻偏。根據(jù)文獻【1】中同步字1的特點有 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 1)其中,表示截斷噪聲后的接收信號,包括OFDM信號和噪聲,是采樣點下標。為了使得到的值差異性更明顯,可以除以同步字1后一半的能量,進而得到測量 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插值器插值的大小(1到4的整數(shù))和一幀數(shù)據(jù)的起始點,其基本原理是前者讓的一幀數(shù)據(jù)的最大值(根據(jù)文獻【1】中Fig3,在一幀數(shù)據(jù)中會形成一個高峰)大于當前幀數(shù)據(jù)平均值的倍找出;在其基礎上再讓的一幀數(shù)據(jù)大于當前幀數(shù)據(jù)最大值的倍(實驗中,)找出起始點。根據(jù)文獻【1】找到起始點后,載波頻偏可以估計為 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)是一個OFDM符號的持續(xù)時間。但是,我們在實驗中會發(fā)現(xiàn)估計的相位和真實的相位之間有一個的偏移。通過分析其產(chǎn)生的原因,發(fā)現(xiàn)式(1)對符號的一半操作剛好產(chǎn)生的相位,其理論分析見附錄A。圖4所示為該模塊的信號處

54、理示意圖,從圖中可以看出每幀數(shù)據(jù)的起始都會產(chǎn)生一個很大的高峰,高峰越明顯說明信號質(zhì)量越好,判決設置更準確。另外,從圖中可以看出相位大致位于()附近(為了圖像美觀相位都乘了0.1的系數(shù)),這說明信號在傳輸過程中沒有產(chǎn)生頻偏或頻偏很小。圖中的黑線是尋找起始點的判決門限,從圖中可以看到大于判決門限的點不是唯一的(理論上應該有CP長度個),也就是說每幀數(shù)據(jù)的起始點不是固定的。那么它是否會對解調(diào)產(chǎn)生影響呢?這個問題將在模塊D精確的符號定時(STO)中解決。圖4 同步模塊信號處理示意圖調(diào)用函數(shù):synchron輸入?yún)?shù):RX signal, Frame length, Data length。Rx sig

55、nal 是截斷噪聲后的接收信號,所以需要調(diào)入的參數(shù)為x0;Frame length 是一幀數(shù)據(jù)的長度,這里的值為960;Data length是讀取的數(shù)據(jù)長度,試驗中設為1e4,當文件中數(shù)據(jù)小于該值時讀取的數(shù)據(jù)長度將根據(jù)文件的大小自動截止。輸出參數(shù):Start point, signal。Start point 表示一幀數(shù)據(jù)的起始點,用符號start_p表示;signal 表示重新讀取過的數(shù)據(jù),沒做任何處理只是改變輸入信號的長度,表示符號x。C. IFFT模塊:逆傅里葉變換模塊。該模塊完成的功能是逆傅里葉變換,不采用shift。這似乎接收端做FFT并采用shift剛好相反,確實,原因是GNU-

56、Radio中的的傅里葉變換和Matlab中的傅里葉變換不一致,尤其是shift的方式完全不同,如圖5所示。所以,通過實驗發(fā)現(xiàn)在Matlab中正確解調(diào)數(shù)據(jù)需要做IFFT,并自己編寫與GNU-Radio中一致的shift代碼(稱為載波位置調(diào)整)。圖5 GNU-Radio和Matlab中的Shift變換方式調(diào)用函數(shù):ifft輸入?yún)?shù):T_Sym, FFT_len, dim。T_Sym 是待變換的信號,是由OFDM符號組成的二維信號矩陣;FFT_len 是傅里葉變換的長度,這里的值為64;dim是矩陣做傅里葉變換的維度,這里需要對行向量作變換,故dim為1。輸出參數(shù):T_Sym_fft。T_Sym_f

57、ft 表示經(jīng)過逆傅里葉變換處理后的信號。D. 估計整數(shù)倍CFO模塊:該模塊的功能是估計出接收信號中的整數(shù)倍載波頻偏。其理論分析見參考文獻【1】,這樣結(jié)合之前的得到小數(shù)倍載波頻偏,估計得到載波頻偏為 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 6)其中,是估計得到的整數(shù)倍載波頻偏。調(diào)用函數(shù):Integer_CFO輸入?yún)?shù):sync_r1, sync_r2, sync_1, sync_2, Max_offset。sync_r1, sync_r2

58、 分別是接收到信號作IFFT后的同步字1和同步字2,即一幀數(shù)據(jù)的第1、2個OFDM符號;sync_1, sync_2 分別是發(fā)送端設定的同步字1和同步字2;Max_offset 是所能糾正的最大載波頻偏,這里設為10;輸出參數(shù):integer_CFO, 表示整數(shù)倍載波頻偏使用epsilon代替。E. 信道估計與頻域均衡模塊:該模塊實現(xiàn)兩個功能信道估計和均衡。這里的信道估計考慮最簡單的最小二乘估計方法,根據(jù)參考文獻【2】的方法得到 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arab

59、ic * MERGEFORMAT 7)其中,是信道的頻率響應,是頻域接收信號,是頻域發(fā)送信號。因此,可以頻域均衡為 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 8)該方法又叫做單抽頭的頻域均衡器,它可以用來解決模塊B中提到的相位旋轉(zhuǎn)問題,如圖6所示。下面對相位旋轉(zhuǎn)產(chǎn)生影響進行簡單分析即FFT窗的起始點位置估計。我們知道只要FFT 窗的起始位置在保護間隔內(nèi),那么子載波間仍保持正交性并能正常解調(diào)。但是,如圖7所示,當起始點不是而是在到之間的位置

60、時(其中,是FFT變換的長度,是之間的任意整數(shù)),傅里葉變換后便會產(chǎn)生一個相應的相位旋轉(zhuǎn),理論分析見附錄B。要解決這個問題,便要準確估計出每幀數(shù)據(jù)的相位旋轉(zhuǎn)量。下面將利用同步字2(其FFT變換用符號來表示)來找出相位旋轉(zhuǎn)量。首先,將經(jīng)過接收到的同步字2進行圓周擴展,其中表示接收到的同步字2,表示將兩個信號合并成一個長度增加一倍的信號。以同步字2為滑動窗對擴展后的信號進行相關運算得到 MACROBUTTON MTPlaceRef * MERGEFORMAT SEQ MTEqn h * MERGEFORMAT ( SEQ MTEqn c * Arabic * MERGEFORMAT 9)再令 MA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論