HyperAI超神经

基于 RFUAV 系统使用 Matlab 处理无人机信号

教程简介

在通信安全与频谱监测中,基于射频 (RF) 数据的无人机识别系统被广泛研究。 RFUAV 项目通过频谱图分析、信噪比估计等手段,对无人机的 IQ 信号进行分析处理。本项目在 OpenBayes 平台上使用 MATLAB 实现 RFUAV 的关键流程,完成 .mat → .dat 数据转换、频谱图可视化、 SNR 估计及分段裁剪等任务。

该教程基于浙江理工大学、杭州电子科技大学等研究团队于 2025 年发布的论文「RFUAV: A Benchmark Dataset for Unmanned Aerial Vehicle Detection and Identification」进行数据处理复现,由于原始数据暂未提供,此处数据集选用 IDLab 平台的数据作为数据处理演示。因完整数据集过于庞大,本教程仅对其中部分数据进行分析。

理论基础

信号格式

  • IQ 数据:复数形式表示为 x(t)=I(t)+jQ(t),包含幅度与相应信息。
  • .mat 数据:原始文件存储在 IQ_samples 字段中。
  • .dat 数据:float32 格式,交替存储 I 和 Q 。

分析流程

  • 加载 IQ 数据
  • 转换为.dat 格式
  • 使用 FFT 绘制频谱
  • 使用功率谱密度和频带划分估计 SNR
  • 分段裁剪以供模型训练

操作步骤

1. 运行准备

克隆并启动容器后,「打开工作空间」→在启动页打开「Matlab」

4

2. 数据转换

2.1 数据转换算法 (main_convert.m)

% 设置路径
mat_path = 'lorasf12_g0.0dB_att24dB_freq867.4MHz_4.mat';   % 当前目录
dat_path = 'AVATA_1.dat';     % 输出 .dat 文件名

% 加载 .mat 文件
mat_data = load(mat_path);
disp(fieldnames(mat_data))  % 显示变量名,确认变量存在

% 正确提取变量
iq = mat_data.IQ_samples;

% 转换为 float32 类型,并交替存储 I 和 Q
iq_float32 = single([real(iq(:)).'; imag(iq(:)).']);  % 交错排列为 I1 Q1 I2 Q2 ...

% 保存为 .dat 文件
fid = fopen(dat_path, 'w');
fwrite(fid, iq_float32, 'float32');
fclose(fid);

fprintf('转换完成,.dat 文件保存至: %s\n', dat_path);

2.2 数据转换实现

run('main_convert.m')

生成左侧 AVATA_1.dat 文档

6

3. 信号处理与频谱图生成

3.1 代码实现 (main.m)

% main.m
clc; clear;
addpath('tools');  % 添加工具函数路径

% 参数设置
data_path = 'AVATA_1.dat';  % 替换为实际上传的文件路径
fs = 100e6;          % 采样率
nfft = 512;          % FFT 点数
duration = 0.1;      % 时长 0.1s
datatype = 'float32';

% 频谱图显示
fprintf('>>> 可视化频谱图\n');
fig = check(data_path, nfft, fs, duration, datatype);
saveas(fig, 'spectrum_AVATA_1.png');

% 读取 IQ 数据
fid = fopen(data_path, 'rb');
dataIQ = fread(fid, 'float32');
fclose(fid);

% 信噪比估计
fprintf('>>> 信噪比估计\n');
bw = 2e6;
[idx1, idx2, idx3, idx4, f1, f2] = positionFind(dataIQ, fs, bw, nfft);
snr_val = snrEsti(dataIQ, fs, nfft, f1, f2, idx1, idx2, idx3, idx4);
fprintf('Estimated SNR: %.2f dB\n', snr_val);

% 分段裁剪
fprintf('>>> 开始数据分段...\n');
rawdata_crop(data_path, 2, fs);  % 每段 2 秒

3.2 信号处理结果与频谱图

7

4. 其他 .mat 文件处理

可将 main_convert.m 中的 mat_path 文件路径更改为自己需要处理的文件

8