Range Doppler Response has a linear bias
Show older comments
The range doppler response of matlab's phased array system toolbox seems to have a linear bias for doppler frequency. The system is a moving radar platform (at certain altitude) and a stationary ground target and ground clutter (modeled as phased.ConstantGammaClutter object). In my particular case, 0 velocity will have everything in correct frequency (0 Hz for ground clutter and target), however for 10 m/s velocity, the frequency is 88 Hz more than what it should be (for both ground clutter and ground target), for 20 m/s it is 88*2 Hz more and so on. I am not sure if I'm missing some parameters, my phased.RangeDopplerResponse object is defined as follows
myResponse = phased.RangeDopplerResponse('RangeMethod','Matched Filter', ...
'PropagationSpeed',c, 'DopplerOutput','speed',...
'SampleRate', fs,'OperatingFrequency',fc,...
'DopplerFFTLengthSource','Property', ...
'DopplerFFTLength',1024);
Also, the limit on doppler frequency is supposed to be -PRF/2 to PRF/2 but it is a bit beyond that. This is not of too much concern, but the bias on doppler frequency is an issue. Any help or clarification is greatly appreciated. thanks
Answers (1)
Honglei Chen
on 25 Jul 2014
0 votes
Hi Ramesh,
Is it possible for you to provide a little more details? Like what are the fs and fc? What are the position and velocity of the radar and the target? Otherwise it's hard to guess the issue.
3 Comments
ramesh
on 25 Jul 2014
Honglei Chen
on 28 Jul 2014
Edited: Honglei Chen
on 28 Jul 2014
I don't quite get why you say the correct Doppler frequency is 597 Hz. In fact I get neither 597 Hz nor 686 Hz. Based on what you have
rpos = [0;0;3000];
tpos = [8.5e3;0;0];
rvel = [50;0;0];
tvel = [0;0;0];
The relative speed I get is
rspeed = radialspeed(tpos,tvel,rpos,rvel)
About 47.15 m/s. So the corresponding Doppler is
c = 3e8;
Fc = 10e9;
fd = 2*tvel/(c/Fc)
This turns out to be about 3.14 kHz.
The following code shows a simple example I made based on your description. The PRF is made up but it should work for other values too. The figure I get correctly identifies the speed at about 47.15 m/s. Maybe you can take a look and see what I missed?
c = 3e8;
Fs = 10e6;
Fc = 10e9;
rpos = [0;0;3000];
tpos = [8.5e3;0;0];
rvel = [50;0;0];
tvel = [0;0;0];
dmax = 12e3;
prf = c/(2*dmax);
bw = 2e6;
myWav = phased.LinearFMWaveform('SampleRate',Fs,'PRF',prf,...
'SweepBandwidth',bw,'PulseWidth',0.1/prf);
myRadarPlat = phased.Platform('InitialPosition',rpos,'Velocity',rvel);
myTargetPlat = phased.Platform('InitialPosition',tpos,'Velocity',tvel);
myChannel = phased.FreeSpace('SampleRate',Fs,'PropagationSpeed',c,...
'OperatingFrequency',Fc,'TwoWayPropagation',true);
N = 64;
tstep = 1/prf;
for m = 1:64
[rpos,rvel] = step(myRadarPlat,tstep);
[tpos,tvel] = step(myTargetPlat,tstep);
x = step(myWav);
y(:,m) = step(myChannel,x,rpos,tpos,rvel,tvel);
end
myResponse = phased.RangeDopplerResponse(...
'RangeMethod','Matched Filter', ...
'PropagationSpeed',c, 'DopplerOutput','speed',...
'SampleRate', Fs,'OperatingFrequency',Fc,...
'DopplerFFTLengthSource','Property', ...
'DopplerFFTLength',1024);
plotResponse(myResponse,y,getMatchedFilter(myWav));
Categories
Find more on Range and Doppler Estimation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!