Алгоритмы пеленгации Beamscan и MVDR для прямоугольной ФАР
作者
贡献者
function calcParam2DBeamscanMVDRDOA()
# Фундаментальные параметры
propSpeed =physconst("LightSpeed") # Скорость распространения
fc = 300e6 # Несущая частота
lambda = propSpeed/fc # Длина волны
# Приемник
fs = 1000; # частота дискретизации
samplesPerFrame = 300 # количество отсчетов в сигнале
frameTime = samplesPerFrame/fs # период следования импульсов
Gain = 0. # коэффициент усиления приемника, дБ
LossFactor = 0. # затухание в приемном тракте, дБ
NoisePower = 0.01 # мощность шума, Вт
SizeElements=[10 5] # количество элементов в линейной антенной решетки
ElementSpacing=[0.3 0.5] # расстояние между антенными элементами
# Алгоритмы пеленгации
RangeAzimuths = -10:60 # диапазон сканирования по азимутальному углу
RangeElevations = -20:20 # диапазон сканирования по углу места
NumSignals = 2 # количество сигналов
# Траектория сигнала
traject = [LinRange(30,50,21)' ; LinRange(10,-5,21)']
revTraject = traject[:,end:-1:1]
SweepAngle = zeros(2,NumSignals,length(traject))
for i in 2:2:NumSignals # задание в цикле направлений
# Траектория облучения 1 сигнала: от 30 до 50 градусов
SweepAngle[:,i-1,:] .= [traject revTraject]
# Траектория облучения 1 сигнала: от 50 до 30 градусов
SweepAngle[:,i,:] .= [revTraject traject]
end
return (propSpeed = propSpeed,fc=fc,SizeElements=SizeElements,ElementSpacing=ElementSpacing,
fs=fs,samplesPerFrame = samplesPerFrame,SweepAngle = SweepAngle, Gain = Gain,LossFactor = LossFactor,
RangeAzimuths = RangeAzimuths,RangeElevations = RangeElevations,NumSignals = NumSignals,NoisePower = NoisePower)
end
param2DBeamscanMVDRDOA = calcParam2DBeamscanMVDRDOA() # структура параметров
t_step = 0.3 # шаг моделирования, сек
t_sim = 12; # общее время моделирования, сек
println("Параметры инициализированы успешно!");