Range Doppler Response has a linear bias
Mostrar comentarios más antiguos
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
Respuestas (1)
Honglei Chen
el 25 de Jul. de 2014
0 votos
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 comentarios
ramesh
el 25 de Jul. de 2014
Honglei Chen
el 28 de Jul. de 2014
Editada: Honglei Chen
el 28 de Jul. de 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));
Categorías
Más información sobre Range and Doppler Estimation en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!