欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于USRP的頻譜智能感知系統(tǒng)及其方法與流程

文檔序號:12037517閱讀:1745來源:國知局
一種基于USRP的頻譜智能感知系統(tǒng)及其方法與流程

本發(fā)明涉及頻譜感知技術(shù)領(lǐng)域,具體涉及一種基于usrp的頻譜智能感知系統(tǒng)及其方法。



背景技術(shù):

目前無線頻譜資源的規(guī)劃和使用是由政府制定,通信設(shè)備對頻譜的使用須政府授權(quán)許可,而且政府所制定的頻譜靜態(tài)分配方式會嚴(yán)重降低頻譜的利用效率。比如分配給蜂窩移動通信的系統(tǒng)頻帶經(jīng)常會出現(xiàn)超負(fù)荷現(xiàn)象,而共用頻帶卻85%的時間處于空閑狀態(tài)。而認(rèn)知無線電技術(shù)可使認(rèn)知用戶“見縫插針”地借用空閑的授權(quán)頻帶,從而提高頻譜的利用機會和利用效率。

認(rèn)知無線電的硬件原型通常選擇usrp軟件無線電平臺裝置,其前面板多為兩天線接口,可以分別用來接收或發(fā)射信號,中間配有ethernet接口以通過千兆以太網(wǎng)連接pc,右下方的power接口作為電源接口。

如上所說,目前一臺usrp配有兩根天線,只能完成一次收發(fā)信號。如果把發(fā)射信號的天線用來發(fā)射su信號,那么就無法用發(fā)射天線來控制pu信號的存在與否了。因此,一臺usrp無法通過檢測程序?qū)崿F(xiàn)認(rèn)知用戶su在pu信號不存在的情況下可以占用授權(quán)用戶pu的授權(quán)頻段,在pu信號存在的情況下,可以主動避讓的功能。



技術(shù)實現(xiàn)要素:

為解決上述問題,本發(fā)明提供了一種基于usrp的頻譜智能感知系統(tǒng)及其方法,避免了現(xiàn)有技術(shù)中一臺usrp無法通過檢測程序?qū)崿F(xiàn)認(rèn)知用戶su在pu信號不存在的情況下可以占用授權(quán)用戶pu的授權(quán)頻段和在pu信號存在的情況下可以主動避讓的缺陷。

為了克服現(xiàn)有技術(shù)中的不足,本發(fā)明提供了一種基于usrp的頻譜智能感知系統(tǒng)及其方法的解決方案,具體如下:

一種基于usrp的頻譜智能感知系統(tǒng),包括usrp,所述usrp通過以太網(wǎng)與主機計算機pc相連接;

所述主機計算機pc中包括labview軟件平臺和niusrp軟件套件,所述niusrp軟件套件在labview中增加了ni-usrp驅(qū)動程序,所述labview軟件平臺中的程序通過ni-usrp驅(qū)動程序與所述usrp進(jìn)行交互;

所述labview軟件平臺中的程序包括頻譜感知程序,所述頻譜感知程序包括usrp頻譜感知模塊。

進(jìn)一步地,所述usrp為niusrp,所述niusrp通過千兆以太網(wǎng)與主機計算機pc相連接。

進(jìn)一步地,所述主機計算機pc中還能夠引用matlabscript以此來實現(xiàn)labview與matlab的聯(lián)調(diào)。

進(jìn)一步地,所述ni-usrp驅(qū)動程序包括八個函數(shù),所述八個函數(shù)分別為

9.niusrp打開rx會話vi,即niusrpopenrxsessionvi;

10.niusrp配置信號vi,即niusrpconfigurevi;

11.niusrp初始化vi,即niusrpinitiatevi;

12.niusrp打開tx會話vi,即niusrpopentxsessionvi;

13.niusrp提取接收數(shù)據(jù)vi,即niusrpfetchrxdatavi;

14.niusrp發(fā)射數(shù)據(jù)vi,即niusrpwritetxdatavi);

15.終止vi,即niusrpabortvi;

16.關(guān)閉vi,即niusrpclosesessionvi;其中1-4中的vi實現(xiàn)配置功能,5-6中的vi實現(xiàn)讀寫功能,7-8中的vi實現(xiàn)結(jié)束功能。

進(jìn)一步地,所述接收無線信號和發(fā)射無線信號模塊通過所述ni-usrp驅(qū)動程序的所述八個函數(shù)來實現(xiàn)接收無線信號和發(fā)射無線信號的過程。

進(jìn)一步地,所述基于usrp的頻譜感知系統(tǒng)的方法,包括:在限定只用一臺usrp的情況下,可以用一根天線作為接收天線接收無線信號,通過頻譜感知程序中的usrp頻譜感知模塊對接收的無線信號進(jìn)行頻譜感知,找到可用頻段后,通過另一根天線在此可用頻段上發(fā)射fm信號,這時終止針對接收天線的能量檢測模塊的能量檢測,利用接收天線解調(diào)發(fā)射天線所發(fā)射的fm信號,而所述usrp頻譜感知模塊包括音頻信號存儲模塊、計算判決門限模塊、能量檢測模塊、發(fā)射fm信號模塊以及解調(diào)fm信號模塊。

進(jìn)一步地,所述音頻信號存儲模塊包括配置音頻輸入的函數(shù)、讀取音頻輸入的函數(shù)、寫入并打開音頻文件的函數(shù)、寫入音頻文件的函數(shù)、音頻輸入清零的函數(shù)、關(guān)閉音頻文件的函數(shù)和音頻信號存儲前面板,所述配置音頻輸入的函數(shù)用于設(shè)置音頻信號的特征,所述音頻信號的特征包括每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式,所述讀取音頻輸入的函數(shù)用于從所述主機計算機pc的聲卡中讀取正在錄制的音頻信號,所述寫入并打開音頻文件的函數(shù)用于指定音頻信號在磁盤上的存儲位置,所述寫入音頻文件的函數(shù)用于把讀取的音頻信號寫入到指定的音頻信號的存儲位置,所述音頻輸入清零的函數(shù)用于停止采集數(shù)據(jù)、清除緩存、任務(wù)返回至默認(rèn)狀態(tài)以及清除與任務(wù)相關(guān)的數(shù)據(jù),所述關(guān)閉音頻文件的函數(shù)用于停止音頻信號的存儲,這樣通過所述音頻信號存儲前面板選擇音頻文件的存儲路徑、輸入每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式,所述設(shè)備id是音頻操作時輸入或輸出的設(shè)備的標(biāo)識,它的默認(rèn)值為0,所述每通道采樣總數(shù)為指定的從樣本緩沖區(qū)中讀取樣本的速率,所述采樣模式為指定vi進(jìn)行有限采樣或連續(xù)采樣,所述聲音格式為設(shè)置音頻操作的采集速率、通道數(shù)量和每個采樣的比特位數(shù);然后點擊所示音頻信號存儲前面板的停止按鈕,把選擇的音頻文件的存儲路徑傳輸?shù)綄懭氩⒋蜷_音頻文件的函數(shù),而輸入的每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式傳輸?shù)脚渲靡纛l輸入的函數(shù),然后所述讀取音頻輸入的函數(shù)按照傳輸?shù)脚渲靡纛l輸入的函數(shù)中的所述每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式用于從所述主機計算機pc的聲卡中讀取正在錄制的音頻信號,接著所述寫入音頻文件的函數(shù)根據(jù)傳輸?shù)綄懭氩⒋蜷_音頻文件的函數(shù)中的選擇的音頻文件的存儲路徑用于把讀取的音頻信號寫入到選擇的音頻文件的存儲路徑,寫入完畢后所述音頻輸入清零的函數(shù)就停止采集數(shù)據(jù)、清除緩存、任務(wù)返回至默認(rèn)狀態(tài)以及清除與任務(wù)相關(guān)的數(shù)據(jù),而所述關(guān)閉音頻文件的函數(shù)停止音頻信號的存儲。

進(jìn)一步地,所述計算判決門限模塊是根據(jù)公式(1)

來推導(dǎo)出門限值,q(.)是正態(tài)分布尾部概率函數(shù),所述計算判決門限模塊包括計算門限設(shè)置信息的子vi、計算判決門限的子vi、matlab節(jié)點的程序和外圍程序,所述計算門限設(shè)置信息的子vi對同一波段的頻譜數(shù)據(jù)進(jìn)行10次取樣,將這10組取樣處理結(jié)果的中位數(shù)作為輸出,所述計算門限設(shè)置信息的子vi的輸入端有三個參數(shù),所述三個參數(shù)分別為待處理的功率密度譜的波形數(shù)據(jù),待檢測數(shù)據(jù)的起始頻率和待檢測數(shù)據(jù)的截止頻率,而所述計算門限設(shè)置信息的子vi的輸出端是一個簇集合,包括兩個參數(shù),該兩個參數(shù)分別是整個波形數(shù)據(jù)的數(shù)組長度的一半n/2和虛警概率pf,把該兩個參數(shù)代入公式(1)就能計算出對應(yīng)于虛警概率的門限值λf,而在外圍程序中,設(shè)置了1個全局變量cishu,還有2個局部變量pnz和門限設(shè)置信息;cishu用于記錄所述計算門限設(shè)置信息的子vi運行的次數(shù);門限設(shè)置信息為前10次取樣計算結(jié)果的中位數(shù),如果取樣次數(shù)不到10次,門限設(shè)置信息為每次取樣后的計算結(jié)果;如果取樣次數(shù)超過10次,門限設(shè)置信息與取樣10次門限設(shè)置信息相同,另外還設(shè)置了局部變量數(shù)組形式的變量pnz,pnz負(fù)責(zé)把每次外圍程序的運行結(jié)果存儲下來,等到對頻譜數(shù)據(jù)取樣10次時,外圍程序計算pnz數(shù)組中數(shù)據(jù)的中位數(shù),所述外圍程序的具體流程如下:

步驟1-1:獲取全局變量cishu的值。在所述外圍程序剛開始時,把cishu設(shè)置成1;

步驟1-2:判斷cishu是否小于11,如果小于11,執(zhí)行步驟1-3;如果不小于11,執(zhí)行步驟1-5;

步驟1-3:把頻譜數(shù)據(jù)段的數(shù)據(jù)送入matlab節(jié)點,利用matlab工具處理數(shù)據(jù),把一次運算的結(jié)果依次存到局部變量數(shù)組pnz中,在matlab節(jié)點里,程序會判斷是否程序已經(jīng)執(zhí)行了10次,如果執(zhí)行了10次,則會把10次數(shù)據(jù)的中位數(shù)作為門限設(shè)置信息的局部變量,并將該局部變量作為程序輸出值;

步驟1-4:全局變量cishu自加1賦給全局變量cishu;

步驟1-5:獲取步驟1-3中的門限設(shè)置信息,并將其作為程序輸出值;

所述matlab節(jié)點的程序計算指定頻譜內(nèi)的噪聲功率和整個波形數(shù)據(jù)的長度的一半,取10次計算結(jié)果的中位數(shù)作為輸出結(jié)果,所述matlab節(jié)點的輸入端參數(shù)及作用如下:

所述matlab節(jié)點的輸入端參數(shù)包括:

起始頻率f1和截止頻率f2,用于確定頻譜范圍;

全局變量cishu,用于記錄所述計算門限設(shè)置信息的子vi運行的次數(shù);

局部變量pnz,用于存儲前10次的計算結(jié)果;

功率譜密度,所述功率譜密度是波形數(shù)據(jù)格式,包括三個參數(shù)f0,df,magnitude,分別表示波形的起始頻率、頻率間隔以及對應(yīng)頻率點的功率密度;

所述matlab節(jié)點的輸出端的參數(shù)及其含義如下:

pn是程序運行10次得到的噪聲功率的中位數(shù);

m是波形數(shù)據(jù)長度的一半;

局部變量pnz用于把計算結(jié)果寫入數(shù)組,以待matlab節(jié)點的程序再次運行時可以從中讀取數(shù)據(jù);

所述matlab節(jié)點的程序的流程如下所示:

步驟2-1:根據(jù)公式(2)計算出起始頻率和截止頻率各自在數(shù)組magnitude中對應(yīng)的下標(biāo)n1和n2,為了確保n1和n2是整數(shù),使用round(n)函數(shù)對公式(2)運算的結(jié)果進(jìn)行四舍五入處理,其中n為n1或者n2,f為f1或者f2:

n=(f-f0)/df(2)

步驟2-2:設(shè)置當(dāng)起始頻率在數(shù)組magnitude中對應(yīng)的下標(biāo)n1為0時,強制把該n1的值調(diào)整為1;

步驟2-3:計算n1到n2的數(shù)據(jù)點的個數(shù)n,作為指定頻率段數(shù)組的長度;計算出輸入數(shù)組magnitude的長度值的一半賦值給m作為輸出;

步驟2-4:把波形幅度信息s中下標(biāo)從n1到n2的元素值,用公式(3)進(jìn)行計算,并把結(jié)果賦給新數(shù)組x,其中數(shù)組x的下標(biāo)從1開始,長度為n:

pn=10^(pn(db)/10)(3)

其中pn(db)表示用分貝db值表示的噪聲功率;

步驟2-5:高斯噪聲信號的能量在頻域內(nèi)的表達(dá)式為公式(4)所示:

利用高斯噪聲信號的功率譜均值p(f)是一個固定值,先求特定頻段的均值p(f)df,然后以此均值p(f)df乘以頻譜圖數(shù)據(jù)的點數(shù),求取整個頻段的噪聲功率p(t);

步驟2-6:把pn賦值給數(shù)組局部變量pnz,數(shù)組的下標(biāo)設(shè)置為程序運行的次數(shù),也就是全局變量cishu;

步驟2-7:根據(jù)全局變量cishu判斷所述matlab節(jié)點的程序是否運行了10次,如果全局變量cishu等于10,執(zhí)行步驟2-8,否則執(zhí)行步驟2-9;

步驟2-8:求取數(shù)組局部變量pnz的中位數(shù),把結(jié)果賦值給數(shù)組局部變量pnz,并把pnz作為輸出,執(zhí)行步驟2-9;

步驟2-9:全局變量cishu自加1,表示程序已經(jīng)完成了一次計算pn,cishu是一個全局變量,在主程序初始運行時,默認(rèn)值為1;

再利用公式(1)計算判決門限t,所述計算判決門限的子vi根據(jù)輸入?yún)?shù)計算出能量檢測的門限值,而其輸入?yún)?shù)包括門限設(shè)置信息和虛警概率,所述門限設(shè)置信息從計算門限設(shè)置信息的子vi中獲取,虛警概率代表把噪聲信號誤當(dāng)作pu信號的概率,可以手動設(shè)置,默認(rèn)情況下為0.1,所述計算判決門限的子vi的輸出結(jié)果為檢測門限值t;而所述計算判決門限的子vi包括matlab節(jié)點的數(shù)據(jù)處理程序,所述matlab節(jié)點的數(shù)據(jù)處理程序的數(shù)據(jù)處理流程如下:

步驟3-1:根據(jù)公式(1)可以計算出虛警概率pf所對應(yīng)的門限值tn,也就是λf,matlab節(jié)點的數(shù)據(jù)處理程序中包括qfuncinv()函數(shù),其是matlab中的封裝函數(shù),能夠?qū)崿F(xiàn)q-1()的功能;

步驟3-2:因為功率譜密度的數(shù)據(jù)的單位是分貝,所以還需要把tn的單位轉(zhuǎn)換成db,轉(zhuǎn)換公式為公式(5)所示,公式(5)中的t(db)表示單位為db的檢測門限值:

t(db)=10lg(tn)(5)

步驟3-3:把結(jié)果t(db)作為判決門限而輸出;

進(jìn)一步地,所述能量檢測模塊是根據(jù)這段頻譜上的值是否存在大于檢測門限值來進(jìn)行判決的,如果這段頻譜上的值大于檢測門限值,就存在pu信號,如果這段頻譜上的值不大于檢測門限值,就不存在pu信號,所述檢測門限值就是所述判決門限;

另外所述能量檢測模塊包括用于頻譜感知的vi,所述用于頻譜感知的vi從輸入的功率密度譜的數(shù)據(jù)中,根據(jù)門限值的大小,來判斷功率密度譜中哪些頻段存在pu信號,還可以根據(jù)檢測結(jié)果,以及fm頻偏的大小,計算fm發(fā)射信號的載波頻率,最后,根據(jù)pu信號范圍中的起始頻率和終止頻率,該用于頻譜感知的vi能夠計算出這一頻段pu信號的功率;

所述用于頻譜感知的vi中包括有用于頻譜感知的matlab節(jié)點,在所述用于頻譜感知的matlab節(jié)點的輸入端包括一個全局變量suf,所述用于頻譜感知的matlab節(jié)點的輸出端包括另一個全局變量suf和全局變量lastpower,其中suf是magnitude數(shù)組的下標(biāo),magnitude數(shù)組也就是數(shù)組s,利用公式(6),可以根據(jù)suf計算出發(fā)射頻率fw,如果是對某一載波信號進(jìn)行分析,則需要在所得結(jié)果的基礎(chǔ)上加上載波頻率fz,如公式(7)所示:

fw=f0+df*suf(6)

fw=fz+f0+df*suf(7)

在所述用于頻譜感知的matlab節(jié)點的輸入端包括pu信號范圍的兩個參數(shù)f1和f2,f1和f2分別代表估算pu信號功率時,計算范圍的起始頻率和截止頻率;

所述用于頻譜感知的matlab節(jié)點的程序分為順序執(zhí)行的三個程序部分,所述三個程序部分包括:

a.頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo);

b.計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf;

c.計算出指定頻段pu信號的功率;

所述頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo)的程序部分可以從頻譜數(shù)組中找到所有可以作為認(rèn)知用戶su的發(fā)射頻率的下標(biāo),所述頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo)的程序部分判斷頻譜數(shù)組中的下標(biāo)是否可以為認(rèn)知用戶su的發(fā)射頻率的下標(biāo)的標(biāo)準(zhǔn)是:發(fā)射的su信號不能對pu信號造成干擾,所述頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo)的程序部分的流程如下:

步驟4-1:計算出數(shù)組s的長度n,和頻偏w對應(yīng)的數(shù)據(jù)點數(shù)n,并定義一個和s長度相同,初值為0的數(shù)組x;

步驟4-2:依次遍歷數(shù)組s中的元素,如果元素值大于閾值t,所述閾值t也就是門限值,那么此元素對應(yīng)下標(biāo)處x的元素值為1,這樣就找到了s中所有大于閾值的點,也就可以認(rèn)為下標(biāo)處x所對應(yīng)的數(shù)組元素值為1處存在pu信號;

步驟4-3:令y等于x,其中y用于記錄所有可以作為發(fā)射頻率的數(shù)據(jù)點位置,令y等于x,就保證了在x(i)等于1處,即存在pu信號的地方,不能作為發(fā)射頻率對應(yīng)的下標(biāo);

步驟4-4:遍歷x中的每一個元素,判斷在x(i)是否與x(i)之前的三個數(shù)的值是否不同,通過這種辦法,找到pu信號的邊界,所述pu信號的邊界包括pu信號上升的邊界和pu信號下降的邊界,如果判斷的結(jié)果不同,執(zhí)行步驟4-5;如果判斷的結(jié)果相同,執(zhí)行步驟4-10,i為整型變量;

步驟4-5:判斷i-n是否小于1,即判斷i-n是否溢出,如果溢出,令k1=1,如果i-n沒有溢出,令k1=i-n,這時k1的作用是用來作為找到可以作為發(fā)射頻率的頻段的起始邊界,同樣地,還包括一個終止邊界,定義為k2,所述k1和k2為整型變量;

步驟4-6:判斷i+n是否大于n,同樣也是判斷i+n是否溢出,如果溢出,令k2=n;如果沒有溢出,令k2=i+n;

步驟4-7:通過步驟4-5和步驟4-6,已經(jīng)找到了授權(quán)用戶pu邊界處左邊和右邊n個點的位置是k1到k2,并保證了k1,k2沒有溢出,在這一步驟中,令y中k1和k2之間的下標(biāo)對應(yīng)的元素值為1;

步驟4-8:如果在遍歷的時候,y數(shù)組元素的下標(biāo)i=1時,即在y數(shù)組的開始處,并且i+n沒有溢出,那么令y數(shù)組的下標(biāo)1到1+n處的元素值為1;

步驟4-9:如果在遍歷的時候,y數(shù)組元素的下標(biāo)i=n時,即在y數(shù)組的終止處,并且i-n沒有溢出,那么令y數(shù)組下標(biāo)n-n到n處的元素值為1;

步驟4-10:結(jié)束;

所述計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf的程序部分的流程如下:

步驟5-1:對所述計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf的程序部分的重要參數(shù)初始化,令i=1和power=0,其中i代表發(fā)射頻率下標(biāo)的初始值,power代表pu信號的初始能量值;

步驟5-2:以while循環(huán)的方式來逐一判斷y(i)是否為1,如果y(i)為1,i進(jìn)行自加運算,否則所述計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf的程序部分跳出while循環(huán),通過這種辦法找到y(tǒng)(i)中第一個其值不為1的下標(biāo)i,已經(jīng)知道該y(i)的值為0,表示下標(biāo)i處對應(yīng)的頻率可以作為發(fā)射頻率,這樣就找到了第一個可以作為su發(fā)射頻率的對應(yīng)下標(biāo)的值;

步驟5-3:判斷suf分別加n和減n后是否在1到n范圍內(nèi),如果在1到n內(nèi),說明suf值為上次發(fā)射頻率對應(yīng)的下標(biāo),就要根據(jù)suf值計算其左邊和右邊的n個數(shù)據(jù)點的能量,把結(jié)果賦值給power,然后執(zhí)行步驟5-4,如果n不在1到n內(nèi),則說明suf不是上次發(fā)射頻率對應(yīng)的下標(biāo),直接執(zhí)行步驟5-4;

步驟5-4:判斷i+10是否小于n,如果是,說明存在合適的發(fā)射頻率的下標(biāo),執(zhí)行步驟5-5;如果不是,說明檢測到的頻率下標(biāo)不能作為發(fā)射頻率的下標(biāo),執(zhí)行步驟5-7;

步驟5-5:判斷是否滿足三個條件,所述三個條件為suf等于1、|suf-i|大于10和power比0.7*lastpower小,這三個條件均滿足執(zhí)行步驟5-6;

步驟5-6:將i賦值給全局變量suf,表示找到了新的發(fā)射頻率的下標(biāo),執(zhí)行步驟5-8;

步驟5-7:將1賦值給全局變量suf,表示沒有找到可以作為發(fā)射頻率下標(biāo)的值,執(zhí)行步驟5-8;

步驟5-8:將計算的power值賦給全局變量lastpower,為下一次判斷su信號是否需要避讓pu信號做準(zhǔn)備;

步驟5-9:結(jié)束;

計算出指定頻段pu信號的功率的流程如下:

步驟6-1:把pu信號的能量初始化為0,并把設(shè)置的檢測頻率范圍的邊界f1和f2利用公式(27)轉(zhuǎn)換成對應(yīng)的下標(biāo)fn1和fn2;

步驟6-2:判斷fn1和fn2是否小于等于0,如果小于等于0,說明fn1或fn2不合法,就把它們的值改為1,否則,直接執(zhí)行步驟6-3;

步驟6-3:判斷fn1是否小于fn2,如果是,執(zhí)行步驟6-4;否則執(zhí)行步驟6-5,在這里,fn1對應(yīng)起始頻率,fn2對應(yīng)截止頻率;

步驟6-4;在數(shù)組s中,從下標(biāo)fn1到fn2找到對應(yīng)元素中大于門限值t的元素,先把這個元素通過公式(8)去掉db單位,其中ps(db)是單位為db的pu信號的功率,然后把轉(zhuǎn)換后的結(jié)果遞加到pu信號的功率ps中,這樣,可以求出f1到f2中存在的pu信號的能量ps;

ps=10^(ps(db)/10)(8)

步驟6-5:結(jié)束。

進(jìn)一步地,所述發(fā)射fm信號模塊中包括用來發(fā)射fm信號的子vi和發(fā)射fm波的前面板,所述發(fā)射fm信號模塊根據(jù)得到的所述認(rèn)知用戶su的發(fā)射頻率、適當(dāng)?shù)膇q速率和頻偏這樣的參數(shù),運行所述用來發(fā)射fm信號的子vi可以利用usrp的發(fā)射端發(fā)射fm信號運行,所述用來發(fā)射fm信號的子vi有三個輸入,所述三個輸入分別為載波頻率、iq速率以及fm頻偏,所述認(rèn)知用戶su的發(fā)射頻率就是fm載波頻率,通過所述發(fā)射fm波的前面板輸入所述用來發(fā)射fm信號的子vi所需的載波頻率、iq速率以及fm頻偏的數(shù)值,通過所述發(fā)射fm波的前面板還能輸入所述niusrp配置信號vi,也就是niusrpconfigure函數(shù),所需的配置參數(shù),通過所述發(fā)射fm波的前面板輸入的配置參數(shù)用于設(shè)置usrp信號的發(fā)射,所述用來發(fā)射fm信號的子vi中包括波形重采樣函數(shù)和fm調(diào)制函數(shù);

在所述發(fā)射fm波的前面板輸入所述用來發(fā)射fm信號的子vi所需的載波頻率、iq速率、fm頻偏的數(shù)值以及所述niusrp配置信號vi所需的配置參數(shù)后,所述用來發(fā)射fm信號的子vi把iq速率傳送到所述波形重采樣函數(shù),所述波形重采樣函數(shù)的輸入端獲取到所述iq速率和所述音頻信號存儲模塊寫入的音頻信號的數(shù)據(jù)信息后,根據(jù)這兩個參數(shù),所述波形重采樣函數(shù)可以控制音頻信號的每個數(shù)據(jù)點每隔時間間隔δt來形成重采樣后的波形數(shù)據(jù)發(fā)送,由此實現(xiàn)音頻信號的比特率與usrp信號發(fā)射的iq速率相匹配的功能;

接著所述fm調(diào)制函數(shù)實現(xiàn)對信號的fm調(diào)制,所述fm調(diào)制函數(shù)有兩個輸入?yún)?shù),一個是重采樣后的波形數(shù)據(jù),一個是fm信號的頻偏,采樣后的波形數(shù)據(jù)從波形重采樣函數(shù)獲得,fm信號的頻偏為常數(shù);

最后實現(xiàn)對信號的fm調(diào)制后,調(diào)制后的信號就通過所述ni-usrp驅(qū)動程序在所述fm載波頻率下發(fā)射出去。

進(jìn)一步地,對usrp接收到的信號進(jìn)行處理,是以while循環(huán)的方式實現(xiàn)usrp能連續(xù)的接收信號的條件下通過所述解調(diào)fm信號模塊對接收到的數(shù)據(jù)進(jìn)行fm處理,該fm處理只需要對niusrpfetchrxdate驅(qū)動程序的輸出結(jié)果進(jìn)行處理,所述解調(diào)fm信號模塊中包括用來播放音頻信號的simplesound子vi、fm解調(diào)音頻信號的前面板和處理信號的函數(shù),所述simplesound子vi根據(jù)變量action值選擇條件語句中的分支,若變量action值為“open”,就用soundoutputconfigure函數(shù)來配置聲卡為播放音頻做準(zhǔn)備;若變量action值為“write”,先用一個normalizewaveform函數(shù)對波形數(shù)據(jù)進(jìn)行歸一化,再把處理后的數(shù)據(jù)用soundoutputwrite函數(shù)送入計算機的聲卡進(jìn)行播放;若變量action值為“close”,就用soundoutputclear函數(shù)清除送給聲卡的緩存數(shù)據(jù),結(jié)束音頻的播放,所述fm解調(diào)音頻信號的前面板的左側(cè)部分為用來錄入niusrp函數(shù)的配置參數(shù)的部分,其中numberofsamples配置參數(shù)代表每次從數(shù)據(jù)接收信道中接收到的樣本數(shù),numberofsamples和iq速率iqrate有以下關(guān)系:

fetchtime為時域中完成一次數(shù)據(jù)采集的時間,resolutionbandwidth為頻域中的頻率分辨率,即每個相鄰數(shù)據(jù)間的頻率間隔;所述fm解調(diào)音頻信號的前面板的右側(cè)部分為用于顯示解調(diào)后的波形信號圖和功率頻譜圖的波形顯示部分,具體處理方式如下;

所述處理信號的函數(shù)對usrp接收到的連續(xù)信號在whileloop中進(jìn)行處理,如果在數(shù)據(jù)信號接收正常的條件下按照fm解調(diào)音頻信號的前面板中錄入的niusrp函數(shù)的配置參數(shù)來持續(xù)接收數(shù)據(jù),把接收的數(shù)據(jù)轉(zhuǎn)換為極坐標(biāo)的形式,把極坐標(biāo)中的相位信號展開,展開后對數(shù)據(jù)進(jìn)行微分,微分后分別把usrp采樣率與聲卡信息的采樣率匹配、把數(shù)據(jù)實數(shù)部分和虛數(shù)部分分開和求信號的功率密度值,然后把數(shù)據(jù)實數(shù)部分和虛數(shù)部分分開和求信號的功率密度值后的數(shù)據(jù)分別進(jìn)行顯示然后結(jié)束該處理信號的函數(shù)的運行,而把usrp采樣率與聲卡信息的采樣率匹配后的數(shù)據(jù)送到聲卡在把用來播放音頻信號的simplesound子vi中的action值變?yōu)椤皐rite”的條件下播放,播放完成后結(jié)束該處理信號的函數(shù)的運行,所述把極坐標(biāo)中的相位展開是通過unwrap函數(shù)實現(xiàn)的。

本發(fā)明的技術(shù)效果為:在限定只用一臺usrp的情況下,可以用一根天線作為接收天線接收無線信號,通過頻譜感知程序中的usrp頻譜感知模塊對接收的無線信號進(jìn)行頻譜感知,找到可用頻段后,通過另一根天線在此可用頻段上發(fā)射fm信號。

附圖說明

圖1為本發(fā)明的usrp頻譜感知模塊的組成示意圖。

圖2為本發(fā)明的音頻信號存儲前面板的示意圖。

圖3為本發(fā)明的外圍程序的流程圖。

圖4為本發(fā)明的matlab節(jié)點的程序流程圖。

圖5為本發(fā)明的所述用于頻譜感知的matlab節(jié)點的程序的一個部分的流程圖。

圖6為本發(fā)明的所述用于頻譜感知的matlab節(jié)點的程序的另一個部分的流程圖。

圖7為本發(fā)明的所述用于頻譜感知的matlab節(jié)點的程序的剩余一個部分的流程圖。

圖8為本發(fā)明的所述發(fā)射fm波的前面板的示意圖。

圖9為本發(fā)明的所述fm解調(diào)音頻信號的while循環(huán)部分的流程圖。

圖10為本發(fā)明的fm解調(diào)音頻信號的前面板的示意圖。

圖11為本發(fā)明的實施例進(jìn)行檢測的基于usrp的頻譜感知程序運行前面板示意圖。

圖12是對圖11中能量密度譜的檢測結(jié)果圖。

圖13是具體實施方式中的解調(diào)結(jié)果圖。

具體實施方式

下面將結(jié)合實施例對本發(fā)明做進(jìn)一步地說明。

如圖1-圖10所示,本實施例的基于usrp的頻譜感知系統(tǒng),包括usrp,所述usrp通過以太網(wǎng)與主機計算機pc相連接;這樣在接收信號時,usrp負(fù)責(zé)把空間的無線信號轉(zhuǎn)換成數(shù)字信號傳輸給主機計算機pc,然后主機計算機pc負(fù)責(zé)處理這些數(shù)字信號,處理這些數(shù)字信號的方式可以為解調(diào)或者解碼;在發(fā)送信號時,主機計算機pc先對數(shù)字信號進(jìn)行處理,處理這些數(shù)字信號的方式可以為編碼或調(diào)制,然后把處理好的數(shù)字信號傳輸給usrp,usrp再把這些數(shù)字信號轉(zhuǎn)換成模擬信號,通過天線發(fā)送到空間中。

所述主機計算機pc中包括labview軟件平臺和niusrp軟件套件,所述niusrp軟件套件在labview中增加了ni-usrp驅(qū)動程序,所述labview軟件平臺中的程序通過ni-usrp驅(qū)動程序與所述usrp進(jìn)行交互;

所述labview軟件平臺中的程序包括頻譜感知程序,所述頻譜感知程序包括usrp頻譜感知模塊。

所述usrp為niusrp,所述niusrp通過千兆以太網(wǎng)與主機計算機pc相連接。

所述主機計算機pc中還能夠引用matlabscript以此來實現(xiàn)labview與matlab的聯(lián)調(diào)。在labview程序設(shè)計中如果數(shù)據(jù)比較復(fù)雜,可以把它交給matlab來處理。

所述ni-usrp驅(qū)動程序包括八個函數(shù),所述八個函數(shù)分別為

17.niusrp打開rx會話vi,即niusrpopenrxsessionvi;

18.niusrp配置信號vi,即niusrpconfigurevi;

19.niusrp初始化vi,即niusrpinitiatevi;

20.niusrp打開tx會話vi,即niusrpopentxsessionvi;

21.niusrp提取接收數(shù)據(jù)vi,即niusrpfetchrxdatavi;

22.niusrp發(fā)射數(shù)據(jù)vi,即niusrpwritetxdatavi);

23.終止vi,即niusrpabortvi;

24.關(guān)閉vi,即niusrpclosesessionvi;其中1-4中的vi實現(xiàn)配置功能,5-6中的vi實現(xiàn)讀寫功能,7-8中的vi實現(xiàn)結(jié)束功能。

所述niusrpopenrxsessionvi用來啟動接收射頻信號。

所述niusrpconfigurevi用來與接收會話rx或發(fā)送會話tx一起使用。通過這個vi,可以手動設(shè)置發(fā)送或接收數(shù)據(jù)的iq率,載頻,增益這樣的信息。但是,并不是所有手動設(shè)置的iq率、頻率以及增益都是有效的。如果輸入的參數(shù)值并非有效,函數(shù)會把輸入值強制轉(zhuǎn)化成一個有效值。

所述niusrpinitiatevi用來在niusrp配置vi之后使用,它可以告訴usrp參數(shù)配置已經(jīng)完成,可以接收數(shù)據(jù)了。

所述niusrpopentxsessionvi用來啟動usrp發(fā)射射頻信號。

所述niusrpfetchrxdatavi用于提取usrp接收的數(shù)據(jù)。其可以把提取的數(shù)據(jù)進(jìn)行解調(diào)或解碼這樣的數(shù)字化處理。

所述niusrpwritetxdatavi用來控制usrp發(fā)送iq數(shù)據(jù)。

所述niusrpabortvi給usrp傳遞停止命令。usrp接收停止命令后,不再接收或者發(fā)送數(shù)據(jù)。

所述niusrpclosesessionvi用來關(guān)閉正在運行的rx或者tx部分,并釋放它們所用的內(nèi)存。niusrpclosesessionvi和niusrpabortvi不同之處在于:如果調(diào)用了前者,如要重新使用usrp,需要重新運行程序;如果調(diào)用了后者,可以在不重新運行程序的情況下,重新使用usrp。

所述接收無線信號和發(fā)射無線信號模塊通過所述ni-usrp驅(qū)動程序的所述八個函數(shù)來實現(xiàn)接收無線信號和發(fā)射無線信號的過程。

所述基于usrp的頻譜感知系統(tǒng)的方法,包括:在限定只用一臺usrp的情況下,可以用一根天線作為接收天線接收無線信號,通過頻譜感知程序中的usrp頻譜感知模塊對接收的無線信號進(jìn)行頻譜感知,找到可用頻段后,通過另一根天線在此可用頻段上發(fā)射fm信號,這時終止針對接收天線的能量檢測模塊的能量檢測,利用接收天線解調(diào)發(fā)射天線所發(fā)射的fm信號,而所述usrp頻譜感知模塊包括音頻信號存儲模塊、計算判決門限模塊、能量檢測模塊、發(fā)射fm信號模塊以及解調(diào)fm信號模塊。所述usrp頻譜感知模塊的組成如圖1所示。

所述usrp頻譜感知模塊的基礎(chǔ)是用來對fm調(diào)制音頻信號進(jìn)行發(fā)射與接收,所以音頻信號存儲模塊首先要解決的問題就是音頻信號的來源問題。labview中有關(guān)于處理音頻信號的函數(shù),下面介紹音頻信號的存儲。需要注意,labview進(jìn)行音頻信號處理時,只能識別.wav格式的文件。

所述音頻信號存儲模塊包括配置音頻輸入的函數(shù)、讀取音頻輸入的函數(shù)、寫入并打開音頻文件的函數(shù)、寫入音頻文件的函數(shù)、音頻輸入清零的函數(shù)、關(guān)閉音頻文件的函數(shù)和如圖4所示的音頻信號存儲前面板,所述配置音頻輸入的函數(shù)用于設(shè)置音頻信號的特征,一般在usrp頻譜感知模塊開頭用到,所述音頻信號的特征包括每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式,所述讀取音頻輸入的函數(shù)用于從所述主機計算機pc的聲卡中讀取正在錄制的音頻信號,所述寫入并打開音頻文件的函數(shù)用于指定音頻信號在磁盤上的存儲位置,所述寫入音頻文件的函數(shù)用于把讀取的音頻信號寫入到指定的音頻信號的存儲位置,所述音頻輸入清零的函數(shù)用于停止采集數(shù)據(jù)、清除緩存、任務(wù)返回至默認(rèn)狀態(tài)以及清除與任務(wù)相關(guān)的數(shù)據(jù),所述關(guān)閉音頻文件的函數(shù)用于停止音頻信號的存儲,表明音頻信號存儲完成;這樣通過所述音頻信號存儲前面板選擇音頻文件的存儲路徑(在圖2中的示例中,選擇的音頻文件的存儲路徑為e:\test.wav)、輸入每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式,所述設(shè)備id是音頻操作時輸入或輸出的設(shè)備的標(biāo)識,它的默認(rèn)值為0,一般不需要更改,所述每通道采樣總數(shù)為指定的從樣本緩沖區(qū)中讀取樣本的速率,所述采樣模式為指定vi進(jìn)行有限采樣或連續(xù)采樣,所述聲音格式為設(shè)置音頻操作的采集速率、通道數(shù)量和每個采樣的比特位數(shù);然后點擊所示音頻信號存儲前面板的停止按鈕,這樣就結(jié)束了錄入并把選擇的音頻文件的存儲路徑傳輸?shù)綄懭氩⒋蜷_音頻文件的函數(shù),而輸入的每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式傳輸?shù)脚渲靡纛l輸入的函數(shù),然后所述讀取音頻輸入的函數(shù)按照傳輸?shù)脚渲靡纛l輸入的函數(shù)中的所述每通道采樣總數(shù)、采樣模式、設(shè)備id以及聲音格式用于從所述主機計算機pc的聲卡中讀取正在錄制的音頻信號,接著所述寫入音頻文件的函數(shù)根據(jù)傳輸?shù)綄懭氩⒋蜷_音頻文件的函數(shù)中的選擇的音頻文件的存儲路徑用于把讀取的音頻信號寫入到選擇的音頻文件的存儲路徑(也就是指定的音頻信號的存儲位置),寫入完畢后所述音頻輸入清零的函數(shù)就停止采集數(shù)據(jù)、清除緩存、任務(wù)返回至默認(rèn)狀態(tài)以及清除與任務(wù)相關(guān)的數(shù)據(jù),而所述關(guān)閉音頻文件的函數(shù)停止音頻信號的存儲。

所述計算判決門限模塊是在運行能量檢測模塊進(jìn)行能量檢測之前,根據(jù)公式(1)

來推導(dǎo)出門限值需要有一段信號的長度、信噪比以及噪聲功率。這些信息可以從參考頻譜上獲取,下面分析如何從一段參考頻譜上得到這些計算判決門限的必要信息,q(.)是正態(tài)分布尾部概率函數(shù),所述計算判決門限模塊包括計算門限設(shè)置信息的子vi、計算判決門限的子vi、matlab節(jié)點的程序和外圍程序,為了保證計算結(jié)果的可靠性,所述計算門限設(shè)置信息的子vi對同一波段的頻譜數(shù)據(jù)進(jìn)行10次取樣,將這10組取樣處理結(jié)果的中位數(shù)作為輸出,所述計算門限設(shè)置信息的子vi的輸入端有三個參數(shù),所述三個參數(shù)分別為待處理的功率密度譜的波形數(shù)據(jù),待檢測數(shù)據(jù)的起始頻率和待檢測數(shù)據(jù)的截止頻率,而所述計算門限設(shè)置信息的子vi的輸出端是一個簇集合,包括兩個參數(shù),該兩個參數(shù)分別是整個波形數(shù)據(jù)的數(shù)組長度的一半n/2和虛警概率pf,把該兩個參數(shù)代入公式(1)就能計算出對應(yīng)于虛警概率的門限值λf,而在外圍程序中,設(shè)置了1個全局變量cishu,還有2個局部變量pnz和門限設(shè)置信息;cishu用于記錄所述計算門限設(shè)置信息的子vi運行的次數(shù);門限設(shè)置信息為前10次取樣計算結(jié)果的中位數(shù),如果取樣次數(shù)不到10次,門限設(shè)置信息為每次取樣后的計算結(jié)果;如果取樣次數(shù)超過10次,門限設(shè)置信息與取樣10次門限設(shè)置信息相同,另外還設(shè)置了局部變量數(shù)組形式的變量pnz,pnz負(fù)責(zé)把每次外圍程序的運行結(jié)果存儲下來,等到對頻譜數(shù)據(jù)取樣10次時,外圍程序計算pnz數(shù)組中數(shù)據(jù)的中位數(shù),如圖3所示,所述外圍程序的具體流程如下:

步驟1-1:獲取全局變量cishu的值。在所述外圍程序剛開始時,把cishu設(shè)置成1;

步驟1-2:判斷cishu是否小于11,如果小于11,執(zhí)行步驟1-3;如果不小于11,執(zhí)行步驟1-5;

步驟1-3:把頻譜數(shù)據(jù)段的數(shù)據(jù)送入matlab節(jié)點,利用matlab工具處理數(shù)據(jù),把一次運算的結(jié)果依次存到局部變量數(shù)組pnz中,在matlab節(jié)點里,程序會判斷是否程序已經(jīng)執(zhí)行了10次,如果執(zhí)行了10次,則會把10次數(shù)據(jù)的中位數(shù)作為門限設(shè)置信息的局部變量,并將該局部變量作為程序輸出值;

步驟1-4:全局變量cishu自加1賦給全局變量cishu;

步驟1-5:獲取步驟1-3中的門限設(shè)置信息,并將其作為程序輸出值;

所述matlab節(jié)點的程序計算指定頻譜內(nèi)的噪聲功率和整個波形數(shù)據(jù)的長度的一半,取10次計算結(jié)果的中位數(shù)作為輸出結(jié)果,所述matlab節(jié)點的輸入端參數(shù)及作用如下:

所述matlab節(jié)點的輸入端參數(shù)包括:

起始頻率f1和截止頻率f2,用于確定頻譜范圍;

全局變量cishu,用于記錄所述計算門限設(shè)置信息的子vi運行的次數(shù);

局部變量pnz,用于存儲前10次的計算結(jié)果;

功率譜密度,所述功率譜密度是波形數(shù)據(jù)格式,包括三個參數(shù)f0,df,magnitude,分別表示波形的起始頻率、頻率間隔以及對應(yīng)頻率點的功率密度;

所述matlab節(jié)點的輸出端的參數(shù)及其含義如下:

pn是程序運行10次得到的噪聲功率的中位數(shù);

m是波形數(shù)據(jù)長度的一半;

局部變量pnz用于把計算結(jié)果寫入數(shù)組,以待matlab節(jié)點的程序再次運行時可以從中讀取數(shù)據(jù);

如圖4所示,所述matlab節(jié)點的程序的流程如下所示:

步驟2-1:根據(jù)公式(2)計算出起始頻率和截止頻率各自在數(shù)組magnitude中對應(yīng)的下標(biāo)n1和n2,為了確保n1和n2是整數(shù),使用round(n)函數(shù)對公式(2)運算的結(jié)果進(jìn)行四舍五入處理,其中n為n1或者n2,f為f1或者f2:

n=(f-f0)/df(2)

步驟2-2:為了防止起始頻率在數(shù)組magnitude中對應(yīng)的下標(biāo)n1為0時,程序出錯,設(shè)置當(dāng)起始頻率在數(shù)組magnitude中對應(yīng)的下標(biāo)n1為0時,強制把該n1的值調(diào)整為1;

步驟2-3:計算n1到n2的數(shù)據(jù)點的個數(shù)n,作為指定頻率段數(shù)組的長度;計算出輸入數(shù)組magnitude的長度值的一半賦值給m作為輸出;

步驟2-4:把波形幅度信息s中下標(biāo)從n1到n2的元素值,用公式(3)進(jìn)行計算,并把結(jié)果賦給新數(shù)組x,其中數(shù)組x的下標(biāo)從1開始,長度為n:

pn=10^(pn(db)/10)(3)

其中pn(db)表示用分貝db值表示的噪聲功率;在計算檢測門限的程序中,要用到噪聲功率pn的實際值,可用公式(3)把分貝值轉(zhuǎn)換為實際值。

步驟2-5:高斯噪聲信號的能量在頻域內(nèi)的表達(dá)式為公式(4)所示:

由于在某個頻段存在pu信號,不可能對整個頻段的功率值疊加來求噪聲功率。利用高斯噪聲信號的功率譜均值p(f)是一個固定值,可以先求特定頻段的均值p(f)df,然后以此均值p(f)df乘以頻譜圖數(shù)據(jù)的點數(shù),求取整個頻段的噪聲功率p(t);

進(jìn)行到步驟2-5,程序已經(jīng)完成了對所需參數(shù)m,pn的計算,但是為了數(shù)據(jù)的準(zhǔn)確性,下面的步驟考慮從多組數(shù)據(jù)中計算中位數(shù)作為輸出。

步驟2-6:把pn賦值給數(shù)組局部變量pnz,數(shù)組的下標(biāo)設(shè)置為程序運行的次數(shù),也就是全局變量cishu;

步驟2-7:根據(jù)全局變量cishu判斷所述matlab節(jié)點的程序是否運行了10次,如果全局變量cishu等于10,執(zhí)行步驟2-8,否則執(zhí)行步驟2-9;

步驟2-8:求取數(shù)組局部變量pnz的中位數(shù),把結(jié)果賦值給數(shù)組局部變量pnz,并把pnz作為輸出,執(zhí)行步驟2-9;

步驟2-9:全局變量cishu自加1,表示程序已經(jīng)完成了一次計算pn,cishu是一個全局變量,在主程序初始運行時,默認(rèn)值為1;這樣保證了程序的輸出參考了多組值,可以減小突然的脈沖對結(jié)果的干擾。

也就是通過門限參數(shù)設(shè)置子vi可以得到公式(1)中等號右邊的兩個未知參數(shù)(pu信號的噪聲功率pn和波形數(shù)據(jù)長度值的一半m),下面再利用公式(1)計算判決門限t,所述計算判決門限的子vi可以根據(jù)輸入?yún)?shù)計算出能量檢測的門限值,而其輸入?yún)?shù)包括門限設(shè)置信息和虛警概率,所述門限設(shè)置信息可以從計算門限設(shè)置信息的子vi中獲取,虛警概率代表把噪聲信號誤當(dāng)作pu信號的概率,可以手動設(shè)置,默認(rèn)情況下為0.1,所述計算判決門限的子vi的輸出結(jié)果為檢測門限值t;具體實現(xiàn)主要通過matlab節(jié)點來進(jìn)行數(shù)據(jù)處理,下面分析matlab節(jié)點的數(shù)據(jù)處理程序。而所述計算判決門限的子vi包括matlab節(jié)點的數(shù)據(jù)處理程序,所述matlab節(jié)點的數(shù)據(jù)處理程序的數(shù)據(jù)處理流程如下:

步驟3-1:根據(jù)公式(1)可以計算出虛警概率pf所對應(yīng)的門限值tn,也就是λf,matlab節(jié)點的數(shù)據(jù)處理程序中包括qfuncinv()函數(shù),其是matlab中的封裝函數(shù),能夠?qū)崿F(xiàn)q-1()的功能;

步驟3-2:因為功率譜密度的數(shù)據(jù)的單位是分貝,所以還需要把tn的單位轉(zhuǎn)換成db,轉(zhuǎn)換公式為公式(5)所示,公式(5)中的t(db)表示單位為db的檢測門限值:

t(db)=10lg(tn)(5)

步驟3-3:把結(jié)果t(db)作為判決門限而輸出;

這樣就完成了計算判決門限的設(shè)計。

進(jìn)一步地,所述能量檢測模塊是根據(jù)這段頻譜上的值是否存在大于檢測門限值來進(jìn)行判決的,如果這段頻譜上的值大于檢測門限值,就存在pu信號,如果這段頻譜上的值不大于檢測門限值,就不存在pu信號,所述檢測門限值就是所述判決門限;因而說,找到一個合適的檢測門限,對檢測結(jié)果有很大的作用。如果門限值太低,就會使虛警概率pf太大,把噪聲信號誤認(rèn)為是pu信號;如果門限值太高,就會使檢測概率pd變小,這樣即使頻譜上存在pu信號,也不一定能判決出來,出現(xiàn)漏檢現(xiàn)象。因此,需要找到一個合適能量檢測門限值λ(在程序中以t或者tn表示門限值λ),以使檢測概率與虛警概率折中。

另外所述能量檢測模塊包括用于頻譜感知的vi,所述用于頻譜感知的vi可以從輸入的功率密度譜的數(shù)據(jù)中,根據(jù)門限值的大小,來判斷功率密度譜中哪些頻段存在pu信號,還可以根據(jù)檢測結(jié)果,以及fm頻偏的大小,計算fm發(fā)射信號的載波頻率,最后,根據(jù)pu信號范圍中的起始頻率和終止頻率,該用于頻譜感知的vi能夠計算出這一頻段pu信號的功率;

所述用于頻譜感知的vi中包括有用于頻譜感知的matlab節(jié)點,在所述用于頻譜感知的matlab節(jié)點的輸入端包括一個全局變量suf,所述用于頻譜感知的matlab節(jié)點的輸出端包括另一個全局變量suf和全局變量lastpower,其中suf是magnitude數(shù)組的下標(biāo),magnitude數(shù)組也就是數(shù)組s,利用公式(6),可以根據(jù)suf計算出發(fā)射頻率fw(換一個角度,也可以把suf理解為發(fā)射頻率fw在magnitude數(shù)組中所對應(yīng)的下標(biāo)),如果是對某一載波信號進(jìn)行分析,則需要在所得結(jié)果的基礎(chǔ)上加上載波頻率fz,如公式(7)所示:

fw=f0+df*suf(6)

fw=fz+f0+df*suf(7)

在所述用于頻譜感知的matlab節(jié)點的輸入端包括pu信號范圍的兩個參數(shù)f1和f2,f1和f2分別代表估算pu信號功率時,計算范圍的起始頻率和截止頻率;

所述用于頻譜感知的matlab節(jié)點的程序分為順序執(zhí)行的三個程序部分,所述三個程序部分包括:

a.頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo);

b.計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf;

c.計算出指定頻段pu信號的功率;

所述頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo)的程序部分可以從頻譜數(shù)組中找到所有可以作為認(rèn)知用戶su的發(fā)射頻率的下標(biāo),所述頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo)的程序部分判斷頻譜數(shù)組中的下標(biāo)是否可以為認(rèn)知用戶su的發(fā)射頻率的下標(biāo)的標(biāo)準(zhǔn)是:發(fā)射的su信號不能對pu信號造成干擾,所述頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo)的程序部分的流程如下:

步驟4-1:計算出數(shù)組s的長度n,和頻偏w對應(yīng)的數(shù)據(jù)點數(shù)n,并定義一個和s長度相同,初值為0的數(shù)組x;

步驟4-2:依次遍歷數(shù)組s中的元素,如果元素值大于閾值t,所述閾值t也就是門限值,那么此元素對應(yīng)下標(biāo)處x的元素值為1,這樣就找到了s中所有大于閾值的點,也就可以認(rèn)為下標(biāo)處x所對應(yīng)的數(shù)組元素值為1處存在pu信號;

步驟4-3:令y等于x,其中y用于記錄所有可以作為發(fā)射頻率的數(shù)據(jù)點位置,令y等于x,就保證了在x(i)等于1處,即存在pu信號的地方,不能作為發(fā)射頻率對應(yīng)的下標(biāo),這樣,就只要考慮在pu邊界左右n各點處和數(shù)組y的邊界附近不可以作為發(fā)射頻率對應(yīng)的下標(biāo)的情況了;

步驟4-4:遍歷x中的每一個元素,判斷在x(i)是否與x(i)之前的三個數(shù)的值是否不同,通過這種辦法,找到pu信號的邊界,所述pu信號的邊界包括pu信號上升的邊界和pu信號下降的邊界,如果判斷的結(jié)果不同,執(zhí)行步驟4-5;如果判斷的結(jié)果相同,執(zhí)行步驟4-10,i為整型變量;

步驟4-5:判斷i-n是否小于1,即判斷i-n是否溢出,如果溢出,令k1=1,如果i-n沒有溢出,令k1=i-n,這時k1的作用是用來作為找到可以作為發(fā)射頻率的頻段的起始邊界,同樣地,還包括一個終止邊界,定義為k2,所述k1和k2為整型變量,k2在后面的步驟會出現(xiàn);

步驟4-6:判斷i+n是否大于n,同樣也是判斷i+n是否溢出,如果溢出,令k2=n;如果沒有溢出,令k2=i+n;

步驟4-7:通過步驟4-5和步驟4-6,已經(jīng)找到了授權(quán)用戶pu邊界處左邊和右邊n個點的位置是k1到k2,并保證了k1,k2沒有溢出,在這一步驟中,令y中k1和k2之間的下標(biāo)對應(yīng)的元素值為1;保證邊界左右n個點的下標(biāo)不能作為發(fā)射頻率的下標(biāo)。

步驟4-8:如果在遍歷的時候,y數(shù)組元素的下標(biāo)i=1時,即在y數(shù)組的開始處,并且i+n沒有溢出,那么令y數(shù)組的下標(biāo)1到1+n處的元素值為1;

步驟4-9:如果在遍歷的時候,y數(shù)組元素的下標(biāo)i=n時,即在y數(shù)組的終止處,并且i-n沒有溢出,那么令y數(shù)組下標(biāo)n-n到n處的元素值為1;這樣也就保證了在數(shù)組y的端點處不能作為發(fā)射頻率的下標(biāo)。經(jīng)過對y的處理后,剩余的y(i)=0的下標(biāo),可以作為發(fā)射頻率的下標(biāo)。

步驟4-10:結(jié)束;

在通過所述頻譜數(shù)組中找到所有可以作為su發(fā)射頻率的下標(biāo)的程序部分找到了所有認(rèn)知用戶su的發(fā)射頻率的下標(biāo)后,就需要從中選擇一個認(rèn)知用戶su的發(fā)射頻率的下標(biāo)。這時,有兩點需要考慮:一點是認(rèn)知用戶su的發(fā)射頻率的改變不能太頻繁,如果pu信號只是在邊界處頻繁抖動,不需要改變認(rèn)知用戶su的發(fā)射頻率對應(yīng)的下標(biāo);另一點是,假設(shè)已經(jīng)找到了認(rèn)知用戶su的發(fā)射頻率對應(yīng)的下標(biāo),并且認(rèn)知用戶su已經(jīng)在根據(jù)這個下標(biāo)轉(zhuǎn)換后的頻率處發(fā)射信號,除非在認(rèn)知用戶su的發(fā)射頻率的頻段內(nèi)出現(xiàn)pu信號,否則也不能改變su發(fā)射頻率對應(yīng)的下標(biāo)。

所述計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf的程序部分的流程如下:

步驟5-1:對所述計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf的程序部分的重要參數(shù)初始化,令i=1和power=0,為下面計算發(fā)射頻率對應(yīng)的下標(biāo)以及pu信號的能量做準(zhǔn)備,其中i代表發(fā)射頻率下標(biāo)的初始值,power代表pu信號的初始能量值;

步驟5-2:以while循環(huán)的方式來逐一判斷y(i)是否為1,如果y(i)為1,i進(jìn)行自加運算,否則所述計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf的程序部分跳出while循環(huán),通過這種辦法找到y(tǒng)(i)中第一個其值不為1的下標(biāo)i,已經(jīng)知道該y(i)的值為0,表示下標(biāo)i處對應(yīng)的頻率可以作為發(fā)射頻率,這樣就找到了第一個可以作為su發(fā)射頻率的對應(yīng)下標(biāo)的值;

步驟5-3:通過步驟5-2,雖然找到了su發(fā)射頻率的對應(yīng)下標(biāo)值,但這個值不一定要轉(zhuǎn)換成發(fā)射頻率。在這一步驟,判斷suf分別加n和減n后是否在1到n范圍內(nèi),如果在1到n內(nèi),說明suf值為上次發(fā)射頻率對應(yīng)的下標(biāo),就要根據(jù)suf值計算其左邊和右邊的n個數(shù)據(jù)點的能量,把結(jié)果賦值給power,然后執(zhí)行步驟5-4,如果n不在1到n內(nèi),則說明suf不是上次發(fā)射頻率對應(yīng)的下標(biāo),直接執(zhí)行步驟5-4;

步驟5-4:判斷i+10是否小于n,如果是,說明存在合適的發(fā)射頻率的下標(biāo),執(zhí)行步驟5-5;如果不是,說明檢測到的頻率下標(biāo)不能作為發(fā)射頻率的下標(biāo),執(zhí)行步驟5-7;

步驟5-5:判斷是否滿足三個條件,所述三個條件為suf等于1、|suf-i|大于10和power比0.7*lastpower小,這三個條件均滿足執(zhí)行步驟5-6;其中,第一個條件suf等于1的意義是上一次沒有找到合適的發(fā)射頻率或者是上次沒有發(fā)射信號;第二個條件|suf-i|大于10的意義是i值的變化相比suf而言,超過了10單位,這樣是為了給檢測信號10個單位的抖動空間,如果上次信號的邊界下標(biāo)變化不超過10個單位就不需要變化;第三個條件power比0.7*lastpower的意義是,當(dāng)一個su信號已經(jīng)發(fā)射,如果此時在su信號的頻帶上pu發(fā)射信號,su信號就需要避讓,實際上是根據(jù)su信號所在頻段內(nèi)的信號能量是否突增來判斷授權(quán)用戶是否開始占用此頻段。

步驟5-6:將i賦值給全局變量suf,表示找到了新的發(fā)射頻率的下標(biāo),執(zhí)行步驟5-8;

步驟5-7:將1賦值給全局變量suf,表示沒有找到可以作為發(fā)射頻率下標(biāo)的值,執(zhí)行步驟5-8;

步驟5-8:將計算的power值賦給全局變量lastpower,為下一次判斷su信號是否需要避讓pu信號做準(zhǔn)備;

步驟5-9:結(jié)束;

至此,計算出su信號的發(fā)射頻率對應(yīng)的下標(biāo)suf的程序部分找到了發(fā)射頻率對應(yīng)的下標(biāo)。

計算出指定頻段pu信號的功率的流程如下:

步驟6-1:把pu信號的能量初始化為0,并把設(shè)置的檢測頻率范圍的邊界f1和f2利用公式(27)轉(zhuǎn)換成對應(yīng)的下標(biāo)fn1和fn2;

步驟6-2:判斷fn1和fn2是否小于等于0,如果小于等于0,說明fn1或fn2不合法,就把它們的值改為1,否則,直接執(zhí)行步驟6-3;

步驟6-3:判斷fn1是否小于fn2,如果是,執(zhí)行步驟6-4;否則執(zhí)行步驟6-5,在這里,fn1對應(yīng)起始頻率,fn2對應(yīng)截止頻率,必須fn1大于fn2才有意義;

步驟6-4;在數(shù)組s中,從下標(biāo)fn1到fn2找到對應(yīng)元素中大于門限值t的元素,先把這個元素通過公式(8)去掉db單位,其中ps(db)是單位為db的pu信號的功率,然后把轉(zhuǎn)換后的結(jié)果遞加到pu信號的功率ps中,這樣,可以求出f1到f2中存在的pu信號的能量ps;

ps=10^(ps(db)/10)(8)

步驟6-5:結(jié)束。

到這里,程序完成了對pu信號功率的估算,結(jié)合前面對噪聲功率pn的估算,利用公式(9)可以計算出pu信號的信噪比snr。

snr=10lg(ps/pn)(9)

所述發(fā)射fm信號模塊中包括用來發(fā)射fm信號的子vi和發(fā)射fm波的前面板,所述發(fā)射fm信號模塊根據(jù)得到的所述認(rèn)知用戶su的發(fā)射頻率、適當(dāng)?shù)膇q速率和頻偏這樣的參數(shù),運行所述用來發(fā)射fm信號的子vi可以利用usrp的發(fā)射端發(fā)射fm信號運行,所述用來發(fā)射fm信號的子vi有三個輸入,所述三個輸入分別為載波頻率、iq速率以及fm頻偏,所述認(rèn)知用戶su的發(fā)射頻率就是fm載波頻率,通過所述發(fā)射fm波的前面板輸入所述用來發(fā)射fm信號的子vi所需的載波頻率、iq速率以及fm頻偏的數(shù)值,通過所述發(fā)射fm波的前面板還能輸入所述niusrp配置信號vi,也就是niusrpconfigure函數(shù),所需的配置參數(shù),通過所述發(fā)射fm波的前面板輸入的配置參數(shù)用于設(shè)置usrp信號的發(fā)射,所述用來發(fā)射fm信號的子vi中包括波形重采樣函數(shù)和fm調(diào)制函數(shù);

在所述發(fā)射fm波的前面板輸入所述用來發(fā)射fm信號的子vi所需的載波頻率、iq速率、fm頻偏的數(shù)值以及所述niusrp配置信號vi所需的配置參數(shù)后,所述用來發(fā)射fm信號的子vi把iq速率傳送到所述波形重采樣函數(shù),所述波形重采樣函數(shù)的輸入端獲取到所述iq速率和所述音頻信號存儲模塊寫入的音頻信號的數(shù)據(jù)信息后,根據(jù)這兩個參數(shù),所述波形重采樣函數(shù)可以控制音頻信號的每個數(shù)據(jù)點每隔時間間隔δt來形成重采樣后的波形數(shù)據(jù)發(fā)送,由此實現(xiàn)音頻信號的比特率與usrp信號發(fā)射的iq速率相匹配的功能;

接著所述fm調(diào)制函數(shù)是labview軟件里rfcommunications軟件包里ip封裝的一個函數(shù),可以實現(xiàn)對信號的fm調(diào)制,所述fm調(diào)制函數(shù)有兩個輸入?yún)?shù),一個是重采樣后的波形數(shù)據(jù),一個是fm信號的頻偏,采樣后的波形數(shù)據(jù)從波形重采樣函數(shù)獲得,fm信號的頻偏為常數(shù);

最后實現(xiàn)對信號的fm調(diào)制后,調(diào)制后的信號就通過所述ni-usrp驅(qū)動程序在所述fm載波頻率下發(fā)射出去。

如果要考慮對連續(xù)的fm信號解調(diào),必須保證usrp能連續(xù)地接收信號,這個問題可以通過while循環(huán)來解決。對usrp接收到的信號進(jìn)行處理,是以while循環(huán)的方式實現(xiàn)usrp能連續(xù)的接收信號的條件下通過所述解調(diào)fm信號模塊對接收到的數(shù)據(jù)進(jìn)行fm處理,該fm處理只需要對niusrpfetchrxdate驅(qū)動程序的輸出結(jié)果進(jìn)行處理,所述解調(diào)fm信號模塊中包括用來播放音頻信號的simplesound子vi、fm解調(diào)音頻信號的前面板和處理信號的函數(shù),所述simplesound子vi根據(jù)變量action值選擇條件語句中的分支,若變量action值為“open”,就用soundoutputconfigure函數(shù)來配置聲卡為播放音頻做準(zhǔn)備;若變量action值為“write”,先用一個normalizewaveform函數(shù)對波形數(shù)據(jù)進(jìn)行歸一化,再把處理后的數(shù)據(jù)用soundoutputwrite函數(shù)送入計算機的聲卡進(jìn)行播放;若變量action值為“close”,就用soundoutputclear函數(shù)清除送給聲卡的緩存數(shù)據(jù),結(jié)束音頻的播放,所述fm解調(diào)音頻信號的前面板的左側(cè)部分為用來錄入niusrp函數(shù)的配置參數(shù)的部分,其中numberofsamples配置參數(shù)代表每次從數(shù)據(jù)接收信道中接收到的樣本數(shù),numberofsamples和iq速率iqrate有以下關(guān)系:

fetchtime為時域中完成一次數(shù)據(jù)采集的時間,resolutionbandwidth為頻域中的頻率分辨率,即每個相鄰數(shù)據(jù)間的頻率間隔;所述fm解調(diào)音頻信號的前面板的右側(cè)部分為用于顯示解調(diào)后的波形信號圖和功率頻譜圖的波形顯示部分,具體處理方式如下;

所述處理信號的函數(shù)對usrp接收到的連續(xù)信號在whileloop中進(jìn)行處理,如果在數(shù)據(jù)信號接收正常的條件下按照fm解調(diào)音頻信號的前面板中錄入的niusrp函數(shù)的配置參數(shù)來持續(xù)接收數(shù)據(jù),把接收的數(shù)據(jù)轉(zhuǎn)換為極坐標(biāo)的形式,把極坐標(biāo)中的相位信號展開,展開后對數(shù)據(jù)進(jìn)行微分,微分后分別把usrp采樣率與聲卡信息的采樣率匹配、把數(shù)據(jù)實數(shù)部分和虛數(shù)部分分開和求信號的功率密度值,然后把數(shù)據(jù)實數(shù)部分和虛數(shù)部分分開和求信號的功率密度值后的數(shù)據(jù)分別進(jìn)行顯示然后結(jié)束該處理信號的函數(shù)的運行,而把usrp采樣率與聲卡信息的采樣率匹配后的數(shù)據(jù)送到聲卡在把用來播放音頻信號的simplesound子vi中的action值變?yōu)椤皐rite”的條件下播放,播放完成后結(jié)束該處理信號的函數(shù)的運行,所述把極坐標(biāo)中的相位展開是通過unwrap函數(shù)實現(xiàn)的,所述unwrap函數(shù)可以把不連續(xù)的相位信號轉(zhuǎn)換成連續(xù)的相位信號,避免相位的突變。

接下來分析該方法和系統(tǒng)接收到的無線信號的效果,先對所述各前面板的參數(shù)進(jìn)行設(shè)置,為后面分析程序運行效果做準(zhǔn)備。然后根據(jù)程序運行結(jié)果來驗證獲取的門限值的合理性,以及得出pu信號受噪聲干擾較小的特點。之后,程序分析了能量檢測的結(jié)果,得到程序能夠從頻譜中較好地找出pu信號的結(jié)論。最后,對從usrp接收天線接收的信號進(jìn)行解調(diào),根據(jù)解調(diào)效果來驗證su信號發(fā)射頻率的設(shè)置是否得當(dāng),具體過程如下:

在使用usrp之前,需要把主機計算機pc的ip地址設(shè)置成192.168.10.1。在默認(rèn)情況下,usrp的ip為192.168.10.2,這個地址只能與192.168.10.1配對。如果把主機計算機pc的ip地址設(shè)置成其它的地址,即使usrp與主機計算機pc之間通過網(wǎng)線連接,usrp也無法實現(xiàn)與主機計算機pc的通信。如圖11所示是基于usrp對無線信號進(jìn)行頻譜感知的程序前面板。設(shè)定iqrate為4m,carrierfrequency為91m。在能量檢測譜中,橫坐標(biāo)的范圍是-2m到2m,代表檢測頻譜帶寬為4m。在橫坐標(biāo)值為0處,代表載波頻率91mhz的能量??梢哉J(rèn)為檢測頻譜的范圍是89mhz~93mhz。在前面板左下方的參數(shù)設(shè)置區(qū)中,可以根據(jù)usrp接收信號的“能量密度圖”手動設(shè)置噪聲檢測頻率范圍,和pu信號檢測頻率范圍。程序可以通過這兩個范圍值估算出接收信號的噪聲功率和pu功率。在圖11所示的例子中,設(shè)置的檢測噪聲信號的頻率范圍是-1.9mhz~-1.6mhz(沒有考慮載波頻率是91mhz,實際上的檢測頻率范圍是(91-1.9=89.1)mhz~(91-1.6=89.4)mhz),估算得到的噪聲功率為3.43×10-11。將此噪聲功率以及檢測數(shù)據(jù)點的個數(shù)(在程序中通過length函數(shù)求得)帶入公式(3-11),就可以求出檢測門限值為-104.562db。通過觀察,可以看出此門限值能好地區(qū)分出“能量密度譜”中pu信號和噪聲信號。所以,程序得到的門限值比較合理。

設(shè)置pu信號的檢測頻率范圍為-1.2mhz~-0.5mhz。在此范圍內(nèi),如果檢測到的信號能量值大于門限值視為pu信號的功率值,把功率值的平均數(shù)作為輸出結(jié)果“pu信號功率”。圖11中得到的pu信號功率為1.968×10-7。然后根據(jù)噪聲功率,和pu信號功率,利用對應(yīng)公式,可以求出接收信號的信噪比為37.58db。這個信噪比的值比較大,說明usrp接收到的pu信號受噪聲的影響較小。根據(jù)計算得到的門限值,可以對頻譜進(jìn)行能量檢測,圖12是對圖11中能量密度譜的檢測結(jié)果。在圖12中,幅度值為1表示在該頻率處為pu信號,幅度值為0表示在該頻率處為噪聲信號。圖12顯示在89.5mhz,90mhz,91mhz處存在pu信號。在圖11的能量密度譜的在這3個頻率處附近,信號的功率明顯比其它頻率處的功率大,可以認(rèn)為這3個頻率附近的信號為pu信號。所以,程序較為準(zhǔn)確地完成了頻譜感知,找到了給定頻譜中pu信號的位置。

另外根據(jù)檢測結(jié)果,程序計算的“發(fā)射頻率”為89mhz。點擊圖11中的“是否發(fā)射信號”按鍵,程序以89mhz為載波頻率,發(fā)射一個fm波。然后設(shè)置接收fm信號的程序的載波頻率為89mhz,對su信號進(jìn)行接收,可以得到圖13的解調(diào)結(jié)果。fm解調(diào)程序可以對載波頻率處的fm信號進(jìn)行解調(diào),解調(diào)后的音頻信號頻譜圖在圖13中右下方。解調(diào)程序可以播放解調(diào)后的音頻信號,播放音頻的時候雖然有一些噪聲,但還是能夠粗略地恢復(fù)未調(diào)制的音頻信號。這說明,發(fā)射后的su信號與感知頻譜上的pu信號沒有共占某一段頻譜。所以,程序找到了合適的su發(fā)射頻率,并且其頻譜也沒有與pu信號的頻譜產(chǎn)生混疊。

本技術(shù)方案的技術(shù)效果為:在限定只用一臺usrp的情況下,可以用一根天線作為接收天線接收無線信號,通過頻譜感知程序中的usrp頻譜感知模塊對接收的無線信號進(jìn)行頻譜感知,找到可用頻段后,通過另一根天線在此可用頻段上發(fā)射fm信號。

以上以實施例的方式對本發(fā)明作了描述,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,本公開不限于以上描述的實施例,在不偏離本發(fā)明的范圍的情況下,可以做出各種變化、改變和替換。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
大埔区| 辽宁省| 郧西县| 牙克石市| 海门市| 潼南县| 台安县| 白银市| 全南县| 二手房| 沂源县| 巴塘县| 银川市| 韶山市| 冕宁县| 临城县| 四子王旗| 建阳市| 定远县| 讷河市| 平邑县| 三门县| 神池县| 博客| 崇州市| 阳曲县| 莫力| 岳西县| 巴楚县| 芜湖县| 当涂县| 乐陵市| 聊城市| 池州市| 汶上县| 安福县| 辽宁省| 三原县| 洛宁县| 镇沅| 泌阳县|