目录
随着无线通信技术的飞速发展,频谱资源变得越来越珍贵。为了提高频谱的利用率,认知无线电(Cognitive Radio, CR)技术应运而生。CR的核心思想是允许未授权的无线设备在不影响授权用户通信的前提下,动态地接入和使用空闲的频谱资源。实现这一目标的关键技术之一就是频谱感知(Spectrum Sensing)。
认知无线电让无线通信设备能够主动寻找可用信道,将未被使用的频谱资源进行再次利用,具体可通过认知无线电的智能化特性实现频率、时间和空间域不同频谱环境的信号感知,来充分满足用户使用需求。认知无线电本身存在学习能力,能够对通信环境中的变化做出分析和判断,然后能寻找到“频谱空穴”。
当一个节点需要给网络中的其他节点传送信息时,如果没有到达目标节点的路由,则必须先以多播的形式发出RREQ(路由请求)报文。RREQ报文中记录着发起节点和目标节点的网络层地址,邻近节点收到RREQ,首先判断目标节点是否为自己。如果是,则向发起节点发送RREP(路由回应);如果不是,则首先在路由表中查找是否有到达目标节点的路由,如果有,则向源节点单播RREP,否则继续转发RREQ进行查找。
按需路由选择(ODR)。ODR使用Cisco发现协议(CDP)来在分支(末节)路由器和中央路由器之间传输网络信息。与动态路由选择协议相比,ODR提供IP路由选择信息的开销非常小;而与静态路由相比,ODR的手工配置量更少。
在大规模的路由网络中,例如在一个由省-地市-县-营业点组成的四级远程互连的路由网络中,如何维护大量的营业点路由器的直连子网路由和配置营业点的静态路由成为一个巨大的负担.此案例中说明了如何利用cisco On-Demand Routing (ODR)技术来优化这种大规模路由网络的一个设想.
1. 频谱感知的定义与分类
频谱感知是指无线设备检测、分析和识别无线电环境中的频谱使用情况,以找到可用的频谱空洞(即未被授权用户使用的频段)。根据感知的方法,可以分为以下几类:
- 发射机检测:通过检测授权用户的发射信号来判断频段是否被占用。
- 接收机检测:通过分析接收到的信号来判断频段的使用情况。
- 合作感知:多个CR用户合作进行频谱感知,提高检测的准确性和可靠性。
2. 合作频谱感知
为了提高频谱感知的准确性和可靠性,可以采用合作频谱感知。多个CR用户将各自的感知结果发送到融合中心,融合中心根据一定的准则(如投票、加权等)做出最终的决策。合作感知可以有效克服单用户感知中的隐藏终端和暴露终端问题。
3. 频谱感知的挑战与发展趋势
尽管频谱感知技术已经取得了显著的进展,但仍然面临一些挑战,如低SNR环境下的检测性能、动态变化的无线电环境、多用户合作中的同步问题等。未来的发展趋势包括深度学习在频谱感知中的应用、跨层优化以提高整体系统性能、以及利用5G/6G新技术进行频谱感知等。
4. 仿真测试
%不同协作认知节点不同信噪比能量检测ROC比较,一个恶意节点(大信噪比)
clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default')
n =2048; %采样点数
snrdbl=[-12,-14,-16]; %每个用户的信噪比
pf = 0:0.02:1; %虚警概率
k=length(pf);
usenum=length(snrdbl); %协作用户数
pfand=pf.^usenum; %m个节点
pfor=1-(1-pf).^usenum;
pdeach=ones(usenum);
for i = 1:k
pdand(i)=1;
pdtemp(i)=1;
for kk = 1:usenum %不同协作认知节点不同信噪比下的仿真
snrdb=snrdbl(kk); %kk个节点的信噪比
snr = power(10,snrdb/10); %db转化十进制
lamda = 1+sqrt(2)*erfcinv(2*pf(i))./sqrt(n);
pdeach(kk)= 0.5*erfc(((lamda-(snr+1))*sqrt(n))./(sqrt(2)*(snr+1)));
pdand(i)=pdand(i)*pdeach(kk);
pdtemp(i)=pdtemp(i)*(1-pdeach(kk));
end
pdor(i)=1-pdtemp(i);
end
figure;
plot(pfor,pdor,'-.^b',pfand,pdand,'-.ob');
hold on;
grid;
xlabel('pf');
ylabel('pd');
%加入一个大信噪比的恶意节点
snrdbl=[-12,-14,-16,-25]; %每个用户的信噪比
pf = 0:0.02:1; %虚警概率
k=length(pf);
usenum=length(snrdbl); %协作用户数
pfand=pf.^usenum; %m个节点
pfor=1-(1-pf).^usenum;
pdeach=ones(usenum);
for i = 1:k
pdand(i)=1;
pdtemp(i)=1;
for kk = 1:usenum %不同协作认知节点不同信噪比下的仿真
snrdb=snrdbl(kk); %kk个节点的信噪比
snr = power(10,snrdb/10); %db转化十进制
lamda = 1+sqrt(2)*erfcinv(2*pf(i))./sqrt(n);
pdeach(kk)= 0.5*erfc(((lamda-(snr+1))*sqrt(n))./(sqrt(2)*(snr+1)));
pdand(i)=pdand(i)*pdeach(kk);
pdtemp(i)=pdtemp(i)*(1-pdeach(kk));
end
pdor(i)=1-pdtemp(i);
end
plot(pfor,pdor,'-.or',pfand,pdand,'-.*r');
%title(['不同协作认知节点不同信噪比能量检测ROC比较,SNR=',num2str(snrdbl)]);
title(['The compare of ROC curves whith different SNR,SNR=',num2str(snrdbl)]);
legend('OR rule 3 nodes Cooperate','AND rule 3 nodes Cooperate ','OR rule add one bad node ','AND rule add one bad node','Location','SouthEast');
%legend('OR rule 3节点协作检测','AND rule 3节点协作检测 ','OR rule 下加入性能较差用户 ','AND rule 下加入性能较差用户','Location','SouthEast');