Pulse Doppler radar system simulation using MATLAB
57 ビュー (過去 30 日間)
古いコメントを表示
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!
0 件のコメント
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Detection, Range and Doppler Estimation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!