|
Home |
The Doppler Toolkit |
|
|
The Doppler toolkit is a collection of C++ classes that provide functions and features necessary for removing the timebase contraction in multi-channel time series data. The principle feature of the toolkit is a multi-channel systolic digital resampling filter; the primary numerics in the toolkit provide the mapping from transmitter time to receiver time, and vice versa. The toolkit includes interfaces for some common (albeit custom) acoustic data file formats, and interfaces to several formats of tabulated platform 3-D position. This toolkit was developed under the ONR Long Range Deep-Water Propagation effort, primarily for the 2004 Long Range Ocean Acoustic Propagation Experiment (LOAPEX). This experiment involved a ship-suspended transmitter deployed to depths from 350~m to 800~m in the North Pacific. Signals were sent from the transmitter to a variety of receivers, including bottom-moored vertical line arrays (VLAs) and bottom-moored horizontal line arrays. A prominent feature of this experiment is that the transmitter (the VLAs) moved around the design position on time scales of minutes (hours), and on spatial scales of 10~m (hundreds of meters). This experiment therefore involved a moving transmitter platform, and possibly a moving receiver platform, as shown in the figure below. The toolkit evolved from the need to understand the effects on the received signal of the interplatform motion, and the possible need to remove those effects. Although built for analysis and processing of LOAPEX 2004 data, the toolkit was designed to be easily extended to handle scenarios for other moving platform experiments. The only restriction are that the 3-D positions of the transmitter and receivers with respect to time are known and have been provided in data files, and the platform velocities are much less than the local Mach number, which is the case in almost all underwater acoustic scenarios. As an example, a test scenario was devised in which the transmitter and receiver were revolving in circular orbits whose centers were separated by 50 km. The transmitter radiates a sinusoid; The radiated signal had a carrier of 75 Hz. The toolkit is used to dopplerize this signal, generating the discrete-time signal that would have been captured by the receiver. A dedopplerizing filter of order 21 was constructed using toolkit classes, and the received signal processed back to an estimate of the transmitted signal. To demonstrate performance, the autospectra of both discrete time signals are shown below. The sampled, dopplerized signal has considerable "doppler spreading", whereas the dedopplerized signal has reconstructed the original single frequency Fourier component with sidelobe errors down more than 35 dB --- the broadband error spectrum is more than 55 dB down. Note that the "doppler spreading" is not a function of spectral leakage in the spectral estimation routine, because the window size exactly encompassed an integral number of original periods, and a uniformly valued taper was used. There is a user's manual and a huge reference (generated automatically by Doxygen) available. The documentation includes a discussion of the mathematical fundamentals and numerical implementations, class interfaces, the suite of class test code, and some examples of using the toolkit in complete applications. The source was developed under GCC 3.3.5 on various Linux machines and uses the STL. The code can be obtained by email from Rex Andrew, randrew at apl dot washington dot edu . |
||