Engee documentation
Notebook

Adjustment of the central frequency when exposed to interference

The example considers the construction of a radar with the possibility of adjusting the central frequency of the probing signal. This approach makes it possible to overcome the effects 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. Description of the model

Unlike the example Monostatic radar with multiple целями in the current model, the following functional nodes have been updated and improved:

  • pulse signal generator with linear frequency modulation, capable of tuning from one central frequency to another;
  • Added interference effects in the operating frequency band
  • Broadband channel usage
  • Updating the signal processing algorithm

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

FrequancyAgility-31.03.25 20_53_10.png

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

Generator (Waveform Generation)

The masked "Waveform Generation" block contains a tunable LF signal generator. Using the key, it is possible to switch between the center frequencies of 0 and 250 kHz.

FrequancyAgility--1743498142509.png
Channel and Jammer </h4>
  • Wideband Free Space: uses a broadband channel for direct and reverse distribution in free space;
  • Jammer: interference model that simulates a useful signal at a false range
Signal Processing

After receiving the signal, it is necessary to select a useful signal for each band (in the example there are 2 of them) using a bandpass filter (Band Filter) tuned to the appropriate center band. After the signal is isolated, a matched filtering unit (Matched Filter) is used to increase the signal-to-noise ratio (SNR):

image_4.png

2. Initialization of input parameters

Connect the input parameter initialization file "FrequencyAgilityParam.jl"

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

The structure of the jl file is shown below:

fundamental parameters:
c = 3e8; # signal propagation speed
Fs = 2e6 # sampling rate

# Transmitter parameters
PeakPower = 5000 # Transmitter power, W

TxGain = 20 # Gain, dB
TxLossFactor = 0 # transmission path loss, dB

receiver parameters
NoisePower= 1e-12 # Noise power, W

RxGain = 20 # Receiver gain, dB
RxLossFactor = 0 # transmission path loss, dB

radar position and interference
JammerPos = [10_000 ;0;1_000] # initial interference position, m

JammerVel = [100;0;0] # interference velocity, m/s
RadarPos = [0 ;0;0] # radar initial position, m
RadarVel = [0 ;0;0] # radar velocity, m/s

If necessary, the file parameters can be changed, but it needs to be reconnected.

3. Launching the model

Using the model run function run_model, let's run a simulation of the model:

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. Reading simulation results

Using the function WA2Data counting the results from the Center and Hopped variables:

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

5. Visualization of results

Let's plot the simulation results for the last pulse along the central and offset channels.:

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 central graph shows that the interference located at count 185 suppresses the useful signal. In the shifted channel, only the receiver's own noise is present, since the useful and interfering signals are filtered out by the FIR filter.

6. Analysis of the model operation

Let's consider the radar operation scenario: suppose that at the initial moment of time a target is detected, after some time the interference effect is connected, and after that a frequency adjustment to an offset channel is implemented.

A visualization of the model's operation in the described mode is shown below (file **FrequencyAgility.gif **):
FrequencyAgility.gif

At the end of the recording, you can see that the frequency adjustment allowed you to "spread" the target and the active interference on different channels.

Conclusion

In the example, a method for dealing with active interference falling into the operating frequency band was considered. By adjusting the central frequency of the probing signal, it was possible to minimize the effect of interference on the operation of the radar system.