How can I use the step function for the swerling models with the UPDATERCS?

조회 수: 2 (최근 30일)
Dear Sirs/Madams, Could you please tell me how to use the step function with UPDATERCS? I would like to apply swerling models to end-to-end radar system example http://www.mathworks.com/help/phased/gs/end-to-end-radar-system.html but I couldn't understand how to do from the explanations of mathworks' step function and radar.target. Could you please send me a short example about UPDATERCS on step function or explain me how to do with details ASAP? In fact I would be very happy if you explain me the issue on the end-to-end radar system example.
Error: Error using phased.RadarTarget/step Not enough input arguments; expected 2 (in addition to the object handle), got 1.
Error in rs2 (line 54) sig = step(htgt,sig);
full code:
hwav = phased.RectangularWaveform('PulseWidth',1e-6,'PRF',5e3,'OutputFormat','Pulses','NumPulses',1);
hant = phased.IsotropicAntennaElement('FrequencyRange',[1e9 10e9]);
htgt = phased.RadarTarget('Model','Nonfluctuating','MeanRCS',0.5,'PropagationSpeed',physconst('LightSpeed'),'OperatingFrequency',4e9);
htxplat = phased.Platform('InitialPosition',[0;0;0],'Velocity',[0;0;0],'OrientationAxes',[1 0 0;0 1 0;0 0 1]);
htgtplat = phased.Platform('InitialPosition',[7000; 5000; 0],'Velocity',[-15;-10;0]);
[tgtrng,tgtang] = rangeangle(htgtplat.InitialPosition,htxplat.InitialPosition);
htx = phased.Transmitter('PeakPower',50e3,'Gain',20,'LossFactor',0,'InUseOutputPort',true,'CoherentOnTransmit',true);
hrad = phased.Radiator('Sensor',hant,'PropagationSpeed',physconst('LightSpeed'),'OperatingFrequency',4e9);
hcol = phased.Collector('Sensor',hant,'PropagationSpeed',physconst('LightSpeed'),'Wavefront','Plane','OperatingFrequency',4e9);
hrec = phased.ReceiverPreamp('Gain',20,'NoiseFigure',2,'ReferenceTemperature',290,'SampleRate',1e6,'EnableInputPort',true,'SeedSource','Property','Seed',1e3);
hspace = phased.FreeSpace('PropagationSpeed',physconst('LightSpeed'),'OperatingFrequency',4e9,'TwoWayPropagation',false,'SampleRate',1e6);
% Time step between pulses
T = 1/hwav.PRF;
% Get antenna position
txpos = htxplat.InitialPosition;
% Allocate array for received echoes
rxsig = zeros(hwav.SampleRate*T,numpulses);
for n = 1:numpulses
% Update the target position
[tgtpos,tgtvel] = step(htgtplat,T);
% Get the range and angle to the target
[tgtrng,tgtang] = rangeangle(tgtpos,txpos);
% Generate the pulse
sig = step(hwav);
% Transmit the pulse. Output transmitter status
[sig,txstatus] = step(htx,sig);
% Radiate the pulse toward the target
sig = step(hrad,sig,tgtang);
% Propagate the pulse to the target in free space
sig = step(hspace,sig,txpos,tgtpos,[0;0;0],tgtvel);
% Reflect the pulse off the target
sig = step(htgt,sig);
% Propagate the echo to the antenna in free space
sig = step(hspace,sig,tgtpos,txpos,tgtvel,[0;0;0]);
% Collect the echo from the incident angle at the antenna
sig = step(hcol,sig,tgtang);
% Receive the echo at the antenna when not transmitting
rxsig(:,n) = step(hrec,sig,~txstatus);
end
rxsig = pulsint(rxsig,'noncoherent');
t = unigrid(0,1/hrec.SampleRate,T,'[)');
rangegates = (physconst('LightSpeed')*t)/2;
plot(rangegates,rxsig); hold on;
xlabel('Meters'); ylabel('Power');
ylim = get(gca,'YLim');
plot([tgtrng,tgtrng],[0 ylim(2)],'r');

채택된 답변

Honglei Chen
Honglei Chen 2013년 3월 19일
Hi Mehmet,
When you turn on Swerling mode in a radar target, you need to manage when to update the RCS in your simulation by passing in an additional logical flag to the step() call. If you pass in TRUE, then RCS will be updated, otherwise, the old RCS is used.
For example, let's say you have a Swerling II model and your are simulating one pulse a time, then in your loop, it will look like
for pulseIndex = 1:N
%...
step(myTarget,x,true)
%...
end
where N is the number of pulses you simulated and x is the signal.
On the other hand, if you have a Swerling I model which changes from dwell to dwell and assume each dwell is 10 pulses, then you will have something like
for pulseIndex = 1:N
%...
if rem(pulseIndex-1,10)
step(myTarget,x,false);
else
step(myTarget,x,true);
end
%...
end
If you need a system level example, you can take a look at the following shipping example which uses a Swerling II target
HTH
  댓글 수: 1
Mehmet
Mehmet 2013년 3월 19일
Hi Honglei,
First of all thank you for your answer. I just realized I needed a logical input when I entered a matris value to try what will happen. About the same time I have seen your answer and applied it. It worked perfectly.
Thank you very much again, Best regards.
Mehmet

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Transmitters and Receivers에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by