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


    目录

    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部分代码预览

    1. Pd01 = zeros(1,length(SNR));%自适应双阈值
    2. Pd02 = zeros(1,length(SNR));%自适应单阈值
    3. Pd03 = zeros(1,length(SNR));%固定阈值
    4. %虚警概率
    5. Pf01 = zeros(1,length(SNR));%自适应双阈值
    6. Pf02 = zeros(1,length(SNR));%自适应单阈值
    7. Pf03 = zeros(1,length(SNR));%固定阈值
    8. %漏检概率
    9. Pm01 = zeros(1,length(SNR));%自适应双阈值
    10. Pm02 = zeros(1,length(SNR));%自适应单阈值
    11. Pm03 = zeros(1,length(SNR));%固定阈值
    12. %通过蒙特卡洛仿真思想,对每组噪声情况的数据仿真多次
    13. Stimes = 20;
    14. %模拟实际中的频谱感知信号
    15. Per_signal = func_Signal_gen();
    16. Len_Per_sig = length(Per_signal);
    17. %信号功率
    18. signal_power = 6225.6;
    19. %定义信号长度
    20. Signal_Len = 2048;
    21. %检测周期
    22. Check_cycle = 40;
    23. Scycle = 8;
    24. %虚警概率
    25. Pfa = 0.3;
    26. for i = 1 : length(SNR)
    27. index = index + 1;
    28. %通过蒙特卡洛仿真
    29. for m=1:1:Stimes
    30. i
    31. m
    32. %模拟实际中的频谱感知信号
    33. Per_signal = func_Signal_gen();
    34. %产生噪声
    35. noise = func_noise_gen(signal_power,SNR(i),Signal_Len);
    36. %随机占用信道
    37. %改变伪随机序列长度,随机改变主用户的占用情况
    38. %在一般情况下,假设每个被占用的信道,所传送的是没有衰减的信号
    39. %在考虑femto的时候,考虑femto和macro之间的衰落,每个被占用的信道的衰减也是不同的
    40. %所以在被占用的信道之前乘以一个随机的衰减系数
    41. for m1=1:Scycle
    42. for n1=1:Scycle
    43. if (scrambler(m1,n1)==1)
    44. %伪随机码为1,占用信道;
    45. Per_signal_noise(1,(Len_Per_sig*(n1-1)+1):Len_Per_sig*n1) =rand(1,1)*Per_signal + noise;
    46. else
    47. %伪随机码为0,未占用信道
    48. Per_signal_noise(1,(Len_Per_sig*(n1-1)+1):Len_Per_sig*n1) = noise;
    49. end
    50. end
    51. end
    52. %检测出哪些信道被干扰范围之内的宏系统用户所应用,从而避开这些信道。
    53. noise_under_check = noise(1,1:Signal_Len);
    54. Per_signal_under_check = Per_signal(1,1:Signal_Len);
    55. %下面开始检测是否收到干扰
    56. %噪声检测
    57. [Check_noise,threshold] = func_check(noise_under_check,Check_cycle);
    58. Check_noise=abs(Check_noise);
    59. %进行信号检测
    60. for j=1:Scycle
    61. %检测被干扰的信道是否被用户所用
    62. Per_signal_under_check(1,1:Signal_Len)= Per_signal_noise(1,(Signal_Len*(j-1)+1):Signal_Len*j);
    63. [check_signal,threshold]=func_check(Per_signal_under_check,Check_cycle);
    64. check_signal_abs(j,m)=abs(check_signal);
    65. end
    66. %自适应门限计算
    67. adap_thres(m) = Check_noise*sqrt(2*log10(1./Pfa));
    68. %自适应双门限
    69. adap_thres_double(m) = 0.2*Check_noise(1,:)/sqrt(2*log10(1./Pfa));
    70. %固定门限
    71. thresholds(m) = threshold;
    72. end
    73. %进行判决
    74. [Num_Pd_01,Num_Pm_01,Num_Pf_01] = func_check_level(check_signal_abs,mean(adap_thres_double),scrambler); % 自适应双阈值的判决
    75. [Num_Pd_02,Num_Pm_02,Num_Pf_02] = func_check_level(check_signal_abs,mean(adap_thres) ,scrambler); % 自适应单阈值的判决
    76. [Num_Pd_03,Num_Pm_03,Num_Pf_03] = func_check_level(check_signal_abs,mean(thresholds) ,scrambler); % 固定阈值的判决
    77. %判决统计
    78. %检测概率
    79. Pd01(index)=Num_Pd_01/(20); % 自适应双阈值
    80. Pd02(index)=Num_Pd_02/(20); % 自适应单阈值
    81. Pd03(index)=Num_Pd_03/(20); % 固定阈值
    82. %漏检概率
    83. Pm01(index)=Num_Pm_01/(20); % 自适应双阈值
    84. Pm02(index)=Num_Pm_02/(20); % 自适应单阈值
    85. Pm03(index)=Num_Pm_03/(20); % 固定阈值
    86. %虚警概率
    87. Pf01(index)=Num_Pf_01/(20); % 自适应双阈值
    88. Pf02(index)=Num_Pf_02/(20); % 自适应单阈值
    89. Pf03(index)=Num_Pf_03/(20); % 固定阈值
    90. end
    91. %检测概率
    92. Pd11=sort(averge(Pd01,length(SNR)));
    93. Pd12=sort(averge(Pd02,length(SNR)));
    94. Pd13=sort(averge(Pd03,length(SNR)));
    95. %虚警概率
    96. Pf11=(sort(averge(Pf01,length(SNR))));
    97. Pf12=(sort(averge(Pf02,length(SNR))));
    98. Pf13=(sort(averge(Pf03,length(SNR))));
    99. %漏检概率
    100. Pm11=fliplr(sort(averge(Pm01,length(SNR))));
    101. Pm12=fliplr(sort(averge(Pm02,length(SNR))));
    102. Pm13=fliplr(sort(averge(Pm03,length(SNR))));
    103. %正确的检测概率
    104. figure;
    105. plot(SNR,Pd11,'r-*',SNR,Pd12,'b-^',SNR,Pd13,'k-o')
    106. legend('自适应双门限','自适应单门限','固定门限')
    107. xlabel('SNR')
    108. ylabel('Pd')
    109. title('正确检测概率图');
    110. grid on;
    111. %虚警概率
    112. figure;
    113. plot(SNR,Pf11,'r-*',SNR,Pf12,'b-^',SNR,Pf13,'k-o')
    114. legend('自适应双门限','自适应单门限','固定门限')
    115. xlabel('SNR')
    116. ylabel('Pf')
    117. title('虚警概率图');
    118. grid on
    119. %漏检概率
    120. figure;
    121. plot(SNR,Pm11,'r-*',SNR,Pm12,'b-^',SNR,Pm13,'k-o')
    122. legend('自适应双门限','自适应单门限','固定门限')
    123. xlabel('SNR')
    124. ylabel('Pm')
    125. title('漏检概率图');
    126. grid on
    127. %ROC
    128. figure;
    129. plot(Pf11,Pd11,'r-*')
    130. xlabel('Pf')
    131. ylabel('Pd')
    132. title('ROC');
    133. grid on
    134. 01-42m

    4.完整MATLAB程序

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

    V

  • 相关阅读:
    C# 正则表达式大全
    AI篇-chatgpt基本用法(文心一言也适用)
    Windows10系统修复方法
    剑指offer常见题 - 位运算问题(二)
    vue3中使用 tui-image-editor进行图片处理,并上传
    关于椭球的一点形象的解说
    自监督学习(一):基于 Pretext Task
    云原生之容器编排实践-minikube传递秘钥使用阿里云私有镜像仓库
    计算机网络自学笔记006_Real(网络层002)
    2022年起重机械指挥考试题及模拟考试
  • 原文地址:https://blog.csdn.net/hlayumi1234567/article/details/127968395