Phased array Channel problems with user fed position and velocity data.

2 views (last 30 days)
Hello,
I am having a bit of problem with phased array toolbox's channel functions. Normally in the tutorials, it is shown that the target and sensor have their initial position and velocities. Then according to the pulse repetition frequency (prf), the target and sensor are moved in space using their velocities. Then these position and velocity vectors are fed into channel function to calculate the attenuated signal. This works fine.
My problem is that, I use my own position and velocity vectors for target (sensor is stationary and at [0;0;0] for example). These position and velocity vectors are sampled at, say 1 millisecond intervals, the acceleration is also non-constant in this case, just for additional information. However, my prf is not an integer multiple of my sample interval. Thus, I simply employ a nearest neighbor algorithm to find the closest time point my prf (and its multiples since in a coherent time interval I have n pulses) stands for in the target's time vector, extract the position and velocity values at that time instant, and then feed them to the channel function. After this, I simply draw the range-Doppler response. In the range axis, I see the target at correct range, however, in the Doppler axis, I see 2 similar peaks that are couple of Doppler bins apart from each other, instead of just 1. I checked whether this is due to the acceleration, but my acceleration is just too small at the time instants I am looking at, as an example, the target's speed is 10 m/s at the 1st pulse and 10.01 at the end of nth pulse.
Then in order to make a quick check, I tried the following, I simply extracted the position and velocity vectors at the start of the time instant of 1st pulse, supplied the position and this velocity to the platform system object and let it move the target to the new position with this velocity. Then I updated the velocity with my nearest neighbor algorithm and again let the platform system object to move the target to next position. In this case I observed a single peak at the output of the range-Doppler plot, which is the correct answer as well.
But why does this happen? Isn't channel object simply takes velocities and positions, so it should simply shift the signal and add a simple exponential due to velocity? So why would it show multiple peaks at distant locations (and in the wrong locations as well) in the Doppler axis? Considering the velocity of the target doesn't change pretty much at all during the coherent integration time this shouldn't happen (hence it's not migrating in the Doppler axis due to the change in velocity). It feels like the channel object have a sort of memory mechanism inside that keeps the previous location and speed of the data. But since my sampling is nonlinear (due to the prf not being an integer multiplier of the sampling interval of the target's motion), maybe it finds a negative correlation between the consecutive position and velocities of data, thus cannot decide if the target is moving towards the radar or away from the radar. However, this doesn't make sense as well. Why would channel object care about target's previous position and velocity at all?
Sorry for the long question but I am not able to post codes due to privacy issues.

Answers (1)

Honglei Chen
Honglei Chen on 2 Nov 2017
Is it possible to share some of these parameters, like the position, velocity, and acceleration, as well as the prf and the sampling rate. This way I can try to reproduce the issue on my end. It's not very clear to me the difference between the two approach yet, so some code example would help a lot. I don't need the entire program, just the part you extract the position and velocity and then feed them into channel. If it helps, you also just shoot me an email via my author page.
My guess would be it has to do how you put signals together. The Doppler processing requires coherence across the pulses. Therefore, if the signals are not well aligned, the Doppler processing may give misleading results. That's part of why we currently requires the sample rate to be a multiple of PRF so the signal can be properly aligned. But that's just my guess.
HTH
  1 Comment
Tunç Arslan
Tunç Arslan on 3 Nov 2017
I believe it is a problem of signals not aligning as well due to my "weird" way of re-sampling them. I unfortunately can't share any code snippets due to privacy issues.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!