An arriving radio frequency signal incident on two antennas separated physically will produce signals in each antenna that have a difference in phase determined by the spacing between the antennas, the wavelength of the arriving signal, the spatial angle of incidence, as well as possible interference patterns caused by multiple propagation paths and local reflections. If the signal from each antenna is fed into phase locked receivers (typically called “diversity mode”), the audio output from the two receivers will have the same relative phase difference as the RF between the two antennas. This application processes the receiver audio output via the computer sound card to distinguish between multiple arriving signals that are on the same frequency but are arriving at different spatial angles. The actual angles of arrival do not need to be known … the only requirement is that they be different enough to distinguish one signal from any others.
Fast Fourier Transformation (FFT) processing is used to accomplish this task and is different than other phasing techniques that simply use sum and difference with amplitude equalization. An FFT transforms a time varying signal into discrete bins that are typically used for spectrum displays using the frequency information, but the FFT bins also contain phase information and this application uses that phase information to spatially distinguish one signal from others.
More specifically, this application uses Minimum Variance Distortionless Response (MVDR) adaptive beamforming techniques that statistically determine the appropriate complex weights to be applied to each FFT bin so that voice signals (which are actually comprised of multiple varying frequencies) can be spatially distinguished based upon their relative phase. With only two antennas the sorting effect isn’t perfect and it isn’t distortionless, but significant separation is still possible with reasonable intelligibility. In Peak mode, a particular FFT bin (or narrow range of bins) representing a particular phase is enhanced and the energy in all other FFT bins is diminished. In Null mode, the selected bins are greatly diminished and all other bins are essentially left as is.
The application is completely browser based and should run on most computers. The hardware requirements are two antennas spaced apart (ideally in the range of 0.4 wavelength), two phase locked receivers, and a computer soundcard with a stereo line input. The feedlines between the two antennas and the two receivers do not need to be the same type or the same length. The application selects a signal based upon the phase difference from the two antennas, and since that selection is user variable, within reason it doesn’t matter what that phase is … only that it be different from that created by any other signals.
The application can process live signals from the two phase locked receivers, or it can process a pre-recorded stereo file previously captured from the two phase locked receivers. The primary spatial selection control is Steering Phase because the RF arrival phase difference appears in the recovered audio as a mostly constant inter-channel phase relationship.
The Channel Delay Compensation control is a separate calibration used only at initial setup. It is used to remove any unwanted linear phase slope caused by receiver, audio, or recording-path delay mismatch. The best way to remove that slope is to feed RF background noise from a single antenna into both phase-locked receivers via a Tee and change the value for the Channel Delay Compensation such that the blue line in the Steering Phase Difference versus Frequency window is level. This could be different for each transceiver and it might change from day to day, but it is determined by elements of the system other than the application. Leveling the blue line by setting the correct value for Channel Delay Compensation is critical to achieve the best ability to separate signals.
The default values for the other controls are a good starting point, but there are multiple drop down options for each of them that can be useful depending upon the degree of overlap in the signals as well as the nature of the voices themselves. Experimentation is recommended. In some situations, Nulling an unwanted signal often works best to enhance a desired signal, but in other situations using Peak works best. If using a pre-recorded file, click the Start button before clicking Play for the recording.
Lastly, the Left Peak and the Right Peak buttons make the Steering Phase slider jump to the next closest signal, although due to the nature of voice spectrum it might require more than one click of the button to do so. The Lock to Nearest Peak button tries to keep that signal locked. The Steering Phase slider will still override these buttons for fine control or searching for other signals.
A video demonstration is available at YouTube Description and Demo, and a selection of pre-recorded audio files is available at SampleRecordings.
This application was created by Dave, AB7E, using ChatGPT and is accessible free of charge at https://www.ab7e.com/SpatialSignalFilter.html.