Перестройка центральной частоты при воздействии помех
Author
function calcParamFrequencyAgilityParam()
# фундаментальные параметры:
c = 3e8; # cкорость распространения сигнала
Fs = 2e6 # частота дискретизации
# параметры передатчика
PeakPower = 5000 # мощность передатчика, Вт
TxGain = 20 # Усиление, дБ
TxLossFactor = 0 # потери в передающем тракте, дБ
# параметры приемника
NoisePower= 1e-12 # мощность шума, Вт
RxGain = 20 # Усиление приемника, дБ
RxLossFactor = 0 # потери в передающем тракте, дБ
# положение радара и помехи
JammerPos = [10_000 ;0;1_000] # начальное положение помехи, м
JammerVel = [100;0;0] # скорость помехи, м/с
RadarPos = [0 ;0;0] # начальное положение радара, м
RadarVel = [0 ;0;0] # скорость радара, м/с
# параметры генератора ЛЧМ сигнала
prf = 5000 # частота следования импульсов, Гц
bw = 1e5 # ширина полосы сигнала, Гц
Fc = 3e8 # несущая частота сигнала, Гц
deltaf = Fs/8 # cмещение центральной частоты генератора ЛЧМ, Гц
wav = EngeePhased.LinearFMWaveform(SampleRate=Fs,PRF=prf)
mfcoeff_center = getMatchedFilter(wav); # коэффициенты согласованного фильтра
mfcoeff_hopped = mfcoeff_center.*exp.(1im*2*pi*deltaf*(0:length(mfcoeff_center)-1)/Fs)
WaveSpec = ("LinearFM" => (PRF = 5e3,),"LinearFM" => (PRF = 5e3,FrequencyOffset = 250e3))
bfcoeff = [0.000000000073648687581457225402856543866061, 0.00000000066283818823311508032449717935878, 0.0000000026513527529324603212979887174351, 0.0000000061864897568424071406351028230061, 0.0000000092797346352636102973623479579952, 0.0000000092797346352636102973623479579952, 0.0000000061864897568424071406351028230061, 0.0000000026513527529324603212979887174351, 0.00000000066283818823311508032449717935878, 0.000000000073648687581457225402856543866061]
bfcoeff_center = bfcoeff.* exp.(1im*(bw/4)/(Fs/2)*pi*(0:9)) # коэффициенты сглаживающего ФНЧ фильтра Баттерворта 9 порядка для несмещенного ЛЧМ-сигнала
bfcoeff_hopped = bfcoeff.* exp.(1im*(bw/4+deltaf)/(Fs/2)*pi*(0:9)) # коэффициенты сглаживающего ФНЧ фильтра Баттерворта 9 порядка для смещенного ЛЧМ-сигнала
Nsamp = round(Int64,Fs/prf); # количество отсчетов на один импульс
return (Fs = Fs,Fc = Fc, PRF = prf, bw = bw, mfcoeff_center = mfcoeff_center, mfcoeff_hopped = mfcoeff_hopped,
bfcoeff_center = bfcoeff_center, bfcoeff_hopped = bfcoeff_hopped, deltaf = deltaf,
RxGain = RxGain, RxLossFactor = RxLossFactor, PeakPower = PeakPower, c = c,
TxGain=TxGain, TxLossFactor = TxLossFactor, JammerPos = JammerPos, Nsamp = Nsamp,
JammerVel = JammerVel, RadarPos = RadarPos, RadarVel = RadarVel, NoisePower = NoisePower,WaveSpec = WaveSpec)
end
paramFreqAgility = calcParamFrequencyAgilityParam()