Engee documentation
Notebook

Tuning of the centre frequency under interference

The example considers the construction of radar with the possibility of tuning the centre frequency of the probing signal. This approach allows to overcome the influence of active interference in the operating frequency band.

Functions used

In [ ]:
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 ) # Открыть модель
        model_output = engee.run( model, verbose=true ); # Запустить модель
        return nothing
        engee.close( name_model, force=true ); # Закрыть модель
    else
        model = engee.load( Path, force=true ) # Загрузить модель
        model_output = engee.run( model, verbose=true ); # Запустить модель
        engee.close( name_model, force=true ); # Закрыть модель
    end
end

function WA2Data(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;

1. model description

Unlike the example Monostatic Multi-target Radar, the following functional units are updated and improved in the current model:

  • A linear frequency modulated pulse signal generator capable of tuning from one centre frequency to another;
  • Added interference effect in the operating frequency band
  • Use of wideband channel
  • Update of signal processing algorithm

The radar operates at 300 MHz with a sampling rate of 2 MHz. It is located at the origin and is considered stationary. The target is about 10 km away and is approaching at a speed of about 100 metres per second. The general structural diagram is shown below:

frequancyagility_31_03_25_20_53_10.png

Let's take a closer look at the features of this model:

Generator (Waveform Generation)

.

Inside the masked block "Waveform Generation " there is a tunable signal generator with LFM. With a key it is possible to switch between centre frequencies 0 and 250 kHz.

frequancyagility_1743498142509.png

Channel and Jammer

  • Wideband Free Space: a broadband forward and backward propagation channel in free space is used;
  • Jammer: a jammer model simulating a useful signal at a false range

Signal Processing

After receiving the signal it is necessary to extract the useful signal for each band (in the example there are 2 bands) using a band filter (Band Filter) set to the appropriate centre band. After signal extraction, a matched filter block (Matched Filter) is applied to increase the signal-to-noise ratio (SNR):

image_4.png

2 Initialisation of input parameters

Let's connect the file of input parameters initialisation "FrequencyAgilityParam.jl "

In [ ]:
include("$(@__DIR__)/FrequencyAgilityParam.jl");

The structure of jl file is given below:

fundamental parameters:
c = 3e8; # signal propagation velocity
Fs = 2e6 # sampling frequency

# transmitter parameters
PeakPower = 5000 # transmitter power, watts
TxGain = 20 # Gain, dB
TxLossFactor = 0 # loss in the transmission path, dB

receiver parameters
NoisePower= 1e-12 # Noise Power, W
RxGain = 20 # Receiver gain, dB
RxLossFactor = 0 # loss in the transmission path, dB

radar position and interference
JammerPos = [10_000 ;0;1_000] # initial jammer position, m
JammerVel = [100;0;0] # jammer velocity, m/s
RadarPos = [0 ;0;0;0] # initial radar position, m
RadarVel = [0 ;0;0;0] # radar speed, m/s 

If necessary, the file parameters can be changed, in this case **re-connection is required.

3. Running the model

Use the model run function run_model to run the model simulation:

In [ ]:
run_model("FrequencyAgility", @__DIR__); # запуск модели
Building...
Progress 0%
Progress 0%
Progress 5%
Progress 11%
Progress 16%
Progress 21%
Progress 26%
Progress 32%
Progress 37%
Progress 42%
Progress 47%
Progress 53%
Progress 58%
Progress 63%
Progress 68%
Progress 74%
Progress 79%
Progress 84%
Progress 89%
Progress 94%
Progress 99%
Progress 100%
Progress 100%

4. Read simulation results

Use the function WA2Data to read the results from the variables Center and Hopped:

In [ ]:
Center_engee,_ = WA2Data(Center) # выход центрального канала
Hopped_engee,_ = WA2Data(Hopped); # выход смещенного канала

5. Visualising the results

Let us plot the simulation results for the last pulse on the centre and offset channel:

In [ ]:
fig1 = plot(abs.(Center_engee[:,1,end]),label="Центральный канал",color="red",ylabel="Амплитуда, В")
fig2 = plot(abs.(Hopped_engee[:,1,end]), label="Смещенный канал",xlabel="Время, отсчеты",ylabel="Амплитуда, В")
plot(fig1,fig2,layout=(2,1))
Out[0]:

The centre channel plot shows that the interference located at 185 samples suppresses the useful signal. In the offset channel, only the receiver's own noise is present because the useful and interfering signals are filtered out by the FIR filter.

6. Analysis of the model performance

Let's consider a scenario of radar operation: assume that at the initial moment of time the target is detected, after some time the influence of interference is connected and after that the frequency tuning to the shifted channel is realised.

Visualisation of the model operation in the described mode is given below (file frequencyagility.gif): frequencyagility.gif

At the end of the recording, it can be seen that the frequency tuning has allowed the target and active interference to be "separated" on different channels.

Conclusion

In the example, a method of dealing with active interference falling within the operating frequency band was considered. By tuning the centre frequency of the probing signal it was possible to minimise the effect of the interference on the radar system.