Range Doppler Response has a linear bias
Ältere Kommentare anzeigen
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
Antworten (1)
Honglei Chen
am 25 Jul. 2014
0 Stimmen
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 Kommentare
ramesh
am 25 Jul. 2014
Honglei Chen
am 28 Jul. 2014
Bearbeitet: Honglei Chen
am 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));
Kategorien
Mehr zu Range and Doppler Estimation finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!