Pulse Doppler radar system simulation using MATLAB

57 Ansichten (letzte 30 Tage)
Arshia Tehrani
Arshia Tehrani am 18 Mai 2021
How to code this project in MATLAB
I'd tried coding this project (prob. 3-2, third paragraph) in MATLAB through this tutorial :
I'd changed PRF to 100 and pulse width to 5e-4 , And made Velocity of target one dimensional:
waveform = phased.RectangularWaveform('SampleRate',5e6,...
'PulseWidth',5e-4,'OutputFormat','Pulses',...
'NumPulses',1,'PRF',100);
target = phased.RadarTarget('Model','Nonfluctuating',...
'MeanRCS',1,'OperatingFrequency',1e9);
targetpos = phased.Platform('InitialPosition',[1000; 0; 0],...
'Velocity',[-100; 0; 0]);
antenna = phased.IsotropicAntennaElement(...
'FrequencyRange',[5e8 5e9]);
transmitter = phased.Transmitter('PeakPower',5e3,'Gain',20,...
'InUseOutputPort',true);
transpos = phased.Platform('InitialPosition',[0;0;0],...
'Velocity',[0;0;0]);
radiator = phased.Radiator('OperatingFrequency',1e9,'Sensor',antenna);
collector = phased.Collector('OperatingFrequency',1e9,'Sensor',antenna);
channel = phased.FreeSpace('SampleRate',waveform.SampleRate,...
'OperatingFrequency',1e9,'TwoWayPropagation',false);
receiver = phased.ReceiverPreamp('Gain',0,'LossFactor',0,...
'SampleRate',5e6,'NoiseFigure',5,...
'EnableInputPort',true,'SeedSource','Property','Seed',1e3);
I did not change anything here :
NumPulses = 10;
sig = waveform(); % get waveform
transpos = transpos.InitialPosition; % get transmitter position
rxsig = zeros(length(sig),NumPulses);
% transmit and receive ten pulses
for n = 1:NumPulses
% update target position
[tgtpos,tgtvel] = targetpos(1/waveform.PRF);
[tgtrng,tgtang] = rangeangle(tgtpos,transpos);
tpos(n) = tgtrng;
[txsig,txstatus] = transmitter(sig); % transmit waveform
txsig = radiator(txsig,tgtang); % radiate waveform toward target
txsig = channel(txsig,transpos,tgtpos,[0;0;0],tgtvel); % propagate waveform to target
txsig = target(txsig); % reflect the signal
% propagate waveform from the target to the transmiter
txsig = channel(txsig,tgtpos,transpos,tgtvel,[0;0;0]);
txsig = collector(txsig,tgtang); % collect signal
rxsig(:,n) = receiver(txsig,~txstatus); % receive the signal
end
prf = waveform.PRF;
fs = waveform.SampleRate;
fasttime = unigrid(0,1/fs,1/prf,'[)');
rangebins = (physconst('LightSpeed')*fasttime)/2;
probfa = 1e-9;
NoiseBandwidth = 5e6/2;
npower = noisepow(NoiseBandwidth,...
receiver.NoiseFigure,receiver.ReferenceTemperature);
thresh = npwgnthresh(probfa,NumPulses,'noncoherent');
thresh = sqrt(npower*db2pow(thresh));
[pks,range_detect] = findpeaks(pulsint(rxsig,'noncoherent'),...
'MinPeakHeight',thresh,'SortStr','descend');
range_estimate = rangebins(range_detect(1));
ts = rxsig(range_detect(1),:).';
[Pxx,F] = periodogram(ts,[],256,prf,'centered');
plot(F,10*log10(Pxx))
grid
xlabel('Frequency (kHz)')
ylabel('Power (dB)')
title('Periodogram Spectrum Estimate')
[Y,I] = max(Pxx);
lambda = physconst('LightSpeed')/1e9;
tgtspeed = dop2speed(F(I)/2,lambda);
fprintf('Estimated range of the target is %4.2f meters.\n',...
range_estimate)
fprintf('Estimated target speed is %3.1f m/sec.\n',tgtspeed)
if F(I)>0
fprintf('The target is approaching the radar.\n')
else
fprintf('The target is moving away from the radar.\n')
end
I really have no idea why this new pulse give me this output :
Estimated range of the target is 750350.54 meters.
Estimated target speed is -4.9 m/sec.
The target is moving away from the radar.
I would be appreciated if anyone could give me an advice or a solution.
Many thanks!

Antworten (0)

Kategorien

Mehr zu Detection, Range and Doppler Estimation finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by