1.软件版本

MATLAB2013a
2.本算法理论知识

基于概率切换和最小化概率切换的频谱切换算法,由于过多的考虑了资源的合理利用,使得次用户的不切换概率并大于等于的情况,从而导致对应的次用户的服务质量显著下降,考虑到这个因素,文献[40]提出了一种基于频谱空洞预留机制的频谱分配算法,从而最大程度上保证这些次用户的服务质量。

根据文献所述,当出现授权用户的时候,次用户必须暂停当前所占的行道,并切换到其他的频谱空洞上继续完成未完成的服务。然后,过多的频谱切换会带来很多切换时延,这样就很难保证次用户的服务质量,特别对于一些实时性较强的服务,影响更大。文献[40] 提出的频谱空洞的预留方案使不能保证服务质量的次用户直接使用预留的频谱空洞,不再进行频谱感知、频谱请求等过程,从而最大程度上降低频谱切换时延。

根据文献所述,当空洞上进行通信时实际的不切换概率,如果 大于 ,说明用于通信的频谱空洞可以满足次用户的服务质量要求,不需要再给该次用户预留任何频谱空洞;否则,如果 ,说明次用户在实际获得的频谱空洞上进行通信时达不到自己的服务质量要求,很可能会出现中断服务等情况,需要为之预留频谱空洞,使它切换到预留频谱空洞上继续完成通信。由此可见,为次用户预留频谱空洞的条件为:

我们假设预留的频谱空洞时间至少可以刚好满足服务质量的要求,从而有:

进一步可以得到:

更进一步可以得到:

最后可以得到:

式子为预留因子,当预留因子为0的时候,说明不需要再为次用户的通信预留其他的频谱空洞,当预留因子为1的时候,表示在服务时间内都要在预留频谱空洞上进行通信。通过预留频谱空洞算法,就可以保证次用户通信过程中的服务质量要求,弥补频谱空洞匹配算法的不足,使次用户顺利完成自己的服务。

3.核心代码

clc;
clear;
close all;
warning off;
RandStream.setDefaultStream(RandStream('mt19937ar','seed',1));
addpath 'My_Function\' %自定义函数路径
addpath 'My_Figure\'   %仿真结果图保存路径
addpath 'My_Result\'   %仿真结果及仿真中间结果数值保存路径
%参数化
lemda   = 0.2;
M       = 50;%用户数量
%信道数目
N       = 10;
lemda   = 1/2000 + (1/200-1/2000)*rand(N,1);%1/2000 ~ 1/200的均匀分布Treqi   = zeros(M,1);
PQi     = zeros(M,1);
PQi2    = zeros(M,1);
PHij    = zeros(M,N);
PHij2   = zeros(M,1);
betai   = zeros(M,1);for nn = 1:MnnTIME    = 100;NUM     = 0;%中继信道lemdalemda2  =  1/1000 + (1/100-1/1000)*rand(N,1);%1/1000 ~ 1/100的均匀分布for t = 1:TIMEfor i = 1:nn%步骤1:对次用户业务服务质量所要求的PQi等进行初始化,即最小的不发生切换的概率PQi(i)  = rand(1,1)/2;%步骤2:次用户SUi的目标切换概率1-PQiPQi2(i) = 1 - PQi(i);%步骤3:计算次用户在不同频谱空洞上通信的实际切换概率PhijTreqi(i) = 10 + (300-10)*rand(1,1);for j = 1:NPHij(i,j) = 1-exp(-lemda(j)*Treqi(i));end%步骤4:根据Hi,找到切换概率和目标切换概率的差值最小的频谱空洞jfor j = 1:NHs1(j) = abs(PQi(i) - exp(-lemda(j)*Treqi(i)));end%考虑中继协作,CR用户和中继进行竞争,获得最佳的II值。for j = 1:NPHij(i,j) = 1-exp(-lemda2(j)*Treqi(i));endfor j = 1:NHs2(j) = abs(PQi(i) - exp(-lemda2(j)*Treqi(i)));endHss = [Hs1,Hs2];[VV,II] = min(Hss);%步骤5:把频谱控制j分配给对应的次用户ilemdas   = [lemda;lemda2];H(i)     = Hss(II);%将最佳的空洞j分配给次用户i%步骤6:计算次用户SUi在频谱空洞j上通信的不切换概率PHij2(i) =1-exp(-lemdas(II)*Treqi(i));%步骤7:比较1-Phij和PQi的大小,1-Phij > PQi,beta=0,则不需要预留频谱空洞,1-Phij <=%PQi,beta不等于0,则需要频谱预留if PHij2(i) > PQibetai(i) = 0;elsebetai(i) = 1+log(PQi(i))/lemdas(II)/Treqi(i); end%步骤8:计算对应的切换次数if betai(i) ~=0;NUM = NUM + 1;end    endendPRO(nn) = NUM/TIME;end
hold on
plot(1:M,PRO,'k','Linewidth',2);
PRO1 = PRO;Treqi   = zeros(M,1);
PQi     = zeros(M,1);
PQi2    = zeros(M,1);
PHij    = zeros(M,N);
PHij2   = zeros(M,1);
betai   = zeros(M,1);for nn = 1:MnnTIME    = 100;NUM     = 0;for t = 1:TIMEfor i = 1:nn%步骤1:对次用户业务服务质量所要求的PQi等进行初始化,即最小的不发生切换的概率PQi(i)  = rand(1,1)/2;%步骤2:次用户SUi的目标切换概率1-PQiPQi2(i) = 1 - PQi(i);%步骤3:计算次用户在不同频谱空洞上通信的实际切换概率PhijTreqi(i) = 10 + (300-10)*rand(1,1);for j = 1:NPHij(i,j) = 1-exp(-lemda(j)*Treqi(i));end%步骤4:根据Hi,找到切换概率和目标切换概率的差值最小的频谱空洞jfor j = 1:NHs(j) = abs(PQi(i) - exp(-lemda(j)*Treqi(i)));end%步骤5:把频谱控制j分配给对应的次用户i[VV,II] = min(Hs);H(i) = Hs(II);%将最佳的空洞j分配给次用户i%下面的步骤引入频谱预留的思想,进行切换的改进%步骤6:计算次用户SUi在频谱空洞j上通信的不切换概率1-PhijPHij2(i) = 1-(1-exp(-lemda(II)*Treqi(i)));%步骤7:比较1-Phij和PQi的大小,1-Phij > PQi,beta=0,则不需要预留频谱空洞,1-Phij <=%PQi,beta不等于0,则需要频谱预留if PHij2(i) > PQibetai(i) = 0;elsebetai(i) = 1+log(PQi(i))/lemda(II)/Treqi(i); end%步骤8:计算对应的切换次数if betai(i) ~=0;NUM = NUM + 1;end    endendPRO(nn) = NUM/TIME;end
hold on
plot(1:M,PRO,'b','Linewidth',2);
PRO2 = PRO;Treqi   = zeros(M,1);
PQi     = zeros(M,1);
PQi2    = zeros(M,1);
PHij    = zeros(M,N);
PHij2   = zeros(M,1);
betai   = zeros(M,1);
for nn = 1:MnnTIME    = 100;NUM     = 0;for t = 1:TIMEfor i = 1:nn%步骤1:对次用户业务服务质量所要求的PQi等进行初始化,即最小的不发生切换的概率PQi(i)  = rand(1,1)/2;%步骤2:次用户SUi的目标切换概率1-PQiPQi2(i) = 1 - PQi(i);%步骤3:计算次用户在不同频谱空洞上通信的实际切换概率PhijTreqi(i) = 10 + (300-10)*rand(1,1);for j = 1:NPHij(i,j) = 1-exp(-lemda(j)*Treqi(i));end%步骤4:根据Hi,找到切换概率和目标切换概率的差值最小的频谱空洞jfor j = 1:NHs(j) = abs(PQi(i) - exp(-lemda(j)*Treqi(i)));end%步骤5:把频谱控制j分配给对应的次用户i[VV,II] = min(Hs);H(i) = Hs(II);%将最佳的空洞j分配给次用户i%步骤6:计算次用户SUi在频谱空洞j上通信的切换概率PhijPHij2(i) = 1-(1-exp(-lemda(II)*Treqi(i)));%步骤6:计算对应的切换次数NUM = NUM+PHij2(i);   endendPRO(nn) = NUM/TIME;
end
hold on
plot(1:M,PRO,'r','Linewidth',2);
PRO3 = PRO;
xlabel('次用户个数');
ylabel('切换次数');
legend('中继协作基于最小概率的频谱空洞预留算法','基于最小概率的频谱空洞预留算法','基于最小概率的频谱空洞匹配算法');save result1.mat M PRO1 PRO2 PRO3

4.操作步骤与仿真结论

5.参考文献

[01]Wei Dang Lu, Student Member, IEEE, Yi Gong, Senior Member, IEEE, See Ho Ting, Member, IEEE, Xuan Li Wu, Member, IEEE, and Nai Tong Zhang. Cooperative OFDM Relaying for Opportunistic Spectrum Sharing: Protocol Design and Resource Allocation. IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, VOL. 11, NO. 6, JUNE 2012

[02]Li-Chun Wang, Fellow, IEEE, Chung-Wei Wang, Student Member, IEEE, and Chung-Ju Chang, Fellow, IEEE. Modeling and Analysis for Spectrum Handoffs in Cognitive Radio Networks IEEE TRANSACTIONS ON MOBILE COMPUTING, VOL. 11, NO. 9, SEPTEMBER 2012

[03]Y. Shi and Y. T. Hou. Optimal power control for multi-hop software defined radio networks[R]. IEEE INFOCOM 2007.2007:1694-1702.

A01-84

6.完整源码获得方式

方式1:微信或者QQ联系博主

方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真相关推荐

  1. SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型(将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab)验证算法可行性和实时性

    SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型(将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab)验证算法可行性和实时性. 对于数字信号处理很有用. ID: ...

  2. 电机调速设计并用matlab仿真,终稿毕业论文设计_基于PWM控制的直流电动机调速系统设计及MATLAB仿真.doc最终版(备份存档)...

    <毕业论文_基于PWM控制的直流电动机调速系统设计及MATLAB仿真.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)毕业论文设计_基于PWM控制的直流电动机调速系统设计及M ...

  3. 【自适应盲均衡9】基于判决反馈的多径衰落信道的盲均衡与MATLAB仿真(CMA-DFE)

    关注公号[逆向通信猿]更精彩!!! 关于基于常模准则的盲均衡(即CMA)的基础知识,首先可参考本人博客 [自适应盲均衡2]多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真 引言--判决 ...

  4. 基于GWO灰狼优化的生产线工件工序调度优化matlab仿真,仿真输出优化收敛曲线和工序调度甘特图

    目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件 1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 灰狼优化算法(GWO ...

  5. 基于PSO粒子群优化算法的TSP问题最短路径求解matlab仿真

    up目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 在PSO中,群中的每个粒子表示为向量.在投资组合优化的背景下,这是一个权重向量,表示每个资产的分配资本.矢量转换为多维搜索空间中的位置 ...

  6. 基于Flocking算法的多智能体编队matlab仿真

    UP目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 Flocking(有时也称为是warming或herding),拥有4项简单的规则,把它们组合在一起时,为自治主体群给出一个类似于鸟群 ...

  7. m基于遗传优化的不同等级电动汽车充电站的选址方案matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 作为电动汽车的普及与推广,必要的基础配套服务设施.充电站的建设位置和选址规划对整体行业的发展起着重要 ...

  8. 基于GRNN网络和小波变换的ECG信号睡眠监测matlab仿真

    目录 一.理论基础 二.核心程序 三.仿真测试结果 作者ID :fpga和matlab CSDN主页:https://blog.csdn.net/ccsss22?type=blog 擅长技术: 1.无 ...

  9. m基于RBF神经网络和BP神经网络的信道估计误码率matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 在无线通信系统中,从发射端发射的信号,经过直射.反射.散射等路径到达接收端.在ofdm系统中,为了获 ...

  10. 通过Otsu算法实现条形码的角度矫正matlab仿真

    目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 3.1Otsu算法 3.2 条形码角度矫正 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下: ​ ...

最新文章

  1. bdphp在线订购是真的么_《瑞评》330i会是宝马粉最后的希望么?
  2. LeetCode 1235. 规划兼职工作(动态规划+二分查找)
  3. 动态规划 —— 背包问题 P01 —— 0-1背包
  4. C++ 链表 leetcode习题总结
  5. [leetcode]36. Valid Sudoku c语言
  6. CVE-2020-11945 Squid未授权整数溢出分析
  7. [置顶]常用存储过程集锦
  8. java循环队列_Java版-数据结构-队列(循环队列)
  9. DevOps-2-从凤凰项目谈起
  10. Java基础——动态数组
  11. 侙程序错误怎么找c语言,log4j 施用 - 汉字转换成拼音的种(转) - 遏止EditText弹出输入法_169IT.COM...
  12. 怎么给计算机D盘分区,C盘分区太大怎么调整分区的大小?
  13. QQ坦白说使用Fiddler抓包获取json
  14. 康沣生物通过港交所聆讯:持续亏损、现金流紧张,李克俭为董事长
  15. android平板能玩吃鸡吗,刺激战场用什么平板好 平板吃鸡配置推荐
  16. NLP微信小程序聊天机器人
  17. 智能路由器市场份额增长态势不减 线下渠道或将成为下一个爆发点
  18. 手机软件android_sync,SMBSync2安卓手机SMB同步软件使用方法
  19. web界面文本框内部加按钮
  20. 服务器配置篇 ━━ 中文域名(.公益)解析、党政机关挂标及如何正确运行在服务器

热门文章

  1. Spring框架简介
  2. C#中动态加载和卸载DLL
  3. UA MATH564 概率论 QE练习题2
  4. UA MATH566 统计理论4 贝叶斯统计基础1
  5. UA MATH571B 试验设计I 试验设计简介
  6. UA MATH575B 数值分析下II 牛顿算法
  7. Mathematica 画图操作中的一些小惊喜
  8. Eclipse新建web项目和“javax.servlet.http.HttpServlet“ was not found on the Java Build Path错误
  9. 什么是软件测试架构师?
  10. 核心编程9 文件和文件的输入输出 (os模块)