认知无线电中基于中继协助的频谱切换算法matlab仿真
目录
基于中继协助的频谱切换机制,核心是在认知无线电网络中,由中继节点(RN)协助次用户(SU)完成频谱感知、目标信道筛选、链路切换与传输恢复,解决SU本地感知盲区、切换时延高、链路易中断的问题,显著提升频谱利用率与通信可靠性。
1.本算法理论知识
在认知无线电网络(Cognitive Radio Network,简称CRN)中引入协作通信可以提高系统的分集增益。CRN中,协作通信的模式主要分为两类:PU与CR用户间的协作通信以及CR用户间的协作通信。PU与CR用户之间的协作通信可以提高系统的空间分集增益;而CR用户之间的协作通信不仅可以提高系统的空间分集增益,而且还可以提高系统的频谱分集增益。
中继协作机制在认知无线电网络中的使用是当PU出现CR用户需要进行频谱切换且CR用户没有可用的切换信道时才会被使用,这样就严格限制了协作中继通信在CR网络中的使用场景。本课题拟在CR用户需要进行频谱切换时由CR可感知到的信道和由中继节点提供的可用信道共同作为备选信道来进行CR用户的频谱切换分析,其中包括各CR节点频谱信息的共享,中继节点的选择,中继节点的频谱预留,切换的流程和系统性能的分析。所使用到的网络模型如图1所示,

2.1 网络拓扑模型
设网络中有M个PU、N个SU、K个RN,总授权频段数为L,每个频段带宽为B,噪声功率为N0。
PU信道状态:采用两状态马尔可夫模型,空闲概率Pidle,占用概率Poccupy=1−Pidle,状态转移矩阵为:

信道增益:SU与PU、SU与RN、RN与目标信道的信道增益分别为hSU−PU、hSU−RN、hRN−target,服从瑞利衰落,均值为Ω。
信干噪比(SINR):SU当前信道SINR为:

其中PSU为SU发射功率,PPU,m为第m个PU发射功率。
切换触发阈值:设SINR阈值为γth,当γSU<γth或检测到PU信号强度超过门限Pth时,触发切换。
2.2 中继协助模型
中继节点的选择:认知用户在选择频谱资源的时候,主要按照如下两个原则进行选择,第一,该部分频谱资源没有被次用户占用;第二,认知用户用该部分频谱资源后对次用户的干扰尽可能的小。被授权的认知用户当发现自己的干扰范围之内有次用户要占用正在使用的频谱资源的时候,其会释放占用的频谱。
中继协作系统中频谱的切换流程:首先对于每个待接入网络的节点,对其进行频谱检测,当存在可用频谱直接到达通信目标点,则直接采用第三章所介绍的基于频谱空洞预留机制的频谱切换算法进行频谱切换。如果没有可用频谱达到通信目标点,此时,对于非中继切换方式,那么就会发生服务重点,而对于中继节点系统,虽然没有可用信道直接到达目标节点,但还有其他可用信道到达邻居节点,则可以维持连接,那么开始检测是否存在一个中继点,这个中继点可以到达通信目标点。这个算法的基本流程图如图2所示。

其中,基于频谱空洞预留的频谱切换算法,其在一定程度还存在曲线,特别是当频谱资源稀缺的情况下,或者网络中次用户数目增加的时候哦,系统的服务质量将显著下降。而拍卖竞争模型就是一种分配稀缺资源的有效模型,在经济学领域已经得到广泛的应用,在网格资源的分配中也起到一定作用。基站基于竞价拍卖的频谱可以用作预留信道,将有效解决频谱资源稀缺情况下的切换操作。
3.核心代码
for nn = 1:M
nn
TIME = 1000;
NUM = 0;
%中继信道lemda
lemda2 = 1/1000 + (1/100-1/1000)*rand(N,1);%1/1000 ~ 1/100的均匀分布
hi = zeros(nn,1);
for t = 1:TIME
%Step 1,算法执行的开始,对参加竞价的次用户数等进行初始化。
hi = rand(nn,1);
hicr = rand(nn,1);
IIs = [];
for i = 1:nn
fail = 1;
%首先判断是否存在中继用户
%授权用户出现的概率
P = rand;
P2 = rand;
while fail == 1
if P2 < 0.01%有认知用户
%Step 2,计算出次用户 i 对频谱 j 的估价vi
for j =1:N
Vi1(j) = 1 - lemda(j)/(log2(1+hi(i)*p/No));
Vi2(j) = 1 - lemda2(j)/(log2(1+hicr(i)*p/No));
end
%Step 3,计算出每个次用户最终提交的竞标价格bi
for mm1 =1:N
bi1(j) = Vi1(j) - randn(1);
bi2(j) = Vi2(j) - randn(1);
end
%Step 4,比较每个次用户的估价价格和自己提交的竞价价格的大小,如果估价
%价格小于竞标价格,说明频谱 j 不适合次用户 i,返回到 Step 2,否则
%直接执行下一步。
for mm1 =1:N
Vi_bi1(j) = Vi1(j) - bi1(j);
Vi_bi2(j) = Vi2(j) - bi2(j);
end
Vi_bi = [Vi_bi1,Vi_bi2];
else%无认知用户
%Step 2,计算出次用户 i 对频谱 j 的估价vi
for j =1:N
Vi(j) = 1 - lemda(j)/(log2(1+hi(i)*p/No));
end
%Step 3,计算出每个次用户最终提交的竞标价格bi
for mm1 =1:N
bi(j) = Vi(j) - randn(1);
end
%Step 4,比较每个次用户的估价价格和自己提交的竞价价格的大小,如果估价
%价格小于竞标价格,说明频谱 j 不适合次用户 i,返回到 Step 2,否则
%直接执行下一步。
for mm1 =1:N
Vi_bi(j) = Vi(j) - bi(j);
end
end
%去掉小于0的
Ind1 = find(Vi_bi>0);
if isempty(Ind1)==1
fail = 1;
else%没有中断,则选择%Step 5,找出最大的竞标价格及对应的次用户 i。
[VV,II] = max(Vi_bi);
fail = 0;
end
end
IIs=[IIs,II];
end
%如果IIs前后不同,则说明成功,进行一次切换
for iis = 1:length(IIs)-1
if IIs(iis+1)~=IIs(iis)
NUM = NUM+1;
end
end
end
PRO(nn) = NUM/TIME;
end
figure;
plot(1:M,PRO,'b','Linewidth',2);
save result1.mat M PRO
A01-84
4.仿真结论


AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)