基于多频调制(MFSK)信号的汽车雷达¶
该示例介绍了基于多位置频率调制(MFSK)信号的汽车雷达设计,用于估计多个物体的距离和速度。
使用的函数¶
Pkg.add(["LinearAlgebra", "DSP"])
include("$(@__DIR__)/calcParamMFSK.jl")
using DSP,FFTW,LinearAlgebra
function run_model( name_model, path_to_folder ) # определение функции для прогона модели
Path = path_to_folder * "/" * name_model * ".engee"
if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
model = engee.open( name_model ) # Открыть модель
engee.run( model, verbose=true ); # Запустить модель
engee.close( name_model, force=true ); # Закрыть модель
else
model = engee.load( Path, force=true ) # Загрузить модель
engee.run( model, verbose=true ); # Запустить модель
engee.close( name_model, force=true ); # Закрыть модель
end
return
end;
function DataFrame2Array(X)
out = collect(X)
out_data = zeros(eltype(out.value[1]),size(out.value[1],1),size(out.value[1],2),length(out.value))
[out_data[:,:,i] = out.value[i] for i in 1:length(out.value)]
return out_data, out.time
end
function calc_spectrogram(x::Array,fs::Real,title::String;
num_pulses::Int64 = 4,
window_length::Int64 = 32,
nfft::Int64=32,
lap::Int64 = 30,
thesh::Real = -Inf)
gr()
spec_out = DSP.spectrogram(x[:,:,1:num_pulses][:],window_length,lap;window=kaiser(window_length,3.95),nfft=nfft,fs=fs)
power = DSP.pow2db.(spec_out.power)
power .= map(x -> x < thesh ? thesh : x,power)
power_new = zeros(size(power))
power_new[1:round(Int64,size(power,1)/2),:] .= power[round(Int64,size(power,1)/2)+1:end,:]
power_new[round(Int64,size(power,1)/2)+1:end,:] .= power[1:round(Int64,size(power,1)/2),:]
fig = heatmap(fftshift(spec_out.freq).*1e-6,spec_out.time .*1e3, permutedims(power_new),color= :jet,
gridalpha=0.5,margin=5Plots.mm,size=(900,400))
xlabel!("Частота, МГц")
ylabel!("Время, мс")
title!(title)
return fig
end;
1. 模型结构描述¶
结构方案与示例(用于多目标测距和测速的汽车雷达)类似。主要区别在于
- 使用多位置频率调制的连续辐射发生器;
- 信号处理考虑到两个参数:节拍频率和扫描之间的相移。
信号处理装置
信号处理子系统包括以下几个阶段: 1.接收信号与Dechirp模块中的复数共轭输入信号相乘,得到解调信号; 2.2. 下一步,解调信号在扫频块中进行处理,利用快速傅里叶变换计算频域内的频谱; 3.3. 接下来,使用一维检测器(CA CFAR 检测器)检测频谱中与目标相对应的峰值。 4.4. 最后,在求解测距多普勒方程块中,利用找到的节拍频率值和扫描之间的相位差,计算出目标的测距和速度估计值;
2 输入参数初始化¶
模拟场景如下:一辆装有雷达的车辆以 100 公里/小时(27.8 米/秒)的速度从参考点出发
视线内有两辆目标车辆**,分别是一辆轿车和一辆货车,每辆车都有一个相应的传播通道。汽车距离雷达 50 米,时速 60 公里(16.7 米/秒)。卡车距离雷达 150 米,时速为 130 公里(36.1 米/秒)。
信号传播通道为自由空间。
为了初始化模型的输入参数,我们连接了 "calcParamMFSK.jl"文件。如果需要更改参数值,请打开该文件并编辑必要的参数。
include("$(@__DIR__)/calcParamMFSK.jl") # подключения файла с валидационными параметрами
paramRadarMFSKMT = CalcParamMFSK(); # валидация входных параметров
T = paramRadarMFSKMT.T; # шаг моделирования
SimT = T; # Время моделирования
3.运行模型¶
run_model("MFSK_Radar_Range_Estimation_MT",@__DIR__); # Запуск модели
4.读取模拟结果¶
sig_MFSK, fast_time = DataFrame2Array(MFSK) # входной ЛЧМ-сигнал
out_range, _ = DataFrame2Array(Range) # сигнал после цифровой обработки
out_speed, slow_time = DataFrame2Array(Speed); # оценки дальности
5.雷达操作可视化¶
5.1 输入信号的频谱图¶
让我们使用 calc_spectrogram 函数绘制输入信号的频谱图
calc_spectrogram(
sig_MFSK, # ЛЧМ-сигнал
paramRadarMFSKMT.Fs, # частота дискретизации
"Cпектрограмма сигнала c MFSK";
num_pulses=1 # количество импульсов отображения
)
频谱图的频率成分具有阶跃特性,这与信号的多频频率调制相对应。事实上,使用 MFSK 的信号由两次带有固定离散频率偏移的 FMCW 信号扫描组成。辐射信号的扫描时间由离散步长与步长数的乘积决定,约为 2 毫秒,比连续 FMCW 信号(约 7 微秒)长几个数量级。
5.2 估算物体的距离和速度¶
让我们分析一下雷达操作的结果
比较测距和测速的估计值和真实值(汽车测距 50 米,卡车测距 150 米)
println("Оценка дальности автомобиля $(round(out_range[1,1,end];sigdigits=5)) м")
println("Оценка дальности грузовика $(round(out_range[2,1,end];sigdigits=5)) м")
println("Оценка дальности автомобиля $(round(out_range[1,1,end]-50;sigdigits=5)) м")
println("Оценка дальности грузовика $(round(out_range[2,1,end]-150;sigdigits=5)) м")
现在让我们比较一下估计值和真实速度值(汽车的相对速度 - 40 km/h,卡车的相对速度 - 30 km/h)
println("Оценка относительной скорости автомобиля $(round(out_speed[1,1,end]*3.6;sigdigits=5)) км/ч")
println("Оценка относительной скорости грузовика $(round(out_speed[2,1,end]*3.6;sigdigits=5)) км/ч")
println("Погрешность оценки относительной скорости автомобиля $(round(out_speed[1,1,end]*3.6-40;sigdigits=5)) км/ч")
println("Погрешность оценки относительной скорости грузовика $(round(out_speed[2,1,end]*3.6-(-30);sigdigits=5)) км/ч")
通过对模拟结果的分析,我们可以得出结论:雷达估测值符合所宣称的测距精度(1 米)和速度精度(1 公里/小时)。
结论¶
在示例中,我们考虑了使用多位置频率调制探测信号的汽车雷达模型的设计。 通过该模型的运行,我们可以估算出雷达到目标(汽车和卡车)的正向速度和距离,雷达分辨率精度为:距离 1 米,速度约 1 公里/小时。
还应指出的是:与连续 LFM 信号相比,使用所考虑的信号可将扫描时间从 7 µs 增加到 2 ms,从而降低设备成本。