m基于3GPP-LTE通信网络的认知家庭网络Cognitive-femtocell性能matlab仿真

news2024/12/23 17:45:32

目录

1.算法概述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法概述

本系统所涉及到的几个主要模块,具体有如下几个模块:

A. Simulation Flow:仿真流程

B. Initialization:初始化

C. Mobility Model:移动模型

D. Traffic Model:流量模型

E. Propagation Model:信号传输模型

F. Multipath Model:多径模型

G. SINR Calculation:SINR值计算模型

H. Link Level Quality Estimation:链路级质量评价

I. Scheduling:系统调度

根据Path Loss Model: The path loss between a macro BS and a MS is characterized can be calculated as follows:

      这里,R的值表示发送到接收的距离,单位为“米”,Low是表示户外墙壁的衰减,通常这个值为10dB或者20dB。

2.仿真效果预览

matlab2022a仿真

 

 

基于Femtocell的频谱感知算法的仿真

3.MATLAB部分代码预览

Pd01         = zeros(1,length(SNR));%自适应双阈值
Pd02         = zeros(1,length(SNR));%自适应单阈值
Pd03         = zeros(1,length(SNR));%固定阈值
%虚警概率  
Pf01         = zeros(1,length(SNR));%自适应双阈值
Pf02         = zeros(1,length(SNR));%自适应单阈值
Pf03         = zeros(1,length(SNR));%固定阈值
%漏检概率  
Pm01         = zeros(1,length(SNR));%自适应双阈值
Pm02         = zeros(1,length(SNR));%自适应单阈值
Pm03         = zeros(1,length(SNR));%固定阈值

%通过蒙特卡洛仿真思想,对每组噪声情况的数据仿真多次
Stimes       = 20;
%模拟实际中的频谱感知信号    
Per_signal   = func_Signal_gen(); 

Len_Per_sig  = length(Per_signal);
%信号功率 
signal_power = 6225.6;
%定义信号长度
Signal_Len   = 2048;
%检测周期
Check_cycle  = 40;
Scycle       = 8;
%虚警概率        
Pfa          = 0.3;   
 
for i = 1 : length(SNR)
    index = index + 1;
    
    %通过蒙特卡洛仿真
    for m=1:1:Stimes
        i
        m
        
        %模拟实际中的频谱感知信号    
        Per_signal   = func_Signal_gen(); 
        %产生噪声
        noise = func_noise_gen(signal_power,SNR(i),Signal_Len);                      
        %随机占用信道   
        %改变伪随机序列长度,随机改变主用户的占用情况
        %在一般情况下,假设每个被占用的信道,所传送的是没有衰减的信号
        %在考虑femto的时候,考虑femto和macro之间的衰落,每个被占用的信道的衰减也是不同的
        %所以在被占用的信道之前乘以一个随机的衰减系数
        for m1=1:Scycle                                                       
            for n1=1:Scycle                                
                if (scrambler(m1,n1)==1)                         
                    %伪随机码为1,占用信道;
                    Per_signal_noise(1,(Len_Per_sig*(n1-1)+1):Len_Per_sig*n1) =rand(1,1)*Per_signal + noise;        
                else   
                    %伪随机码为0,未占用信道
                    Per_signal_noise(1,(Len_Per_sig*(n1-1)+1):Len_Per_sig*n1) = noise;           
                end
            end
        end
        
        %检测出哪些信道被干扰范围之内的宏系统用户所应用,从而避开这些信道。
        noise_under_check      = noise(1,1:Signal_Len);
        Per_signal_under_check = Per_signal(1,1:Signal_Len);
        %下面开始检测是否收到干扰
        %噪声检测
        [Check_noise,threshold]  = func_check(noise_under_check,Check_cycle);
        Check_noise=abs(Check_noise);   
           
        
        %进行信号检测                                                
        for j=1:Scycle
            %检测被干扰的信道是否被用户所用
            Per_signal_under_check(1,1:Signal_Len)= Per_signal_noise(1,(Signal_Len*(j-1)+1):Signal_Len*j);             
            [check_signal,threshold]=func_check(Per_signal_under_check,Check_cycle);
            check_signal_abs(j,m)=abs(check_signal);  
        end  
                
        %自适应门限计算                                    
        adap_thres(m)        = Check_noise*sqrt(2*log10(1./Pfa));
        %自适应双门限                                              
        adap_thres_double(m) = 0.2*Check_noise(1,:)/sqrt(2*log10(1./Pfa));
        %固定门限
        thresholds(m)        = threshold;
    end  
 
   


    %进行判决
    [Num_Pd_01,Num_Pm_01,Num_Pf_01] = func_check_level(check_signal_abs,mean(adap_thres_double),scrambler);  % 自适应双阈值的判决 
    [Num_Pd_02,Num_Pm_02,Num_Pf_02] = func_check_level(check_signal_abs,mean(adap_thres)       ,scrambler);  % 自适应单阈值的判决 
    [Num_Pd_03,Num_Pm_03,Num_Pf_03] = func_check_level(check_signal_abs,mean(thresholds)       ,scrambler);  % 固定阈值的判决  
 
     
    %判决统计
    %检测概率   
    Pd01(index)=Num_Pd_01/(20);   % 自适应双阈值 
    Pd02(index)=Num_Pd_02/(20);   % 自适应单阈值 
    Pd03(index)=Num_Pd_03/(20);   % 固定阈值  
    
    %漏检概率
    Pm01(index)=Num_Pm_01/(20);  % 自适应双阈值
    Pm02(index)=Num_Pm_02/(20);  % 自适应单阈值    
    Pm03(index)=Num_Pm_03/(20);  % 固定阈值         

    %虚警概率
    Pf01(index)=Num_Pf_01/(20);   % 自适应双阈值
    Pf02(index)=Num_Pf_02/(20);   % 自适应单阈值
    Pf03(index)=Num_Pf_03/(20);   % 固定阈值   
end

%检测概率  
Pd11=sort(averge(Pd01,length(SNR)));
Pd12=sort(averge(Pd02,length(SNR)));
Pd13=sort(averge(Pd03,length(SNR)));
%虚警概率
Pf11=(sort(averge(Pf01,length(SNR))));
Pf12=(sort(averge(Pf02,length(SNR))));
Pf13=(sort(averge(Pf03,length(SNR))));
%漏检概率
Pm11=fliplr(sort(averge(Pm01,length(SNR))));
Pm12=fliplr(sort(averge(Pm02,length(SNR))));
Pm13=fliplr(sort(averge(Pm03,length(SNR))));


%正确的检测概率
figure;
plot(SNR,Pd11,'r-*',SNR,Pd12,'b-^',SNR,Pd13,'k-o')
legend('自适应双门限','自适应单门限','固定门限')
xlabel('SNR')                
ylabel('Pd')  
title('正确检测概率图');
grid on;  

%虚警概率
figure;
plot(SNR,Pf11,'r-*',SNR,Pf12,'b-^',SNR,Pf13,'k-o')
legend('自适应双门限','自适应单门限','固定门限')
xlabel('SNR')                
ylabel('Pf')  
title('虚警概率图');
grid on 

%漏检概率
figure;
plot(SNR,Pm11,'r-*',SNR,Pm12,'b-^',SNR,Pm13,'k-o')
legend('自适应双门限','自适应单门限','固定门限')
xlabel('SNR')                
ylabel('Pm')  
title('漏检概率图');
grid on 

%ROC
figure;
plot(Pf11,Pd11,'r-*')
 
xlabel('Pf')                
ylabel('Pd')  
title('ROC');
grid on 
01-42m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日两题】day 01 组队竞赛 删除公共字符

链接:组队竞赛__牛客网 (nowcoder.com) 解题思路 该题目就是求所有队员水平的数组中的尽可能大的水平之和 因为每个队伍都是三个人,平均水平值肯定是排序后水平中间的值 import java.util.*;public class Main {public static void main(String[] ar…

VisualDrag低代码拖拽模板

目录背景技术&文档二开优化方案1. 优化侧边栏2. 优化图片插入3. 新增可插入画布的组件4. 解决组件鼠标默认事件冲突的问题数据保存对接&页面生成预览保存对接生成预览源码下载背景 接到一个需求做一个拖拽模板低代码生成界面(如上图)&#xff0c…

项目交付过程中,进度失控的原因有哪些?

在项目交付过程中,会出现项目交付的进度与计划有较大的偏差,导致这种偏差的原因往往是多种多样的,一般常见的引起进度延期的原因有哪些? 1、计划不清晰 项目开始前必须有个计划,工作思路必须事前理清。 项目经理最…

springboot+ssm大学生家教课程订购平台的设计与实现

制作一个大学生家教平台的设计与实现是非常必要的。本网站是借鉴其他人的开发基础上,用MySQL数据库和JSP定制了大学生家教平台的设计与实现。系统前台实现了用户注册、登录、学习课程、家教准则、通知公告、双减政策等功能,并且还可以修改密码、个人信息…

windows10复制文件需要管理员权限,复制需要管理员权限怎么办

在Windows10操作系统的电脑中,很多用户都遇到这样的问题:windows10复制文件需要管理员权限,很多用户都不知道该怎么解决这个问题。在本文中,我们写出了详细的解决方法,让你可以轻松复制文件,并且也修复了需…

SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件

写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 3.5.2 任务 3.5.2.1 简述 定时任务是企业应用中常…

多种BCN点击试剂:1426827-79-3,endo BCN-PEG4-COOH,1841134-72-2

双环[6,1,0]壬炔 (BCN) (环丙烷环辛炔)可以通过无铜的点击化学与叠氮化物标记的分子或生物分子反应生成稳定的三氮唑连接。同样其可以和多种不同的基团进行连接,包括acid,NHS ester,amine等。西安凯新生物科技有限公司…

Oracle SQL执行计划操作(7)——排序相关操作

7. 排序相关操作 该类操作和SQL语句执行计划中的排序操作相关。根据不同的具体SQL语句及其他相关因素,如下各操作可能会出现于相关SQL语句的执行计划。 1)BUFFER SORT 在会话服务进程内存中对某个行源数据进行排序或其他相关操作,该操作最…

Vue高级篇--实现前后端分离

目录 一、安装Nodejs服务器 二、安装Npm 三、安装vue脚手架 四、使用vue脚手架搭建vue工程 五、vue工程安装需要的插件和依赖 六、安装前端的开发工具 七、使用webstorm打开vue工程 7.1 运行vue工程 八、src目录结构的介绍 一、安装Nodejs服务器 等价于我们java端的Tomcat服务…

聊聊自制的探索大全扑克牌

这是鼎叔的第四十篇原创文章。 行业大牛和刚毕业的小白,都可以进来聊聊。 欢迎关注本人专栏和微信公众号《敏捷测试转型》,大量原创思考文章陆续推出。 这是鼎叔的第四十篇原创文章。 行业大牛和刚毕业的小白,都可以进来聊聊。 欢迎关注…

Oracle中ALTER TABLE的五种用法(一)

首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__bizMzI1NTQyNzg3MQ&mid2247485212&idx1&sn450e9e94fa709b5eeff0de371c62072b&chksmea37536cdd40da7a94e165ce4b4c6e70fb1360d51bed4b3566eee438b587fa231315d0a5a…

(必经点)局部优化达到全局最优的最短路径算法探讨

首先,存在无序的点集. 记. 再记初始路径为. 于是,我们称以下为一次变换: if |C[i]-C[i1]||C[i2]-C[i3]| > |C[i]-C[i2]||C[i1]-C[i3]| {swap(C[i1],C[i2]); } 需要注意的是. 最直观的就是如下的变换: 我们对C上的每一点&a…

论文阅读【3】Efficient Estimation of Word Representations in Vector Space

1.概述 1.1 论文相关 题目:基向量空间中词表示的有效估计(Efficient Estimation of Word Representations in Vector Space)发表时间:出版:原文地址:代码 1.2 动机 2.对比模型 2.1 NNLM(前…

表单控件绑定:checkbox表单绑定v-model

表单checkbox&#xff0c;绑定的v-model是一个布尔值&#xff0c;要么为true&#xff0c;要么为false&#xff1b;因为它是勾选&#xff0c;或者不勾选的形式&#xff1b;为true了就是勾选&#xff0c;为false了就是不勾选&#xff1b; 代码&#xff1a; <body><div …

Vue-cli3 通过配置 public 目录下的 config.js 和config.json 实现一次编译,修改生效

文章目录1.背景2.配置步骤3.小结1.背景 最近实施部门&#xff0c;有个需求就是研发人员通过vue 写完代码&#xff0c;yarn build 编译完成代码后&#xff0c;移交实施&#xff0c;通过修改public 文件夹下的 config 文件来实现修改&#xff0c;请求后台的 requestUrl 和 titil…

day10 分布式缓存

单机的 Redis 存在以下四大问题&#xff1a; 1、Redis持久化 Redis有两种持久化方案&#xff1a; RDB 持久化AOF 持久化 1.1、RDB 持久化 RDB 全称 Redis Database Backup file&#xff08;Redis数据备份文件&#xff09;&#xff0c;也被叫做 Redis 数据快照。简单来说就是把…

《500强高管谈VE》-面向STAKEHOLDERS东方企业的VM

文章出处&#xff1a;日本VE协会杂志文章翻译&#xff1a;泰泽项目部 关注泰泽&#xff1a;实现高利润企业 《500强高管谈VE》-面向STAKEHOLDERS东方企业的VM 作者&#xff1a;常务董事八木隆 本公司的日高工厂和丰浦工厂两个事业所获得了迈尔斯奖。这些都是支持企业活动的V…

无代码开发平台选型指南

一、如何选购SaaS SaaS评测网的面世&#xff0c;也原因在于有感于选型难于&#xff0c;期望可以提供更多有用的信息协助大家找出更可信赖与最合适的产品。简而言之授之以鱼、比不上授之以渔&#xff0c;接下来的系列产品该文&#xff0c;则是撷取选型的方法及避坑实战经验。 …

【大数据处理技术】第二篇 大数据存储与管理(持续更新)

文章目录第3章 分布式文件系统HDFS3.1 分布式文件系统3.1.1 计算机集群结构3.1.2 分布式文件系统的结构3.1.3 分布式文件系统的设计需求3.2 HDFS3.2.1 HDFS 简介及相关概念3.2.2 HDFS 体系结构3.2.3 HDFS 存储原理3.2.4 HDFS 数据读写过程3.2.5 HDFS 编程实践第4章 分布式数据库…

独立产品灵感周刊 DecoHack #038 - 纽约市 90 年代的街景长什么样

本周刊记录有趣好玩的独立产品设计开发相关内容&#xff0c;每周发布&#xff0c;往期内容同样精彩&#xff0c;感兴趣的伙伴可以点击订阅我的周刊。为保证每期都能收到&#xff0c;建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。产品推荐 1. 1940s.nyc - 这个网站可以看到…