Range Doppler Response has a linear bias

조회 수: 4 (최근 30일)
ramesh
ramesh 2014년 7월 24일
편집: Honglei Chen 2014년 7월 28일
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

답변 (1개)

Honglei Chen
Honglei Chen 2014년 7월 25일
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
Honglei Chen
Honglei Chen 2014년 7월 28일
편집: Honglei Chen 2014년 7월 28일
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));
ramesh
ramesh 2014년 7월 28일
편집: ramesh 2014년 7월 28일
Hi Honglei,
I think I figured out what was happening. It is partly my fault. My PRF was 10 KHz which gives me about 15 km of unambiguous range, my targets were at around 9 km so I didn't need to sample beyond a particular index and my code did exactly that. But when I used matlab's RangeDopplerResponse, I think it assumed that my ranges went from 0 to 15 km which caused my limit on doppler frequency to go beyond prf/2 (in negative and positive side) like I mentioned in my original post. I think that is what caused the doppler frequency to be incorrect. Now that I have removed the max-range limit, the problem is rectified.
I greatly appreciate your help. thank you

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

카테고리

Help CenterFile Exchange에서 Range and Doppler Estimation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by