[发明专利]一种基于USRP的虚拟仿真系统及其方法有效
申请号: | 201710603106.4 | 申请日: | 2017-07-22 |
公开(公告)号: | CN107437970B | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 崔翠梅;杨德智;金石;汪一鸣;蔡纪鹤;裴彤 | 申请(专利权)人: | 常州工学院 |
主分类号: | H04B17/391 | 分类号: | H04B17/391;H04B17/382;H04B17/327 |
代理公司: | 常州西创专利代理事务所(普通合伙) 32472 | 代理人: | 武政 |
地址: | 213000 江苏省常州市新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 usrp 虚拟 仿真 系统 及其 方法 | ||
1.一种基于USRP的虚拟仿真系统的方法,其特征在于,包括USRP,所述USRP通过以太网与主机计算机PC相连接;
所述主机计算机PC中包括LabVIEW软件平台和NI USRP软件套件,所述NI USRP软件套件在LabVIEW中增加了NI-USRP驱动程序,所述LabVIEW软件平台中的程序通过NI-USRP驱动程序与所述USRP进行交互;
所述LabVIEW软件平台中的程序包括虚拟仿真程序;
所述虚拟仿真程序包括虚拟仿真认知网络模块;
所述的基于USRP的虚拟仿真系统的方法,包括:通过LabVIEW发射虚拟信号的办法来实现SU信号对PU信号的避让效果,这种虚拟仿真的方法不再使用USRP收发信号,所述虚拟仿真程序中的虚拟仿真认知网络模块所处理的对象是一段可以控制的虚拟频谱,在虚拟频谱中,所述虚拟仿真程序中的虚拟仿真认知网络模块可以使由混合单频与波形信号函数产生PU信号随机出现,可以通过LabVIEW前面板,显示同时包含PU信号和SU信号的频谱图,检测SU对PU的避让效果,所述虚拟仿真认知网络模块中包括计算判决门限模块、能量检测模块以及发射虚拟信号模块;
所述计算判决门限模块是根据公式(1)
来推导出门限值,Q(.)是正态分布尾部概率函数,所述计算判决门限模块包括计算门限设置信息的子VI、计算判决门限的子VI、MATLAB节点的程序和外围程序,所述计算门限设置信息的子VI对同一波段的频谱数据进行10次取样,将这10组取样处理结果的中位数作为输出,所述计算门限设置信息的子VI的输入端有三个参数,所述三个参数分别为待处理的功率密度谱的波形数据,待检测数据的起始频率和待检测数据的截止频率,而所述计算门限设置信息的子VI的输出端是一个簇集合,包括两个参数,该两个参数分别是整个波形数据的数组长度的一半N/2和信号的噪声功率σ2,把该两个参数代入公式(1)就能计算出对应于虚警概率的门限值λf,而在外围程序中,设置了1个全局变量cishu,还有2个局部变量Pnz和门限设置信息;cishu用于记录所述计算门限设置信息的子VI运行的次数;门限设置信息为前10次取样计算结果的中位数,如果取样次数不到10次,门限设置信息为每次取样后的计算结果;如果取样次数超过10次,门限设置信息与取样10次门限设置信息相同,另外还设置了局部变量数组形式的变量Pnz,Pnz负责把每次外围程序的运行结果存储下来,等到对频谱数据取样10次时,外围程序计算Pnz数组中数据的中位数,所述外围程序的具体流程如下:
步骤1-1:获取全局变量cishu的值,在所述外围程序刚开始时,把cishu设置成1;
步骤1-2:判断cishu是否小于11,如果小于11,执行步骤1-3;如果不小于11,执行步骤1-5;
步骤1-3:把频谱数据段的数据送入MATLAB节点,利用MATLAB工具处理数据,把一次运算的结果依次存到局部变量数组Pnz中,在MATLAB节点里,程序会判断是否程序已经执行了10次,如果执行了10次,则会把10次数据的中位数作为门限设置信息的局部变量,并将该局部变量作为程序输出值;
步骤1-4:全局变量cishu自加1赋给全局变量cishu;
步骤1-5:获取步骤1-3中的门限设置信息,并将其作为程序输出值;
所述MATLAB节点的程序计算指定频谱内的噪声功率和整个波形数据的长度的一半,取10次计算结果的中位数作为输出结果,所述MATLAB节点的输入端参数及作用如下:
所述MATLAB节点的输入端参数包括:
起始频率f1和截止频率f2,用于确定频谱范围;
全局变量cishu,用于记录所述计算门限设置信息的子VI运行的次数;
局部变量Pnz,用于存储前10次的计算结果;
功率谱密度,所述功率谱密度是波形数据格式,包括三个参数f0,df,magnitude,分别表示波形的起始频率、频率间隔以及对应频率点的功率密度;
所述MATLAB节点的输出端的参数及其含义如下:
Pn是程序运行10次得到的噪声功率的中位数;
M是波形数据长度的一半;
局部变量Pnz用于把计算结果写入数组,以待MATLAB节点的程序再次运行时可以从中读取数据;
所述MATLAB节点的程序的流程如下所示:
步骤2-1:根据公式(2)计算出起始频率和截止频率各自在数组magnitude中对应的下标n1和n2,为了确保n1和n2是整数,使用round(n)函数对公式(2)运算的结果进行四舍五入处理,其中n为n1或者n2,f为f1或者f2:
n=(f-f0)/df (2)
步骤2-2:设置当起始频率在数组magnitude中对应的下标n1为0时,强制把该n1的值调整为1;
步骤2-3:计算n1到n2的数据点的个数N,作为指定频率段数组的长度;计算出输入数组magnitude的长度值的一半赋值给M作为输出;
步骤2-4:把波形幅度信息S中下标从n1到n2的元素值,用公式(3)进行计算,并把结果赋给新数组x,其中数组x的下标从1开始,长度为N:
Pn=10^(Pn(dB)/10) (3)
其中Pn(dB)表示用分贝dB值表示的噪声功率;
步骤2-5:高斯噪声信号的能量在频域内的表达式为公式(4)所示:
利用高斯噪声信号的功率谱均值P(f)是一个固定值,先求特定频段的均值P(f)df,然后以此均值P(f)df乘以频谱图数据的点数,求取整个频段的噪声功率P(t);
步骤2-6:把Pn赋值给数组局部变量Pnz,数组的下标设置为程序运行的次数,也就是全局变量cishu;
步骤2-7:根据全局变量cishu判断所述MATLAB节点的程序是否运行了10次,如果全局变量cishu等于10,执行步骤2-8,否则执行步骤2-9;
步骤2-8:求取数组局部变量Pnz的中位数,把结果赋值给数组局部变量Pnz,并把Pnz作为输出,执行步骤2-9;
步骤2-9:全局变量cishu自加1,表示程序已经完成了一次计算Pn,cishu是一个全局变量,在主程序初始运行时,默认值为1;再利用公式(1)计算判决门限λf,所述计算判决门限的子VI根据输入参数计算出能量检测的门限值,而其输入参数包括门限设置信息和虚警概率,所述门限设置信息从计算门限设置信息的子VI中获取,虚警概率代表把噪声信号误当作PU信号的概率,可以手动设置,默认情况下为0.1,所述计算判决门限的子VI的输出结果为检测门限值T;而所述计算判决门限的子VI包括MATLAB节点的数据处理程序,所述MATLAB节点的数据处理程序的数据处理流程如下:
步骤3-1:根据公式(1)可以计算出虚警概率pf所对应的门限值Tn,也就是λf,MATLAB节点的数据处理程序中包括qfuncinv()函数,其是MATLAB中的封装函数,能够实现Q-1()的功能;
步骤3-2:因为功率谱密度的数据的单位是分贝,所以还需要把Tn的单位转换成dB,转换公式为公式(5)所示,公式(5)中的T(dB)表示单位为dB的检测门限值:
T(dB)=10lg(Tn) (5)
步骤3-3:把结果T(dB)作为检测门限而输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常州工学院,未经常州工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710603106.4/1.html,转载请声明来源钻瓜专利网。