【无人机】无人机空中无人机通信仿真(Matlab实现)

无人机空中通信仿真在Matlab中的实现与性能评估

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

无人机空中通信是指利用无人机作为通信节点,在空中搭建起无线通信网络的过程。这种通信方式在各种应用场景中都具有重要意义,如灾难响应、军事侦察、物流配送等。为了评估和优化无人机空中通信系统的性能,通常会使用仿真工具进行仿真分析。无人机空中通信仿真的目的是评估通信系统的性能,如覆盖范围、数据传输速率、延迟等,以及优化通信系统的设计和部署方案。这些仿真结果对于指导实际应用中的系统设计和决策制定具有重要意义。仿真模型包括无人机的运动模型、信号传播模型、通信协议模型等。无人机的运动模型通常涉及飞行轨迹、速度、高度等参数的建模,信号传播模型考虑到大气条件、地形、障碍物等因素对信号传播的影响,通信协议模型则涉及到协议的行为和性能特征。仿真工具可以模拟不同的场景和应用情境,如城市环境、山区、海上等,以及不同的应用需求,如监视、通信中继、数据传输等。通过模拟这些场景,可以更全面地了解无人机空中通信系统的性能和适用性。

📚2 运行结果

主函数部分代码:

clear variables
clear global
clc
close all
warning off %#ok<*WNOFF>

% % height variation of the quadcopter in meters
h = 1:500;

% % cell radius variaion and fixed height
% h = 500; % 100 200 300 500 700

% % horizontal distance of user
R = 500; % cell radius in meters

% % transmit power
Pt = 25;

% % reference distance from quadcopter
R0 = 0;

% generating a pseudo random number which is unformly distributed in [0,1]
u = rand;
% u = rand(1, length(h));

% user horizontal distance this is pseudo random
r = R.*sqrt(u);

% bandwidth
B = 5 * 10^6; % MHz

% angle of elevation
theta_rad = atan(h./r);

% convert to degree
theta = rad2deg(theta_rad);

%% % Probablity of LOS and NLOS
% % various simulation scenarios
% % suburban % wood and empty space % thumbs up pogchamp
s=101.6; t=0; u=0; v=3.25; w=1.241; pathloss_exp=2.2; n_los=0.1; n_nlos=21;

% % urban % concrete % more blockage % meh
% s=120; t=0; u=0; v=24.30; w=1.229; pathloss_exp=3.1; n_los=1; n_nlos=20;

% % dense urban % concrete and glass % bad performance
% s=187.3; t=0; u=0; v=82.10; w=1.478; pathloss_exp=4.58; n_los=1.6; n_nlos=23;

% % urban high-rise % glass and metal % holy shit wtf performance
% s=352; t=-1.37; u=-53; v=173.80; w=4.670; pathloss_exp=5.5; n_los=2.3; n_nlos=34;

% % probability of line of sight calculation
num_1 = s - t;
den_1 = 1 + ((theta-u)./v).^w;
prob = s - (num_1./den_1);
% % line of sight probability
prob_los = prob./100;

% % non line of sight probability as bernouli dist
prob_nlos = 1- prob_los;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]许诺,朱黔,谢晓阳,等.基于改进混合粒子群优化算法的多无人机协同围捕方法研究[J/OL].电光与控制:1-7[2024-05-17].http://kns.cnki.net/kcms/detail/41.1227.tn.20240516.1357.002.html.

[2]赵烁阳,孙 亮,张宝金,等. 基于无人机遥感智能识别技术在电力巡检中的研究[J]. 工程技术研究,2024,6(10).

🌈4 Matlab代码实现

### 无人机通信系统的MATLAB仿真 #### 创建通信链路模型 为了模拟无人机之间的通信,首先需要建立一个基本的通信链路模型。这通常涉及到定义发射机、接收机以及传播路径损耗等因素。 ```matlab % 定义传输频率 (GHz) fc = 2.4; % 计算波长 (meters) lambda = physconst('LightSpeed') / (fc * 1e9); % 发射功率 (dBm) Pt_dBm = 0; % 接收灵敏度 (dBm) Pr_min_dBm = -80; ``` 上述代码片段用于初始化一些必要的物理参数[^4]。 #### 设计调制解调器 接下来,在发送端采用合适的调制方式来编码信号;而在接收端则实施相应的解码过程。这里展示了一个简单的QPSK调制例子: ```matlab dataBits = randi([0 1], 1, N); % 随机生成比特流 modulatedSignal = pskmod(dataBits, M=4, pi/4); % QPSK 调制 demodulatedData = pskdemod(modulatedSignal, M=4, pi/4); bitErrorRate = sum(xor(dataBits', demodulatedData')) ./ length(dataBits'); fprintf('Bit Error Rate: %.6f\n', bitErrorRate); ``` 这段程序实现了四相移键控(QPSK)调制与解调,并计算误码率(BER)。 #### 构建多径效应 考虑到无线环境中存在的反射、散射现象会对信号造成影响,因此引入瑞利衰落或多普勒频移等特性以更贴近实际情况。 ```matlab rayleighChannel = comm.RayleighChannel(); rayleighChannel.PathDelays = [0]; rayleighChannel.AveragePathGains = [0]; receivedSignal = rayleighChannel(modulatedSignal); ``` 此部分利用`comm.RayleighChannel()`函数创建了具有单条路径延迟特性的Rayleigh信道对象,并将其应用于已调制后的信号上。 #### 实施干扰源 除了自然因素外,人为制造的电磁噪声也可能破坏正常通讯。下面是一段关于如何向系统内加入加性高斯白噪音(Additive White Gaussian Noise, AWGN)的例子: ```matlab awgnChannel = awgn(receivedSignal, SNR_db='auto', SignalPower=sum(abs(receivedSignal).^2)/length(receivedSignal)); noisyReceivedSignal = awgnChannel; ``` 此处通过设置SNR自动适应输入信号强度的方式添加AWGN到接收到的信号中去。 #### 性能评估指标 最后一步是对整个通信系统的性能做出评价。常用的方法有测量吞吐量、丢包率、延时抖动等等。对于本案例而言,主要关注BER随距离变化的趋势图绘制如下所示: ```matlab distances = linspace(startDistance, endDistance, numPoints); berValues = zeros(size(distances)); for i = 1:length(distances) distance = distances(i); % 更新信道状态... [~, berValues(i)] = ... ; % 获取当前条件下BER end figure; plot(distances, berValues,'LineWidth',2); xlabel('Distance between UAVs (km)'); ylabel('Bit Error Rate'); title('UAV Communication System Performance Analysis'); grid on; ``` 该脚本循环遍历不同间距下的BER值并绘制成图表形式呈现出来。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值