User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
ee:hydrophones:start [2018/01/28 11:11]
Ryan Summers
ee:hydrophones:start [2018/01/28 15:23]
Ryan Summers
Line 4: Line 4:
  
 ===== Introduction ===== ===== Introduction =====
-//Note: The purpose of this page is to describe how the arrival times are acquired on a number of hydrophone channels. ​This documentation does //not// describe ​how that information is turned into bearings or how it is used in localization.//+//Note: The purpose of this page is to describe how the arrival times are acquired on a number of hydrophone channels. ​Documentation describing ​how that information is turned into a pinger bearing ​is found [[cs:​hydrophones:​pinger_bearing:​start|here]].//
    
  
Line 13: Line 13:
 Further simplifications can be applied to the problem as well. By ensuring that the hydrophones are close enough, it can be guaranteed that the arrival time difference will never exceed one half wavelength (the signals are sinusoidal with a maximum frequency of 40KHz). The cross correlation now only needs to be completed within +/- half a wavelength (which increases accuracy and decreases required processing). This means that the arrival time difference can never exceed approximately 12.5 microseconds. Because the speed of sound in water is 1498 m/s, the hydrophones must be spaced within 1.8cm of each other. Further simplifications can be applied to the problem as well. By ensuring that the hydrophones are close enough, it can be guaranteed that the arrival time difference will never exceed one half wavelength (the signals are sinusoidal with a maximum frequency of 40KHz). The cross correlation now only needs to be completed within +/- half a wavelength (which increases accuracy and decreases required processing). This means that the arrival time difference can never exceed approximately 12.5 microseconds. Because the speed of sound in water is 1498 m/s, the hydrophones must be spaced within 1.8cm of each other.
  
 +To calculate a cross correlation,​ set time delays of [-12.5, 12.5] microseconds on the signal and calculate the overlapping area for each time delay. Calculating overlap is done by multiplying the value of the origin hydrophone at a time step by the value of the shifted hydrophone function at the same time step and summing up all multiplied values. When both are positive or negative, a point constructively adds to the correlation. When the signs don't match on the points, the correlation decreases. When both signals are identical, the correlation is maximal.
 +
 +==== Summary ====
 Now that the theoretical aspects are out of the way, the foundation of the problem starts to take shape. ​ Now that the theoretical aspects are out of the way, the foundation of the problem starts to take shape. ​
  
Line 18: Line 21:
   - Cross-correlate the X, Y, and Z axis signals against the reference to calculate time of flight delay.   - Cross-correlate the X, Y, and Z axis signals against the reference to calculate time of flight delay.
  
-The cross correlation step is simple mathematics. Note that cross-correlation boils down to multiplying individual points of two signals together and accumulating,​ so if the signals are big it can take quite a bit of time. We will discuss how to handle this later. +The main difficulty exists in sampling the signals. It is important that samples are taken simultaneously on each of the hydrophones and that the signals are sampled fast enough to ensure that the precision is accurate enough (for example, at a sampling frequency of 1MHz, the time of arrival can never be more precise than a single ​microsecond). Therefore, the system must be capable of simultaneously sampling four channels at a minimum rate of 1MHz.
- +
-The main difficulty exists in sampling the signals. It is important that samples are taken simultaneously on each of the hydrophones and that the signals are sampled fast enough to ensure that the precision ​in time of flight ​is accurate enough (for example, at a sampling frequency of 1MHz, the time of arrival can never be more precise than a signal ​microsecond). Therefore, the system must be capable of simultaneously sampling four channels at a minimum rate of 1MHz. +
  
  
Line 30: Line 30:
  
 ==== Code ==== ==== Code ====
-All software and firmware is available in [[https://​github.com/​PalouseRobosub/​hydro-zynq|the GitHub repository]]. There are two primary directorieshardware and software. The hardware folder contains all the Verilog and TCL files for interracting ​with Vivado. TCL scripts have been generated to rebuild the block design in vivado, and a README.txt file in proj/ describes how to use them. Additionally,​ the IO constraints file is provided for the current hardware.+All software and firmware is available in [[https://​github.com/​PalouseRobosub/​hydro-zynq|the GitHub repository]]. There are two primary directories, ''​%%hardware/​%%'' ​and ''​%%software/​%%''​. The ''​%%hardware%%'' ​folder contains all the Verilog and TCL files for interacting ​with Vivado. TCL scripts have been generated to rebuild the block design in [[https://​www.xilinx.com/​products/​design-tools/​vivado.html|Vivado]], and a ''​%%README.txt%%'' ​file in ''​%%proj/%%'' ​describes how to use them. Additionally,​ the IO constraints file is provided for the current hardware.
  
 The software folder contains all C source code used in programming the HydroZynq. An ELF file can be created by using the `mk` script supplied with the source file name.  The software folder contains all C source code used in programming the HydroZynq. An ELF file can be created by using the `mk` script supplied with the source file name.