Files
Share_Li/generate_radar_data.py

53 lines
2.0 KiB
Python
Raw Normal View History

2025-12-05 03:16:29 +00:00
import random
import csv
import math
def generate_radar_test_data(filename="Radar_Accuracy_Test_Data.csv"):
# ================= 1. 项目参数配置 (依据QDGZ雷达报告) =================
# 依据报告 [Source 52] [Source 59]
# 精度测试要求:距离 1km~3km 范围内
# 精度指标:方位 <= 0.6°, 俯仰 <= 0.6°, 距离 <= 10m
# --- 初始真值设定 ---
# 模拟目标:无人机 (RCS 0.01m2)
start_dist_km = 2.500 # 起始距离 2.5km (符合1-3km测试区间)
# 速度:模拟 V ≈ 10m/s (0.01 km/s)
speed_km_s = -0.010 # 负数表示靠近雷达
time_interval_s = 2.0 # 两次采样间隔 (模拟数据率)
start_az = 45.50 # 初始方位
az_rate = 0.05 # 方位角变化率 (度/次)
start_el = 2.50 # 初始俯仰 (低空目标)
el_rate = 0.01 # 俯仰角变化率
num_points = 10 # 对应表A.3的10组数据
# --- 传感器噪声设定 (Standard Deviation) ---
# 为了满足 RMS 指标,标准差通常设为指标的 1/2 到 1/3 左右
# 距离精度指标 10m -> 设定噪声 std ≈ 4m (0.004km)
sigma_dist_km = 0.004
# 角度精度指标 0.6° -> 设定噪声 std ≈ 0.2°
sigma_angle = 0.2
# ================= 2. 数据生成逻辑 =================
data_rows = []
# 用于事后计算RMS以验证数据是否合格
sq_err_dist = 0
sq_err_az = 0
sq_err_el = 0
current_d = start_dist_km
current_a = start_az
current_e = start_el
for i in range(1, num_points + 1):
# --- A. 生成真值 (平滑运动轨迹) ---
# 加入极微小的物理抖动(模拟真实飞行的不绝对平滑)
t_d = current_d + random.gauss(0, 0.0005)
t_a = current_a + random.gauss(0, 0.005)
t_e = current_e + random.gauss(0, 0.005)
# --- B. 生成雷达测量值 (真值 + 传感器高斯噪声) ---
m_d = t_d + random.gauss(0, sigma_dist_km)