Barrage Jammer

Support for Modeling Barrage Jammer

The phased.BarrageJammer object models a broadband jammer. The output of phased.BarrageJammer is a complex white Gaussian noise sequence. The modifiable properties of the barrage jammer are:

  • ERP — Effective radiated power in watts

  • SamplesPerFrameSource — Source of number of samples per frame

  • SamplesPerFrame — Number of samples per frame

  • SeedSource — Source of seed for random number generator

  • Seed — Seed for random number generator

The real and imaginary parts of the complex white Gaussian noise sequence each have variance equal to 1/2 the effective radiated power in watts. Denote the effective radiated power in watts by P. The barrage jammer output is:

w[n]=P2x[n]+jP2y[n]

In this equation, x[n] and y[n] are mutually uncorrelated sequences of Gaussian random variables with zero mean and unit variance.

Model Real and Imaginary Parts of Barrage Jammer Output

Create a barrage jammer with the default effective radiated power of 5000 W. Generate 500 samples per frame.

hjam = phased.BarrageJammer('ERP',5e3,'SamplesPerFrame',500);
y = step(hjam);
subplot(2,1,1)
hist(real(y)); title('Histogram of Real Part');
subplot(2,1,2)
hist(imag(y)); title('Histogram of Imaginary Part');
xlabel('Watts');

Model Effect of Barrage Jammer on Target Echo

This example demonstrates how to simulate the effect of a barrage jammer on a target echo.

First, create the required objects. You need an array, a transmitter, a radiator, a target, a jammer, a collector, and a receiver. Additionally, you need to define two propagation paths: one from the array to the target and back, and the other path from the jammer to the array.

hula = phased.ULA(4);
Fs = 1e6;
fc = 1e9;
hwav = phased.RectangularWaveform('PulseWidth',100e-6,...
    'PRF',1e3,'NumPulses',5,'SampleRate',Fs);
htx = phased.Transmitter('PeakPower',1e4,'Gain',20,...
    'InUseOutputPort',true);
hrad = phased.Radiator('Sensor',hula,'OperatingFrequency',fc);
hjammer = phased.BarrageJammer('ERP',1000,...
    'SamplesPerFrame',hwav.NumPulses*hwav.SampleRate/hwav.PRF);
htarget = phased.RadarTarget('Model','Nonfluctuating',...
    'MeanRCS',1,'OperatingFrequency',fc);
htargetpath = phased.FreeSpace('TwoWayPropagation',true,...
    'SampleRate',Fs,'OperatingFrequency', fc);
hjammerpath = phased.FreeSpace('TwoWayPropagation',false,...
    'SampleRate',Fs,'OperatingFrequency', fc);
hcollector = phased.Collector('Sensor',hula,...
    'OperatingFrequency',fc);
hrc = phased.ReceiverPreamp('EnableInputPort',true);

Assume that the array, target, and jammer are stationary. The array is located at the global origin, [0;0;0]. The target is located at [1000 ;500;0], and the jammer is located at [2000;2000;100]. Determine the directions from the array to the target and jammer.

targetloc = [1000 ; 500; 0];
jammerloc = [2000; 2000; 100];
[~,tgtang] = rangeangle(targetloc);
[~,jamang] = rangeangle(jammerloc);

Finally, transmit the rectangular pulse waveform to the target, reflect it off the target, and collect the echo at the array. Simultaneously, the jammer transmits a jamming signal toward the array. The jamming signal and echo are mixed at the receiver.

% Generate waveform
wf = step(hwav);
% Transmit waveform
[wf,txstatus] = step(htx,wf);
% Radiate pulse toward the target
wf = step(hrad,wf,tgtang);
% Propagate pulse toward the target
wf = step(htargetpath,wf,[0;0;0],targetloc,[0;0;0],[0;0;0]);
% Reflect it off the target
wf = step(htarget,wf);
% Collect the echo
wf = step(hcollector,wf,tgtang);

% Generate the jamming signal
jamsig = step(hjammer);
% Propagate the jamming signal to the array
jamsig = step(hjammerpath,jamsig,jammerloc,[0;0;0],...
   [0;0;0],[0;0;0]);
% Collect the jamming signal
jamsig = step(hcollector,jamsig,jamang);

% Receive target echo alone and target echo + jamming signal
pulsewave = step(hrc, wf,~txstatus);
pulsewave_jamsig = step(hrc,wf+jamsig,~txstatus);

Plot the result, and compare it with received waveform with and without jamming.

subplot(2,1,1);
t = unigrid(0,1/Fs,size(pulsewave,1)*1/Fs,'[)');
plot(t,abs(pulsewave(:,1)));
title('Magnitudes of Pulse Waveform Without Jamming--Element 1')
ylabel('Magnitude');
subplot(2,1,2);
plot(t,abs(pulsewave_jamsig(:,1)));
title('Magnitudes of Pulse Waveform with Jamming--Element 1')
xlabel('Seconds'); ylabel('Magnitude');

Was this topic helpful?