HyperAI

Verarbeitung Von UAV-Signalen Mit Matlab Basierend Auf Dem RFUAV-System

Einführung in das Tutorial

Im Bereich Kommunikationssicherheit und Spektrumüberwachung wurden Drohnenidentifikationssysteme auf Basis von Hochfrequenzdaten (RF) umfassend untersucht. Das RFUAV-Projekt analysiert und verarbeitet die IQ-Signale von Drohnen durch Spektrumanalyse und Schätzung des Signal-Rausch-Verhältnisses. Dieses Projekt verwendet MATLAB auf der OpenBayes-Plattform, um die wichtigsten Prozesse von RFUAV zu implementieren und Aufgaben wie .mat → .dat-Datenkonvertierung, Spektrumvisualisierung, SNR-Schätzung und Segment-Clipping durchzuführen.

Dieses Tutorial basiert auf dem Artikel „RFUAV: Ein Benchmark-Datensatz zur Erkennung und Identifizierung unbemannter Luftfahrzeuge„Datenverarbeitung reproduzieren. Da die Originaldaten noch nicht verfügbar sind, verwendet der Datensatz hier die Daten der IDLab-Plattform als Demonstration der Datenverarbeitung. Da der gesamte Datensatz zu umfangreich ist, analysiert dieses Tutorial nur einen Teil der Daten.“

Theoretische Grundlagen

Signalformat

  • IQ-Daten: Die komplexe Form wird als x(t)=I(t)+jQ(t) ausgedrückt und enthält Amplitude und entsprechende Informationen.
  • .mat-Daten: Die Originaldatei wird im Feld IQ_samples gespeichert.
  • .dat-Daten: Float32-Format, speichert I und Q abwechselnd.

Analyseprozess

  • IQ-Daten werden geladen
  • In das .dat-Format konvertieren
  • Zeichnen des Spektrums mit FFT
  • Schätzung des SNR mithilfe der Leistungsspektraldichte und der Frequenzbandpartitionierung
  • Segmentzuschneiden für das Modelltraining

Verfahren

1. Vorbereitung für den Betrieb

Nach dem Klonen und Starten des Containers "Open Workspace" → Öffnen Sie "Matlab" auf der Startseite

4

2. Datenkonvertierung

2.1 Datenkonvertierungsalgorithmus (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 Implementierung der Datenkonvertierung

run('main_convert.m')

Generieren Sie die Datei AVATA_1.dat auf der linken Seite

6

3. Signalverarbeitung und Spektrumgenerierung

3.1 Code-Implementierung (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 Signalverarbeitungsergebnisse und Spektrumdiagramm

7

4. Andere .mat-Dateiverarbeitung

Sie können den Dateipfad mat_path in main_convert.m in die Datei ändern, die Sie verarbeiten müssen

8