function [ fit_best_finalvalue,fit_best_co_num, sensing_time] = RAND_all(n, m, P_on, pfa, n_co_max, snr_matrix,R_ch,Ts_max,Ts_grade_max,fs,T,Pd_req,Ps,Pr,Pc)
% 随机进行并行合作频谱感知,感知时长也是随机选取,只有中间有一个n_co_max校验,如果超出的话,多余的部分随机置0
% parallel spectrum sensing using Hungarian algorithm in paper wangzaili
% Detailed explanation goes here
% n 系统中的SU数,即数据库统计的SU数,数列
% m 子信道数
% pfa 各信道虚警概率
% P_on 信道空闲概率
% Ts 感知时间
% Tr 传输时间
% data 信道,能量损耗影响因子
% Qfa 系统虚警概率要求
% alph 数据库开销影响因子
% pdoh =1 考虑统计数据库开销; =0 不考虑统计数据库开销
% conspdreq=1; 考虑各信道检测概率需求,不无限制迭代
% match_method=2;
fit_best_finalvalue=zeros(1,length(n));
fit_best_co_num=zeros(1,length(n));
sensing_time=zeros(1,length(n));
for i=1:length(n)
% 开始遗传算法
lc=n(i)+1; % 确定染色体位数,及认知用户数nnnnnnnnnnnn+感知时长等级
kc=1; % 种群数目
k_rand=1; %+(n(i)-m)/m; % 确定在每次变异和随机产生时,信道不感知的比例,
% GA_Y 函数包装
generation_intal=[round(rand(kc,lc-1)*m*k_rand) round(rand(kc,1)*Ts_grade_max)]; % 初始化种群
for ii=1:kc
for jj=1:lc
if generation_intal(ii,jj)>m
generation_intal(ii,jj)=0;
end;
end;
end;
generation=generation_intal;
% n_co_max检查:对个体进行最大合作数n_co_max检查,如果哪个子信道的合作用户数大于n_co_max,则随机置多余的为0
generation = n_co_max_test( kc,lc,m,generation,n_co_max );
allo_vec=generation(1:n(i));
Ts_grade=generation(lc);
Ts=Ts_grade*(1/Ts_grade_max)*Ts_max;
profit = fit_compute_single( allo_vec,snr_matrix(:,1:n(i)),pfa,R_ch,P_on,Ts,m ,n(i),fs,T,Pd_req,Ps,Pr,Pc); %计算有效吞吐量
%{
% 计算系统收益和开销
for ii=1:m % 信道
over1=0;
for jj=1:n(i) % 节点
if X(ii,jj)==1
over1=over1+R_cr(jj)*Ts; % 开销
end;
end;
G_h(ii)=R_ch(ii)*Tr*P_on(ii)*(1-Pf_h(ii))-R_ch(ii)*(1-P_on(ii))*(1-Pd_h(ii))*Tr*data; % 增益
O_h(ii)=over1;
P_h(ii)=G_h(ii)-O_h(ii);
end;
% 对于m数小于n时,就不能把所有信道增益相加获得总增益了,而是要把没有分配节点的信道去除
if m>n(i)
for ii=1:m
num_su_ch=sum(X,2);
if num_su_ch(ii)==0 P_h(ii)=0; end;
end;
end;
Gain_final(i)=sum(G_h);
Overhead_final(i)=sum(O_h);
if pdoh==0 profit_final(i)=sum(P_h);end;
if pdoh==1 compute_ov=exp(n(i)/alph);profit_final(i)=sum(P_h)/compute_ov;end;
Pd_final_min(i)=min(Pd_h); %sum(Pd_h)/m;
Pd_final_ave(i)=sum(Pd_h)/m;
Pf_final(i)=sum(Pf_h)/m;
num_co(i)=sum(node_asgn);
%}
fit_best_finalvalue(i)= profit; % 最终最适应个体适应度
sensing_time(i)=Ts; % 最佳感知时间等级
fit_best_co_num(i)=length(find(allo_vec~=0)); % 最终最适应个体合作感知用户数
end
肝博士杨明博大夫
- 粉丝: 84
- 资源: 3972
最新资源
- 手套缺陷检测,可识别大缺陷,中等缺陷,小缺陷,使用yolo v8格式标注
- 手套缺陷检测,可识别大缺陷,中等缺陷,小缺陷,使用yolo v5格式标注
- 手套缺陷检测,可识别大缺陷,中等缺陷,小缺陷,使用yolo v9格式标注
- 手套缺陷检测,可识别大缺陷,中等缺陷,小缺陷,使用yolo v11格式标注
- KingSCADA初级培训教材3.51之第六章报警与事件
- 基于Matlab与FPGA的混频sin信号的FFT验证 分别在Matlab和FPGA开发环境上实现相同的FFT功能设计 Matlab平台开发,使用自带的fft函数与相关操作函数,绘制出混频sin信号
- 从零起步用SPSS解码医学统计.zip
- ANPC同步机(VSG)并网(参数自适应控制),基于ANPC型三电平逆变器的参数自适应控制,采用电压电流双闭环控制,中点电位平衡控制,且实现VSG并网 1.VSG参数自适应 2.VSG并网 3.提供
- TIB-js-studiocomm-6.18.1-macosx-x86-64旧版本,官网已无法找到,稀缺资源
- Pytorch实现基于BERT+ BiLSTM+CRF的命名实体识别项目(源码+数据集+运行说明)
- Serial Studio 3.0.6 Windows
- QQScreenShot.zip
- 圆周磨削抛光设备sw18全套技术资料100%好用.zip
- DCDC电路,模拟ic设计,集成电路设计,tsmc0.18um工艺,正向设计,PWM+PFM混合调制 有比较详细的设计仿真报告,重载PWM,轻载PFM 输入电压1.6-1.8V,输出电压0.4-1
- 基于C++和QT的ATM机三级项目
- 成熟的VCU应用层模型 包含接口定义 可编译 实车量产 成熟的VCU应用层模型 应用层建模学习,可通过成熟的模型, 借鉴逻辑处理和算法. 除整体模型外,每个功能有单独的模型, 包含接口定义,支持编译
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈