My implementation of a passive radar can be divided in four sections: data from
two directional antennas, filter, correlator and plotting. The first antenna receives the reference signal directly from the transmitter (radio tower) and the second antenna is directed towards the possible targets.
On the first week I will be focusing on creating a simulation, which in this case means that the data from antennas is created by a simulator block.
The simulator has to output a reference signal and an echo signal. Echo signal is a time-delayed, Doppler shifted and noisy copy of the reference signal, which is reflected from the distant target. The existing ‘channel model’ block will be a good starting point.
The biggest source of interference is the direct path signal from transmitter to both antennas. Most of this should be reduced by simply subtracting the reference signal from the echo signal. This can easily be done with the existing gnuradio blocks. Later on a better filter might be needed, but this is sufficient for the simulator.
This is the most important and the most computationally demanding part. We need to find out the delay and Doppler shift between the reference and echo signals. If we know these, we can determine the range and speed of the target.
My initial approach will be to construct N amount of frequency shifted copies of the reference signal and for each I will calculate the cross correlation with the echo signal. The output will be a Doppler-range matrix, which has peak value(s) at the speed and range of the target(s). This matrix will be transferred onwards in a form of a tagged stream.
Integration time affects the amount of cross correlated samples and therefore has heavy impact on calculation time. On the other hand longer integration times reduce the effect of noise and allows more definitive detection. These calculations are done N times. N affects the resolution of velocity detection. My mentors suggested that one approach for reducing the amount of calculations would be to keep track of known target velocities and only calculate the Doppler shifts around the last known velocity. It is very likely that there are even more efficient solutions that I’m unaware of. After I complete coding this block, I can test how inefficient this solution actually is and how important it is to create a better one.
For plotting I will try to use the existing block in gr-radar, which is intended to give a nice plot of a Doppler-range matrix from a tagged stream. X-axis gives the range and y-axis gives the velocity of detected targets. This makes it easy to follow multiple targets at the same time.
As the passive radar is usually a bistatic radar, the range on the plot has to be scaled according to target azimuth and distance from radar to transmitter. This also means that if the targets are expected to be found from multiple azimuth angles, it gets quite difficult to show the correct ranges for each target. (Detecting multiple targets from a wider angle needs three or more antennas, which might be outside of the scope of this project.)
Feel free to post any comments! I’m only a beginner on this field and will gladly listen to any ideas and thoughts. If you have questions about passive radars, I can try to answer those aswell.