




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、大連理工大學實驗預習報告學院(系): 信通學院 專業(yè): 電子信息工程 班級: 電子1201班 姓 名: 陳 宇 學號: 201244201 組: _ 實驗時間: 實驗室: 創(chuàng)新園大廈C221 實驗臺: 指導教師簽字: 成績: 實驗七 GNU Radio實驗一、 實驗目的和要求(1)了解python語言程序。(2)了解傅里葉變換,掌握usrp觀測無線信號頻譜圖和時域圖的方法(3)了解如何生成和發(fā)送一個信號數(shù)據(jù)包,了解benchmark之間的通信機制,了解benchmark如何傳輸文件(4)了解GRC的信號處理模塊、流程圖及其使用方法,了解DPSK調制解調原理(5)了解GRC的信號處理模塊、流程圖
2、及其使用方法、了解GMSK調制解調原理二、 實驗原理和內容(1)實驗一是一個GNU Radio “Hello World”的例子。它產生兩個sine波形并且把他們輸出到聲卡,一個輸出到聲卡的左聲道,一個輸出到右聲道。 dial_tone.py 1 #!/usr/bin/env python 2 from gnuradio import gr 3 from gnuradio import audio 4 class my_top_block(gr.top_block): 5 def _init_(self): 6 gr.top_block._init_(self) 7 sample_rate =
3、 32000 8 ampl = 0.1 9 src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, ampl) 10 src1 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, ampl) 11 dst = audio.sink (sample_rate, "") 12 self.connect (src0, (dst, 0) 13 self.connect (src1, (dst, 1) 14 if _name_ = '_main_': 15
4、 try: 16 my_top_block().run() 17 except KeyboardInterrupt: 18 pass 第一行告訴我們這是一個Python文件,他利用Python編譯器執(zhí)行。在第2行和第3行,import命令導入GNU Radio模塊的gr和audio模塊。gr模塊用來運行一個GNU Radio應用。Audio模塊加載一個音頻設備塊,來從聲卡里輸入和輸出音頻和控制音頻設備。第4行開始定義my_top_block類,從gr.top_block (a subclass of gr)中派生。這是一個流程圖的容器。第4行到第13行是類my_top_block定義。第5行定
5、義了類my_top_block的構造函數(shù)_init_。該構造函數(shù)在第6行通過調用父類構造函數(shù)實例化。在第七行設置變量sample_rate,該變量控制信號采樣率。第8行設置幅度ampl變量。dial_tone包括三個模塊(如下圖)和兩個接口。 第9行定義了一個信號源src0,產生一個350Hz、32K采樣率、幅度為0.1的正弦波。第10行定義了一個信號源src1,產生一個440Hz、32K采樣率、幅度為0.1的正弦波。gr.sig_source_f的后綴f表示信號源輸出信號時浮點值。第11行定義了目的dst為audio sink可以用來發(fā)送/接收音頻信號到聲卡并且控制聲卡。第12行和第13行連
6、接模塊。第15行和第17行的try和except的意思是如果用戶按下Ctrl+C則停止運行程序。第14行表明如果該代碼是python編譯器執(zhí)行的唯一模塊則執(zhí)行my_top_block。 下面的兩個表示方法是一樣的: fg.connect(src1, 0), (dst, 1) fg.connect (src1, (dst, 1) 一旦流向圖被建立了,我們調用start生成一個或者多個線程去運行它,按下任意鍵程序控制權就會返回給調用者。(2)本實驗應用到GNURadio_SRCgnuradio-3.2.2gr-utilssrcpython目錄底下的usrp_fft.py。本程序的功能是實時給出空間
7、無線信號的頻譜占用情況。相當于一個頻譜儀。(3)本實驗用到/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital底下的benchmark_tx.py和benchmark_rx.py,前者用來發(fā)送,后者用來接收。benchmark_tx.py生成數(shù)據(jù)包和幀結構如下圖所示,幀的大小可以由用戶設定。PC中運行的GNU Radio軟件生成數(shù)據(jù)包和幀,通過USB傳輸給USRP。發(fā)送端每發(fā)送5個包就等待1秒再發(fā)送下5個包。下圖是發(fā)送端可選項。(4)在本實驗和下一個實驗中,將通過軟件無線電平臺實現(xiàn)這兩種技術的數(shù)據(jù)傳輸。DPSK調制原理:(5
8、)在CPFSK中,如果頻偏指數(shù)h如果取1/2,那么此種CPFSK則成為MSK(最小頻移鍵控),它是一種優(yōu)良的調制方式,MSK在各種頻移鍵控中占用帶寬最小。但是由于無線通信對信號功率譜特性要求很高,特別是限制帶外輻射低到-60到-80DB,在碼元轉換時刻以±相位突跳的MSK信號仍需進一步優(yōu)化,GMSK(高斯最小頻移鍵控)是其優(yōu)化技術的一種?;炯夹g是在基帶碼流入VCO之前,先以與調制高斯濾波器進行處理使基帶方波的棱角加以圓滑。三、實驗步驟(1)撥號音的產生1打開一個Terminal,輸入cd /GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/
9、python/audio。進入到dial_tone.py所在路徑。2輸入ls,顯示當前路徑所含文件。3輸入gedit dial_tone.py。打開dial_tone.py文件。4鍵入sudo ./dial_tone.py運行dial_tone.py。通過耳機(或音響)聽PC聲卡所發(fā)出的聲音。5、Ctrl+C停止運行dial_tone.py。更改dial_tone.py中ampl的大小以及頻率大小,保存后重新進行第4步操作,感受聲音變化。(2)快速傅里葉變換FFT1連接好USRP2打開一個Terminal,輸入sudo usrp_fft.py h,將會得到幫助菜單。-h表示顯示幫助菜單-w表示
10、選擇USRP,一般默認值-R選擇USRP子板,一般默認值-A選擇天線,一般默認值-d表示decimation rate,默認值16。相當于設置一個抽取濾波器寬度。USRP的ADC以64MSPS的復采樣率采進64MHz帶寬的信號,經(jīng)過抽取濾波器后,帶寬變?yōu)樵瓉淼?/decim,數(shù)據(jù)速率變?yōu)樵瓉淼?/decim。-f設置采樣信號的中心頻率,在顯示屏上的中間位置。默認2.5GHz,如果使用RFX2400子板,則只能設置2.3G到2.9G之間。-waterfall表示以瀑布圖形式顯示-S表示查看時域圖,也可以用sudo usrp_oscope.py方式得到。-fft-size表示fft點數(shù),默認102
11、4點。3輸入sudo usrp_fft.py,得到頻譜顯示窗口(3)Simplex數(shù)據(jù)傳輸1、打開一個Terminal,輸入cd/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital。進入到benchmark_tx.py和benchmark_rx.py所在路徑。2、在接收機端,鍵入sudo ./benchmark_rx.py f 2.4G r 200k即建立一個載頻為2.4GHz、傳輸速率為200kbit/s的接收通道3、在發(fā)射機端,鍵入sudo ./benchmark_tx.py f 2.4G r 200k,發(fā)射機開始發(fā)送A
12、SCII碼接收端偵聽發(fā)送來得數(shù)據(jù)包并顯示每個包的接收信息。檢測每個包的錯誤。在顯示的信息中,True或者False表示數(shù)據(jù)的CRC校驗是否正確。pktno表示數(shù)據(jù)包編號,n_rcvd表示接收到數(shù)據(jù)包個數(shù),n_right表示接收到的正確的數(shù)據(jù)包個數(shù)。4、接下來應用benchmark傳送文件,將benchmark_tx.py和benchmark_rx.py修改成如APPIDEX 1和APPIDEX 2中所示代碼。5、先啟動接收端。再先啟動發(fā)送端,如圖s3-7所示。在載頻2.4G,傳輸速率為200k的通道上傳輸READ ME文件。數(shù)據(jù)包大小為10。如果接收端誤包率較大,可以通過以下方式改善:1)減小
13、包大小2)注釋掉發(fā)送端的send_pkt(eof=True)3)修改一下每個包發(fā)送的間隔(在while中加上time.sleep(*)),4)把發(fā)一個包后的sleeptime改小點6、通過-tx-amplitude=NUM命令可以設置發(fā)送功率,默認NUM為12000,大概5-6mw,usrp最大發(fā)射功率為50mw,即NUM=32700;(4)基于USRP的DPSK系統(tǒng)1DPSK(差分相移鍵控)是為了解決普通PSK相位模糊問題提出來的?;贕RC的DPSK信號產生的流程圖如圖s6-1所示。其中Pecket Encoder模塊的作用是對抽樣數(shù)據(jù)進行包編碼。通過GNU Radio平臺可以實現(xiàn)DBPS
14、K、DQPSK、D8PSK。其流程圖都是一樣的,只需改變調制模塊中的調制方式參數(shù)即可(如圖s6-2)。圖s6-1 DPSK信號調制流程圖2在接收機端調用usrp_fft.py和usrp_oscope.py,觀測DPSK調制產生的射頻信號的時域圖、頻譜圖、以及星座圖等。3DPSK解調及驗證DPSK的GRC解調流程圖如下:該流程圖中以USRP作為信號源,以接收空間中的無線調制信號。設計解調流程圖應該注意的是其參數(shù)如samp_rate、Samples/Symbol、Type等都要與調制流程圖中的參數(shù)設置對應,并且要符合個參數(shù)具體要求。此外最值得注意的是USRP Source的Decimation要設
15、置為調制流程圖中USRP Sink 的Interpolation的一半。否則不能正確解調出信號源數(shù)據(jù)。DPSK調制流程圖如圖s6-1,解調流程圖如圖s6-3,接下來分別以500Hz的正弦信號、0 0 1的向量以及文件作為信源,通過比較解調數(shù)據(jù)與信源是否一致來驗證整個調制解調過程的正確性。(5)GMSK1基于GRC的GMSK信號產生的流程圖如圖s7-1所示。由另外一臺USRP設備接收到的GMSK信號時域圖和頻譜圖如圖s7-2和圖s7-3所示??梢钥闯鑫覀兊玫搅似谕械腉MSK調制信號。2GMSK解調及驗證GMSK的GRC解調流程圖如下:該流程圖中同樣以USRP作為信號源,以接收空間中的無線調制信
16、號。設計解調流程圖應該注意的參數(shù)設置與DPSK相同。否則不能正確解調出信號源數(shù)據(jù)。4接下來分別以1KHz的正弦信號以及文件作為信源,通過比較解調數(shù)據(jù)與信源是否一致來驗證整個調制解調過程的正確性。四、實驗數(shù)據(jù)記錄表格大連理工大學實驗報告學院(系): 信通學院 專業(yè): 電子信息工程 班級: 電子1201班 姓 名: 陳宇 學號: 201244201 組: _ 實驗時間: 實驗室: 創(chuàng)新園大廈C221 實驗臺: 指導教師簽字: 成績: 實驗七 GNU Radio實驗一、 實驗目的和要求(1)了解python語言程序。(2)了解傅里葉變換,掌握usrp觀測無線信號頻譜圖和時域圖的方法(3) 了解如何生
17、成和發(fā)送一個信號數(shù)據(jù)包,了解benchmark之間的通信機制,了解benchmark如何傳輸文件(4)了解GRC的信號處理模塊、流程圖及其使用方法,了解DPSK調制解調原理(5)了解GRC的信號處理模塊、流程圖及其使用方法、了解GMSK調制解調原理二、 實驗原理和內容(1)實驗一是一個GNU Radio “Hello World”的例子。它產生兩個sine波形并且把他們輸出到聲卡,一個輸出到聲卡的左聲道,一個輸出到右聲道。 dial_tone.py 1 #!/usr/bin/env python 2 from gnuradio import gr 3 from gnuradio import
18、audio 4 class my_top_block(gr.top_block): 5 def _init_(self): 6 gr.top_block._init_(self) 7 sample_rate = 32000 8 ampl = 0.1 9 src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, ampl) 10 src1 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, ampl) 11 dst = audio.sink (sample_rate, "&q
19、uot;) 12 self.connect (src0, (dst, 0) 13 self.connect (src1, (dst, 1) 14 if _name_ = '_main_': 15 try: 16 my_top_block().run() 17 except KeyboardInterrupt: 18 pass 第一行告訴我們這是一個Python文件,他利用Python編譯器執(zhí)行。在第2行和第3行,import命令導入GNU Radio模塊的gr和audio模塊。gr模塊用來運行一個GNU Radio應用。Audio模塊加載一個音頻設備塊,來從聲卡里輸入和輸出音頻
20、和控制音頻設備。第4行開始定義my_top_block類,從gr.top_block (a subclass of gr)中派生。這是一個流程圖的容器。第4行到第13行是類my_top_block定義。第5行定義了類my_top_block的構造函數(shù)_init_。該構造函數(shù)在第6行通過調用父類構造函數(shù)實例化。在第七行設置變量sample_rate,該變量控制信號采樣率。第8行設置幅度ampl變量。dial_tone包括三個模塊(如下圖)和兩個接口。 第9行定義了一個信號源src0,產生一個350Hz、32K采樣率、幅度為0.1的正弦波。第10行定義了一個信號源src1,產生一個440Hz、32
21、K采樣率、幅度為0.1的正弦波。gr.sig_source_f的后綴f表示信號源輸出信號時浮點值。第11行定義了目的dst為audio sink可以用來發(fā)送/接收音頻信號到聲卡并且控制聲卡。第12行和第13行連接模塊。第15行和第17行的try和except的意思是如果用戶按下Ctrl+C則停止運行程序。第14行表明如果該代碼是python編譯器執(zhí)行的唯一模塊則執(zhí)行my_top_block。 下面的兩個表示方法是一樣的: fg.connect(src1, 0), (dst, 1) fg.connect (src1, (dst, 1) 一旦流向圖被建立了,我們調用start生成一個或者多個線程去
22、運行它,按下任意鍵程序控制權就會返回給調用者。(2)本實驗應用到GNURadio_SRCgnuradio-3.2.2gr-utilssrcpython目錄底下的usrp_fft.py。本程序的功能是實時給出空間無線信號的頻譜占用情況。相當于一個頻譜儀。(3)本實驗用到/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital底下的benchmark_tx.py和benchmark_rx.py,前者用來發(fā)送,后者用來接收。benchmark_tx.py生成數(shù)據(jù)包和幀結構如下圖所示,幀的大小可以由用戶設定。PC中運行的GNU Radi
23、o軟件生成數(shù)據(jù)包和幀,通過USB傳輸給USRP。發(fā)送端每發(fā)送5個包就等待1秒再發(fā)送下5個包。下圖是發(fā)送端可選項。(4)在本實驗和下一個實驗中,將通過軟件無線電平臺實現(xiàn)這兩種技術的數(shù)據(jù)傳輸。DPSK調制原理:(5)在CPFSK中,如果頻偏指數(shù)h如果取1/2,那么此種CPFSK則成為MSK(最小頻移鍵控),它是一種優(yōu)良的調制方式,MSK在各種頻移鍵控中占用帶寬最小。但是由于無線通信對信號功率譜特性要求很高,特別是限制帶外輻射低到-60到-80DB,在碼元轉換時刻以±相位突跳的MSK信號仍需進一步優(yōu)化,GMSK(高斯最小頻移鍵控)是其優(yōu)化技術的一種?;炯夹g是在基帶碼流入VCO之前,先以與
24、調制高斯濾波器進行處理使基帶方波的棱角加以圓滑。三、主要儀器設備計算機、USRP四、實驗步驟與操作方法(1)撥號音的產生1打開一個Terminal,輸入cd /GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/audio。進入到dial_tone.py所在路徑。2輸入ls,顯示當前路徑所含文件。3輸入gedit dial_tone.py。打開dial_tone.py文件。4鍵入sudo ./dial_tone.py運行dial_tone.py。通過耳機(或音響)聽PC聲卡所發(fā)出的聲音。5、Ctrl+C停止運行dial_tone.py。更改
25、dial_tone.py中ampl的大小以及頻率大小,保存后重新進行第4步操作,感受聲音變化。(2)快速傅里葉變換FFT1連接好USRP2打開一個Terminal,輸入sudo usrp_fft.py h,將會得到幫助菜單。-h表示顯示幫助菜單-w表示選擇USRP,一般默認值-R選擇USRP子板,一般默認值-A選擇天線,一般默認值-d表示decimation rate,默認值16。相當于設置一個抽取濾波器寬度。USRP的ADC以64MSPS的復采樣率采進64MHz帶寬的信號,經(jīng)過抽取濾波器后,帶寬變?yōu)樵瓉淼?/decim,數(shù)據(jù)速率變?yōu)樵瓉淼?/decim。-f設置采樣信號的中心頻率,在顯示屏上
26、的中間位置。默認2.5GHz,如果使用RFX2400子板,則只能設置2.3G到2.9G之間。-waterfall表示以瀑布圖形式顯示-S表示查看時域圖,也可以用sudo usrp_oscope.py方式得到。-fft-size表示fft點數(shù),默認1024點。3輸入sudo usrp_fft.py,得到頻譜顯示窗口(3)Simplex數(shù)據(jù)傳輸1、打開一個Terminal,輸入cd/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital。進入到benchmark_tx.py和benchmark_rx.py所在路徑。2、在接收機端,鍵
27、入sudo ./benchmark_rx.py f 2.4G r 200k即建立一個載頻為2.4GHz、傳輸速率為200kbit/s的接收通道3、在發(fā)射機端,鍵入sudo ./benchmark_tx.py f 2.4G r 200k,發(fā)射機開始發(fā)送ASCII碼接收端偵聽發(fā)送來得數(shù)據(jù)包并顯示每個包的接收信息。檢測每個包的錯誤。在顯示的信息中,True或者False表示數(shù)據(jù)的CRC校驗是否正確。pktno表示數(shù)據(jù)包編號,n_rcvd表示接收到數(shù)據(jù)包個數(shù),n_right表示接收到的正確的數(shù)據(jù)包個數(shù)。4、接下來應用benchmark傳送文件,將benchmark_tx.py和benchmark_rx
28、.py修改成如APPIDEX 1和APPIDEX 2中所示代碼。5、先啟動接收端。再先啟動發(fā)送端,如圖s3-7所示。在載頻2.4G,傳輸速率為200k的通道上傳輸READ ME文件。數(shù)據(jù)包大小為10。如果接收端誤包率較大,可以通過以下方式改善:1)減小包大小2)注釋掉發(fā)送端的send_pkt(eof=True)3)修改一下每個包發(fā)送的間隔(在while中加上time.sleep(*)),4)把發(fā)一個包后的sleeptime改小點6、通過-tx-amplitude=NUM命令可以設置發(fā)送功率,默認NUM為12000,大概5-6mw,usrp最大發(fā)射功率為50mw,即NUM=32700;(4)基于
29、USRP的DPSK系統(tǒng)1 DPSK(差分相移鍵控)是為了解決普通PSK相位模糊問題提出來的。基于GRC的DPSK信號產生的流程圖如圖s6-1所示。其中Pecket Encoder模塊的作用是對抽樣數(shù)據(jù)進行包編碼。通過GNU Radio平臺可以實現(xiàn)DBPSK、DQPSK、D8PSK。其流程圖都是一樣的,只需改變調制模塊中的調制方式參數(shù)即可(如圖s6-2)。2在接收機端調用usrp_fft.py和usrp_oscope.py,觀測DPSK調制產生的射頻信號的時域圖、頻譜圖、以及星座圖等。3DPSK解調及驗證DPSK的GRC解調流程圖如下:該流程圖中以USRP作為信號源,以接收空間中的無線調制信號。
30、設計解調流程圖應該注意的是其參數(shù)如samp_rate、Samples/Symbol、Type等都要與調制流程圖中的參數(shù)設置對應,并且要符合個參數(shù)具體要求。此外最值得注意的是USRP Source的Decimation要設置為調制流程圖中USRP Sink 的Interpolation的一半。否則不能正確解調出信號源數(shù)據(jù)。DPSK調制流程圖如圖s6-1,解調流程圖如圖s6-3,接下來分別以500Hz的正弦信號、0 0 1的向量以及文件作為信源,通過比較解調數(shù)據(jù)與信源是否一致來驗證整個調制解調過程的正確性。(5)GMSK1基于GRC的GMSK信號產生的流程圖如圖s7-1所示。由另外一臺USRP設備接收到的GMSK信號時域圖和頻譜圖如圖s7-2和圖s7-3所示。可以看出我們得到了期望中的GMSK調制信號。2GMSK解調及驗證GMSK的GRC解調流程圖如下:該流程圖中同樣以USRP作為信號源,以接收空間中的無線調制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內科血管疾病分類與診療概述
- 責任制護理分組分管床位
- 公司培訓總結
- 2025年中國攀巖鉤行業(yè)市場全景分析及前景機遇研判報告
- 《數(shù)智時代下的供應鏈管理:理論與實踐》課件 第十二章 供應鏈金融
- 農業(yè)經(jīng)理人培訓
- 商鋪消防知識培訓
- 航空航天復合材料 課件 第5章 功能梯度復合材料朱和國
- 老年患者護理風險管理
- 娛樂場所會員充值卡發(fā)行與使用管理合同
- 國民經(jīng)濟行業(yè)分類代碼(2024年版)
- 國家開放大學《藥物治療學(本)》形考作業(yè)1-4參考答案
- 2025年中考歷史總復習課本圖片詳細說明(全六冊)
- 《熊貓小四》知識點匯-總以及這本書閱讀題測試
- 《膽管炎的護理》課件
- 中國概況(英文版)課件
- 2025年中國orc低溫余熱發(fā)電系統(tǒng)行業(yè)分析及發(fā)展趨勢預測
- 中醫(yī)護理疑難病例討論
- 2025年江蘇啟東市勞務技術經(jīng)濟開發(fā)有限公司招聘筆試參考題庫含答案解析
- 房屋市政工程施工現(xiàn)場安全風險分級管控與防范措施清單
- 山西焦煤招聘筆試題庫2025
評論
0/150
提交評論