基于OFDM的无人机中继通讯链路matlab误码率仿真

打印 上一主题 下一主题

主题 998|帖子 998|积分 2994

目录
1.算法运行效果图预览
2.算法运行软件版本
3.部分核心程序
4.算法理论概述
5.算法完整程序工程


1.算法运行效果图预览

(完整程序运行后无水印)


2.算法运行软件版本

matlab2024b/matlab2022a
3.部分核心程序

(完整版代码包含详细中文解释和操作步调视频)
  1. ......................................................................
  2.         %无人机中继的发射功率
  3.         rg = 0.5;
  4.         P3 = rg*TP*Pw*T/2*abs(h)^2;
  5.         Rx_data=Fly_T +noise/P3^0.5;%归一化,所以变为N/p
  6.         
  7.         
  8.         %目标接收信号
  9.         Rx_data_matrix=zeros(Nsymb,Lifft+GI+GIP);
  10.         for i=1:Nsymb
  11.             Rx_data_matrix(i,:)=Rx_data(1,(i-1)*(Lifft+GI)+1:i*(Lifft+GI)+GIP);%串并变换
  12.         end
  13.         Rmx=Rx_data_matrix(:,GI+1:Lifft+GI);
  14.         
  15.         %OFDM解码
  16.         
  17.         Y1=fft(Rmx,Lifft,2);
  18.         Rx_carriers = Y1(:,carriers);
  19.         Rx_phase    = angle(Rx_carriers);
  20.         Rx_mag      = abs(Rx_carriers);
  21.         
  22.         [M, N]=pol2cart(Rx_phase, Rx_mag);
  23.         Rmx2 = complex(M, N);
  24.          
  25.         
  26.         %16qam解调
  27.         Rmx3 = reshape(Rmx2',size(Rmx2, 1)*size(Rmx2,2),1)' ;
  28.         Rmx4 = func_16deqam(Rmx3);%解调
  29.         
  30.         baseband_in = Rmx4;
  31.         
  32.         %误码率计算
  33.         bit_errors = find(baseband_in ~=bs_out);
  34.         ber(mtkl,ij)        = size(bit_errors, 2)/Slen;
  35. figure;
  36. semilogy(SNRs,mean(ber,1),'-bs',...
  37.     'LineWidth',1,...
  38.     'MarkerSize',6,...
  39.     'MarkerEdgeColor','k',...
  40.     'MarkerFaceColor',[0.9,0.0,0.0]);
  41. grid on
  42. xlabel('SNR');
  43. ylabel('误码率');
  44. title('中继到目标点的误码率性能');
  45. if TP==0.3;
  46.    save mat\R11.mat  SNRs ber
  47.    
  48. end
  49. if TP==0.5;
  50.    save mat\R12.mat  SNRs ber
  51.    
  52. end
  53. if TP==0.7;
  54.    save mat\R13.mat  SNRs ber
  55.    
  56. end
  57. figure;
  58. load mat\R11.mat
  59. semilogy(SNRs,mean(ber,1),'-bs',...
  60.     'LineWidth',1,...
  61.     'MarkerSize',6,...
  62.     'MarkerEdgeColor','k',...
  63.     'MarkerFaceColor',[0.9,0.0,0.0]);
  64. hold on
  65. load mat\R12.mat
  66. semilogy(SNRs,mean(ber,1),'-mo',...
  67.     'LineWidth',1,...
  68.     'MarkerSize',6,...
  69.     'MarkerEdgeColor','k',...
  70.     'MarkerFaceColor',[0.5,0.9,0.0]);
  71. hold on
  72. load mat\R13.mat
  73. semilogy(SNRs,mean(ber,1),'-b^',...
  74.     'LineWidth',1,...
  75.     'MarkerSize',6,...
  76.     'MarkerEdgeColor','k',...
  77.     'MarkerFaceColor',[0.2,0.9,0.5]);
  78. hold on
  79. grid on
  80. xlabel('SNR');
  81. ylabel('误码率');
  82. title('中继到目标点的误码率');
  83. legend('中继功率比例因子=0.3','中继功率比例因子=0.5','中继功率比例因子=0.7');
  84. 01_208m
复制代码
4.算法理论概述

       OFDM 将高速率的数据流分解为多个低速率的子数据流,然后将这些子数据流分别调制到多个相互正交的子载波上举行传输。在吸收端,通过正交解调可以将各个子载波上的信号分离出来,恢复出原始的数据流。子载波之间的正交性使得它们在频谱上可以相互重叠,从而提高了频谱利用率。
      调制与解调:在发送端,通常利用逆快速傅里叶变更(IFFT)来实现OFDM调制,将频域的信号转换为时域信号。在吸收端,利用快速傅里叶变更(FFT)将吸收到的时域信号转换回频域信号,以便举行解调。
      循环前缀(CP):为了克服多径传播引起的符号间干扰(ISI),OFDM体系在每个符号的开头添加一段循环前缀。循环前缀是将符号的尾部复制到头部得到的,其长度大于信道的最大时延扩展。这样,在吸收端可以通过丢弃循环前缀来消除ISI。
      假设一个OFDM符号包含N个子载波,第k个子载波上的数据符号为X[k],k=0,1,⋯,N−1。OFDM 符号的时域表达式可以通过对频域数据符号举行逆离散傅里叶变更(IDFT)得到。在理想情况下,颠末IDFT后的连续时间OFDM信号s(t)可以表现为:

       在实际体系中,利用逆快速傅里叶变更(IFFT)来实现IDFT。离散时间的OFDM信号s[n]可以表现为:

       在吸收端,利用快速傅里叶变更(FFT)将吸收到的时域信号转换回频域信号。吸收到的离散时间信号r[n]颠末FFT后得到频域信号Y[k]:

       思量一个基于 OFDM 的无人机中继通讯体系,包含源节点(S)、无人机中继节点(R)和目的节点(D)。源节点发送的 OFDM 信号颠末无人机中继转发到目的节点。
中继分配功率:中继节点必要对吸收到的信号举行放大转发或者解码转发。合理分配中继功率可以加强信号强度,赔偿传输过程中的损耗,提高吸收端的信号质量,从而提拔体系的吞吐量、低落误码率等性能指标。然而,过高的功率分配可能会引入更多的噪声和干扰,同时也会增长中继节点的能耗。
无人机飞行高度:无人机飞行高度会影响通讯链路的传播损耗。较高的飞行高度可能会受到大气吸取等因素的影响。别的,飞行高度还会影响无人机与地面节点之间的视距(LOS)和非视距(NLOS)通讯概率。
5.算法完整程序工程

OOOOO

OOO

O


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表