% clear;
% clc;
% close all;
% clear global;
D_users=(500:500:2000);
trunking_rate=0.3;%集群用户比例是0.3,可配置
loop_num=10;%设置循环次数
right_trunking_tag=zeros(1,length(D_users)); %收集统计每小区中正确集群数
right_normal_tag=zeros(1,length(D_users)); %收集统计每小区中正确普通数
wrong_total_tag=zeros(1,length(D_users)); %收集统计每小区中总的错误判断数
p_right_trunking=zeros(1,length(D_users));%trunking集群的正确概率
p_right_normal=zeros(1,length(D_users));%normal普通的正确概率
p_wrong_total=zeros(1,length(D_users)); %收集统计每小区中总的错误概率
for usernum=1:length(D_users)
user_num=D_users(usernum);
% for k=1:loop_num 可以考虑添加循环次数
practice_tag=zeros(1,user_num); %实际标签全为0
Dvalue=zeros(1,user_num);%全0差值矩阵
p_right_trunking_percell=0;%本小区中trunking集群的正确检测率
p_right_normal_percell=0;%本小区中normal普通的正确检测率
thoery_trunking_num=0;%统计理论集群数目
thoery_normal_num=0;%统计理论普通数目
right_trunking_num=0;%统计判断正确集群数目
right_normal_num=0;%统计判断正确普通数目
wrong_TtoN_num=0;%统计把集群trunking错判成普通normal
wrong_NtoT_num=0;%统计把普通normal错判成集群trunking
%给实际标签赋值,集群为0,普通为1
for i=1:user_num
if(i<=D_users(usernum)*trunking_rate)
practice_tag(i)=0;
else
practice_tag(i)=1;
end
end
%随机产生标签
thoery_tag=rand(1,user_num);
% thoery_tag=geornd(0.3,user_num);
% %计算随机选择与实际的差值
% for j=1:user_num
% Dvalue(j)=thoery_tag(j)-practice_tag(j);
% end
%假设随机数在(0,0.3]识别为集群用户,(0.3,1)识别为普通用户
for ii=1:user_num
if(thoery_tag(i)<=0.3)
thoery_truking_num=thoery_trunking_num+1;
else
thoery_normal_num=thoery_normal_num+1;
end
end
%检测正确判断的个数
for iii=1:user_num
if(thoery_tag(i)<=trunking_rate&&practice_tag(iii)==0)
right_trunking_num=right_trunking_num+1;
elseif(thoery_tag(i)>trunking_rate&&practice_tag(iii)==1)
right_normal_num=right_normal_num+1;
elseif(thoery_tag(i)<=trunking_rate&&practice_tag(iii)==1)
wrong_NtoT_num=wrong_NtoT_num+1;
elseif((thoery_tag(i)>trunking_rate)&&practice_tag(iii)==0)
wrong_NtoT_num=wrong_NtoT_num+1;
end
end
% for iii=1:user_num
% if(0<Dvalue(iii)<=0.3)
% right_trunking_num=right_trunking_num+1;
% elseif(-0.7<Dvalue(iii)<0)
% right_normal_num=right_normal_num+1;
% elseif(0.3<Dvalue(iii)<1)
% wrong_TtoN_num=wrong_TtoN_num+1;
% elseif(-1<Dvalue(iii)<=-0.7)
% wrong_NtoT_num=wrong_NtoT_num+1;
% end
% end
%统计正确率和错误率
p_right_trunking_percell=right_trunking_num/(user_num*trunking_rate);%trunking集群的
p_right_normal_percell=right_normal_num/(user_num*(1-trunking_rate));%normal普通的
%将每次的统计送入矩阵中
right_trunking_tag(usernum)=right_trunking_num; %收集统计每小区中正确集群数
right_normal_tag(usernum)=right_normal_num; %收集统计每小区中正确普通数
wrong_total_tag(usernum)=wrong_TtoN_num+wrong_NtoT_num; %收集统计每小区中总的错误判断数
p_right_trunking(usernum)=p_right_trunking_percell;%trunking集群的正确概率
p_right_normal(usernum)=p_right_normal_percell;%normal普通的正确概率
p_wrong_total(usernum)=(wrong_TtoN_num+wrong_NtoT_num)/user_num; %收集统计每小区中总的错误概率
end
%画概率图
figure(1);
plot(D_users,p_right_trunking,'r-square');grid on;
hold on
plot(D_users,p_right_normal,'g--*');grid on;
hold on
plot(D_users,p_wrong_total,'b-.o');grid on;
% %画统计直方图
% figure(2);
% bar(D_users-50,right_trunking_tag,'r');grid on;
% hold on
% bar(D_users,right_normal_tag,'g');grid on;
% hold on
% bar(D_users+50,wrong_total_tag,'b');grid on;
%
%画统计直方图
figure(2);
a=[right_trunking_tag; right_normal_tag; wrong_total_tag]; %a是3*length(D_users)
b=rot90(a,3); %a变成length(D_users)*3
bar(D_users,b);%D_users的长度应等于a的行数
% bar(D_users,right_trunking_tag,'r');grid on;
% hold on
% bar(D_users,right_normal_tag,'g');grid on;
% hold on
% bar(D_users,wrong_total_tag,'b');grid on;
tag_right.rar_tag_right_仿真正确率_用户接入_直方图通信_随机接入
版权申诉
5星 · 超过95%的资源 106 浏览量
2022-09-24
05:05:08
上传
评论
收藏 1KB RAR 举报
weixin_42653672
- 粉丝: 93
- 资源: 1万+
最新资源
- 基于QT的地图可视化桌面系统后台数据库为MySQL5.7源码.zip
- 基于simulink的PLL锁相环系统仿真【包括模型,文档,参考文献,操作步骤】
- 基于EM-GMM模型的目标跟踪和异常行为检测matlab仿真【包括程序,注释,参考文献,操作步骤,说明文档】
- 2109010044_胡晨燕_选课管理数据库设计与实现.prj
- 帕鲁介绍的PPT备份没什么好下的
- demo1-202405
- 两种方式修改Intel网卡MAC地址
- 服务器搭建所需资源:static文件夹
- Vue02的源码学习资料
- Python 程序语言设计模式思路-行为型模式:访问者模式:在不改变被访问对象结构的情况下,定义对其元素的新操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈