基于 GNU Radio 和 USRP 的頻譜檢測方法_第1頁
基于 GNU Radio 和 USRP 的頻譜檢測方法_第2頁
基于 GNU Radio 和 USRP 的頻譜檢測方法_第3頁
基于 GNU Radio 和 USRP 的頻譜檢測方法_第4頁
基于 GNU Radio 和 USRP 的頻譜檢測方法_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于GNURadio和USRP的頻譜檢測方法1頻譜檢測方法介紹

1.1認(rèn)知無線電頻譜感知原理

目前,在認(rèn)知無線電領(lǐng)域用于檢測某頻段內(nèi)是否有信號存在、有哪些信號存在的方法有多種。以檢測類型劃分,可分為信號存在性檢測和信號覆蓋范圍檢測兩類;以檢測節(jié)點個數(shù)劃分,可分為單節(jié)點檢測和多節(jié)點聯(lián)合檢測;以檢測方法劃分,主要分為匹配濾波、能量檢測、周期特性檢測三類[23]??偨Y(jié)歸納各種方法如圖所示:

信號存在檢測,是指在經(jīng)過對某特定頻段內(nèi)信號的進(jìn)行觀測之后,做出該頻段上是否有信號存在的判斷,這種探測原理的基本模型可以用下面的公式表示:

其中,x(t)是認(rèn)知無線電接收到的信號,s(t)是第一用戶傳輸?shù)男盘?;n(t)是加性白高斯噪聲;h是信道的增益;Ho是未被占用的假設(shè),表明了目前在這一確定頻段上沒有第一用戶;H1是另一種假設(shè),表明目前存在第一用戶。

下面將對單節(jié)點檢測的幾種方法進(jìn)行介紹、分析:

(1)匹配濾波器探測

當(dāng)認(rèn)知無線電獲悉了第一用戶的信號后,靜態(tài)高斯噪聲理想探測器就是匹配濾波器,原因在于它能使接收到的信號的信噪比(SNR)最大化。匹配濾波器的主要優(yōu)點是它只需很短的時間就可以獲得高處理增益。然而,它必須有效地對第一用戶的信號進(jìn)行解調(diào),這就意味著它需要第一用戶的先驗知識,比如解調(diào)方式和階數(shù)、數(shù)據(jù)包格式等。

上述信息可以預(yù)存在認(rèn)知無線電的內(nèi)存中,然而,對解調(diào)來講,認(rèn)知無線電必須通過時間和載頻同步甚至信道同步來獲得第一用戶的相關(guān)性。如果這些信息是不準(zhǔn)確的,那么,匹配濾波器的性能就會變得很差。匹配濾波器探測的一個明顯缺點在于,認(rèn)知無線電對每一類型的第一用戶都要有一個專門的接收器。

(2)能量探測

如果接收機不能夠收集到第一用戶信號的足夠的信息,此時的最佳探測器就是能量探測器。為了測量接收信號的能量,需要對帶寬為W的帶通濾波器的輸出信號進(jìn)行平方運算并在觀測時間段T內(nèi)進(jìn)行積分,并將積分器的輸出Y與門限值進(jìn)行比較,從而判定合法用戶是否出現(xiàn)。檢測過程示意圖如下所示:

能量探測器的門限很容易受到噪聲功率的變化的影響。為了解決這個問題,已經(jīng)有文獻(xiàn)提出通過第一用戶發(fā)射機的導(dǎo)頻音(PilotTone)來提高認(rèn)知無線電能量探測器的準(zhǔn)確性。另外,即使能夠適應(yīng)性的設(shè)定門限值,帶內(nèi)干擾的出現(xiàn)也會擾亂能量探測器。能量探測器的另外一個缺點是它只能探測到有用信號出現(xiàn),而不能夠區(qū)分信號的類型,即它不能區(qū)分已調(diào)制信號、噪聲及干擾。因此,能量探測器容易被不明信號誤導(dǎo)而產(chǎn)生誤判決。

(3)靜態(tài)循環(huán)特征探測

調(diào)制信號一般都經(jīng)過了載波、脈沖序列、重復(fù)性擴展、跳頻及循環(huán)前綴等耦合處理,使已調(diào)信號具有了內(nèi)在的周期性。雖然數(shù)據(jù)是靜態(tài)隨機的,但是這些調(diào)制后的信號的均值和自相關(guān)函數(shù)都具有周期性,因而稱其具有循環(huán)性。通過分析頻譜自相關(guān)函數(shù)可以探測出這些特征。頻譜自相關(guān)函數(shù)的最主要的優(yōu)點是它能夠把噪聲能量和已調(diào)信號的能量區(qū)分開來,這是因為噪聲是一個寬帶的、靜態(tài)的、沒有相關(guān)性的信號,而已調(diào)信號具有頻譜相關(guān)性和周期性。靜態(tài)循環(huán)特征探測器具有更強的抵抗噪聲功率中不確定性的能力,因而能夠比能量探測器更好地分辨出噪聲信號。不過,它就比能量探測器更加復(fù)雜并且需要更長的觀測時間。

4.1.2感知任務(wù)

綜合比較上述三種檢測方法的優(yōu)缺點,我們可以得到下面的對比:

在本認(rèn)知無線電實驗平臺中,我們選擇能量檢測的方式做頻譜感知。因為匹配濾波需要授權(quán)用戶的信號模型,只能針對某種信號進(jìn)行檢測,而能量檢測的方法對任意信號都適用。而且匹配濾波需要重構(gòu)到某種調(diào)制解調(diào)方式,解碼成型需要花費大量的計算時間。而周期特性檢測復(fù)雜度太高,時間也較長,作為初步實驗并不需要如此復(fù)雜的檢測技術(shù)。

本次實驗采用能量檢測的方法。感知任務(wù)如下:

在選取子板所能接收的頻率范圍內(nèi),可以對任意的頻段進(jìn)行能量檢測,比如針對RFX400子板,它的接收范圍是400M-500MHz,可以在400M-500M內(nèi)選定任意范圍進(jìn)行檢測,對所檢測頻段使用情況,能在可控制的時間內(nèi)記錄到文件中,并可通過圖形顯示出來。

4.2能量檢測FFT方法

FFT是離散傅立葉變換的快速算法,可以將一個信號變換到頻域。有些信號在時域上是很難看出什么特征的,但是如果變換到頻域之后,就很容易看出特征了。這就是很多信號分析采用FFT變換的原因。另外,F(xiàn)FT可以將一個信號的頻譜提取出來,這在頻譜分析方面也是經(jīng)常用的。得到了信號的頻域變換后,就可以對其進(jìn)行模值運算得出某頻率值下的幅度特性。

一個模擬信號,經(jīng)過ADC采樣之后,就變成了數(shù)字信號。采樣得到的數(shù)字信號,就可以做FFT變換了。N個采樣點,經(jīng)過FFT之后,就可以得到N個點的FFT結(jié)果。為了方便進(jìn)行FFT運算,通常N取2的整數(shù)次方。假設(shè)采樣頻率為Fs,信號頻率F,采樣點數(shù)為N。那么FFT之后結(jié)果就是一個為N點的復(fù)數(shù)。每一個點就對應(yīng)著一個頻率點。這個點的模值,就是該頻率值下的幅度特性。具體跟原始信號的幅度有什么關(guān)系呢?假設(shè)原始信號的峰值為A,那么FFT的結(jié)果的每個點(除了第一個點直流分量之外)的模值就是A的N/2倍。而第一個點就是直流分量,它的模值就是直流分量的N倍。而每個點的相位,就是在該頻率下的信號的相位。第一個點表示直流分量(即0Hz),而最后一個點N的再下一個點(實際上這個點是不存在的,這里是假設(shè)的第N+1個點,也可以看做是將第一個點分做兩半分,另一半移到最后)則表示采樣頻率Fs,這中間被N-1個點平均分成N等份,每個點的頻率依次增加。例如某點n所表示的頻率為:Fn=(n-1)*Fs/N。由上面的公式可以看出,F(xiàn)n所能分辨到頻率為為Fs/N,如果采樣頻率Fs為1024Hz,采樣點數(shù)為1024點,則可以分辨到1Hz。1024Hz的采樣率采樣1024點,剛好是1秒,也就是說,采樣1秒時間的信號并做FFT,則結(jié)果可以分析到1Hz,如果采樣2秒時間的信號并做FFT,則結(jié)果可以分析到0.5Hz。如果要提高頻率分辨力,則必須增加采樣點數(shù),也即采樣時間。頻率分辨率和采樣時間是倒數(shù)關(guān)系。

假設(shè)FFT之后某點n用復(fù)數(shù)a+bi表示,那么這個復(fù)數(shù)的模就是

,相位就是Pn=atan2(b,a)。根據(jù)以上的結(jié)果,就可以計算出n點(n≠1,且n<=N/2)對應(yīng)的信號的表達(dá)式為:An/(N/2)*cos(2*pi*Fn+Pn),即2*An/N*cos(2*pi*Fn+Pn)。對于n=1點的信號,是直流分量,幅度即為A1/N。

由于FFT結(jié)果的對稱性,通常我們只使用前半部分的結(jié)果,即小于采樣頻率一半的結(jié)果,即可以是前向FFT也可以是后向FFT,前向、后向各一半結(jié)果。

由此可知:假設(shè)采樣頻率為Fs,采樣點數(shù)為N,做FFT之后,某一點n(n從1開始)表示的頻率為:Fn=(n-1)*Fs/N;該點的模值除以N/2就是對應(yīng)該頻率下的信號的幅度(對于直流信號是除以N);該點的相位即是對應(yīng)該頻率下的信號的相位。相位的計算可用函數(shù)atan2(b,a)計算。atan2(b,a)是求坐標(biāo)為(a,b)點的角度值,范圍從-pi到pi。要精確到xHz,則需要采樣長度為1/x秒的信號,并做FFT。要提高頻率分辨率,就需要增加采樣點數(shù),這在一些實際的應(yīng)用中是不現(xiàn)實的,需要在較短的時間內(nèi)完成分析。解決這個問題的方法有頻率細(xì)分法,比較簡單的方法是采樣比較短時間的信號,然后在后面補充一定數(shù)量的0,使其長度達(dá)到需要的點數(shù),再做FFT,這在一定程度上能夠提高頻率分辨力。

4.3能量檢測實現(xiàn)

4.3.1GNURadio的USRP初始化設(shè)置

需要搭建基于GNURadio的FFT頻譜檢測器,我們就需要正確的初始化配置USRP,建立流圖,搭建起FFT運算的軟件無線電結(jié)構(gòu)。

初始化配置USRP,需要使用GNURadio中的usrp.py模塊,這個模塊包含輸入輸出初始化設(shè)置、ADC采樣速率、功率、增益、載頻等?;旧纤嘘P(guān)于配置USRP的子函數(shù)都需要重載usrp.py來配置。具體見下表:

usrp.py函數(shù)是所有GNURadio控制USRP的程序都要用到的初始化函數(shù),它們控制usb接口、fpga程序、ADC、DAC、子板,跟硬件打交道的程序都可以從這個函數(shù)的子函數(shù)找到控制方法。

source_x()和sink_x()則是usrp.py中最基本的子函數(shù),它們是流圖的開始或者結(jié)束,由它們我們可以初始化USRP為接受器或者發(fā)射器,而且一個USRP通過時分復(fù)用可以復(fù)用為雙工收發(fā)器。

按照表的函數(shù)應(yīng)用舉例,我們設(shè)置USRP為接收狀態(tài),nchan=2這樣我們可以同時獲得兩個子板的信息,同時對400M和2.4G頻段進(jìn)行掃頻。其余設(shè)置均為默認(rèn)狀態(tài),由此可得知:

adc_rate=64MS/s

usrp_decim=64

usrp_rate=adc_rate/usrp_decim=1MS/s4.3.2FFT能量檢測流圖

由上一小節(jié)FFT的原理,我們可以得出FFT計算結(jié)果的意義,可對其進(jìn)一步處理達(dá)到我們的需求。GNURadio自帶庫有FFT模塊,在設(shè)置好USRP并正確的建立流圖,然后將得到的結(jié)果通過計算途徑處理,最終得到我們需要的功能——大范圍的能量檢測。因為USRP帶寬的限制,一個時間內(nèi)前端只能檢測到8MHz的射頻信號如果要檢測大于8MHz帶寬的信號我們需要通過不斷的RF前端步進(jìn)調(diào)頻以達(dá)到檢測大范圍頻譜的目的,雖然檢測到的頻譜并不是實時的。USRP(或者程序)每個時刻對一段范圍的頻率進(jìn)行檢測,然后步進(jìn)調(diào)頻到下一段頻率,這樣就能掃頻掃過大段的頻率。

要是頻率調(diào)頻已經(jīng)完成步進(jìn)調(diào)頻,我們需要在每一個步進(jìn)時刻結(jié)束時——即已獲得這段頻率的數(shù)值時,發(fā)送一個調(diào)頻指令到USRP。調(diào)頻控制由gr.bin_statistics_fsink程序?qū)崿F(xiàn),bin_statistics在以下的函數(shù)解釋中有詳細(xì)解釋。

當(dāng)我們命令USRP的RF子板改變中心頻率時,我們必須等待ADC的采樣到達(dá)FFT處理器并判斷完是否屬于需要的中心頻率。在這個過程中需要經(jīng)過很多重的延時比如從FPGA,USB,計算延時。這樣我們必須在調(diào)節(jié)到下一步進(jìn)頻率時進(jìn)行延時,以保證上一步進(jìn)頻率的采樣能正確的被FFT處理器處理。

程序主要驅(qū)動部分由bin_statisticssink函數(shù)組成。整個流程如圖4-3

bin_statistics主要控制USRP的調(diào)頻控制,并根據(jù)步進(jìn)頻率帶寬的大小決定延時時間即FFT處理器忽略掉N個向量(向量長度由計算決定)這里也可以詳細(xì)解釋,當(dāng)進(jìn)行完FFT處理后,bin_statistics將處理后的信息組合成message,并將此message插入messagequeue。message的每個內(nèi)容由FFT后的每個最大頻率的向量組成。

每一步進(jìn)的延時需要計算得出,延時包括調(diào)頻延時和計算延時,其中調(diào)頻延時是最主要的延時。

調(diào)頻延時由RF前端的PLL到主板的時間再加上管道中排隊的時間,我們所用的RFX系列延時差不多是1ms。

調(diào)頻延時轉(zhuǎn)化為FFT計算時忽略的向量個數(shù)的計算公式是

tune_delay_passed_to_bin_statistics=

int(round(required_tune_delay_in_sec*usrp_rate/fft_size))

其中:

required_tune_delay_in_sec=10e-3;usrp_rate=1M(decimation=64);

fft_size=256

可得出tune_delay_passed_to_bin_stats=4(FFTFrames)

這表示,我們延時1ms我們將跳過4個輸入的FFT向量個數(shù),來獲得真實的向量數(shù)據(jù)。延時時間還包括計算延時,我們需要收集處理N個FFT采樣,如果DR=8那將用時128us,還應(yīng)該加上計算機處理這N個采樣的時間,這個需要根據(jù)實際計算機的處理能力通過實驗測得。

本實驗平臺設(shè)置步進(jìn)頻率為3MHz,設(shè)置3M是為了能盡可能精確的對小范圍的頻率進(jìn)行能量測算,而我們通信時占用的頻寬也大概是2M多,加上半衰保護,差不多即是3M。而且步進(jìn)頻率3M可節(jié)省每一步進(jìn)的運算時間,是個均衡的選擇。這樣USRP及相關(guān)程序的初始化就完成了。

以下是完成FFT運算的流圖,其搭建一個完整的軟件無線電結(jié)構(gòu),數(shù)據(jù)最終寫入message。流圖如下圖:

4.3.3實現(xiàn)結(jié)果

總結(jié)如下,受制于USB總線的約束,USRP不能檢測超過8MHz的帶寬(USRP的USB2.0最大數(shù)據(jù)傳輸速率為32MBytes/S,每個實采樣點占用2個Bytes,以一路復(fù)數(shù)采樣進(jìn)行單收或單發(fā),則最高可達(dá)到32/4=8M復(fù)采樣每秒,即最高發(fā)送或接收8MHz帶寬的信號)。因此,要對一段RF頻段進(jìn)行檢測,必須以合適地步進(jìn)值調(diào)節(jié)RF前端,這樣就能檢查很寬的頻譜。在此設(shè)計過程中,為更好地表示指定頻段內(nèi)的頻譜感知情況,通過設(shè)置GNURadio的相關(guān)函數(shù),我們選取3MHz這樣的掃頻間距。

頻段掃描過程如下:

(1)設(shè)置所要感知頻段的最小、最大頻率以及掃描次數(shù)M;

(2)對所選頻譜范圍進(jìn)行間隔化,每一間隔值為3MHz;

(3)在第一個3MHz頻段范圍內(nèi)對信號進(jìn)行AD采樣,得到N個點(本次設(shè)計N取256);

(4)進(jìn)行N點FFT,對得到的N個復(fù)數(shù)分別進(jìn)行平方和運算,得出模值,再累加,求得平均值作為此3MHz間隔的模值,并由此求得功率大小,記錄到文件中;

(5)移頻到下一個3MHz間隔,重復(fù)上面的步驟,直到掃描完頻段內(nèi)所有的每一個間隔;

我們對特定頻段做多幾次掃頻,獲得平均功率數(shù)據(jù),使用gnuplot將數(shù)據(jù)畫圖。其中Y軸為平均功率,單位為dBm;X軸為頻率,單位為MHz。因為400M和2.4G頻段上的功率量值不同,所以起始功率不同。見圖4-5和圖4-6

從上兩圖中的檢測結(jié)果可以非常直觀的得到以下結(jié)論:

(1)2.4G非授權(quán)頻段非常擁擠,這段頻率已經(jīng)被大量的wifi設(shè)備使用殆盡,而且還有大量“不速之客”加進(jìn)來干擾,比如藍(lán)牙和微波爐開啟產(chǎn)生的污染(圖中2430MHz處即是微波爐開啟產(chǎn)生

溫馨提示

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

評論

0/150

提交評論