What a metal detector hears, 10 Hz to 1 MHz
Response of a gold nugget, an iron sphere and magnetic, viscous, slightly salty ground across frequency. Below that, the noise floor of an air-cored coil versus a fluxgate. Drag the sliders. Hover any chart for values.
The quantity plotted is the response ratio: the field returned by the object, averaged over the receive coil, divided by the transmitter's own field at the coil centre, in parts per million (ppm). In-phase (I) is the part in step with the transmit current. Quadrature (Q) is the part lagging 90°; a lossy (resistive) response is plotted as positive Q. Phase φ = atan2(Q, I), in degrees.
Book links open your saved Zotero PDF at the right page in a new browser tab. Ripka = Magnetic Sensors and Magnetometers (2001); Overton = Overton & Moreland, Inside the Metal Detector. Page numbers in the link text are the printed book pages.
Glossary: read this first
- Primary field
- The magnetic field made by the detector's own transmit coil, Bp (tesla, T). Read: Overton, §5 Induction, p.47 · Overton, Induction balance, p.49
- Secondary field
- The field that objects in the ground send back in response to the primary. This is the only thing the detector actually wants to hear. Read: Overton, Eddy currents, p.50
- ppm
- Parts per million: secondary field ÷ primary field at the receive coil, × 10⁶. A 1.3 g nugget whose centre is 15 cm below a 30 cm coil is roughly 0.2 ppm; the soil under it is thousands of ppm.
- In-phase (I)
- The part of the secondary field that rises and falls exactly in step with the transmit current. A magnetic material (pulls field in) gives positive I. A good conductor (pushes field out) gives negative I. Read: Overton, Phase demodulation (X/R channels), p.70
- Quadrature (Q)
- The part that lags the transmit current by a quarter cycle (90°). It comes from energy loss: resistance in eddy currents, or magnetisation that can't keep up. Plotted here as positive for lossy responses. Read: Overton, Phase demodulation, p.70
- Phase φ
- The angle of the response, φ = atan2(Q, I), in degrees. 0° = purely magnetic, 90° = purely lossy, 180° = perfect conductor pushing field out. Read: Overton, Ch.7 Target discrimination, p.69
- Phasor
- A single frequency's response drawn as an arrow from the origin to the point (I, Q). Its length is the amplitude; its angle is the phase.
- Response size |M|
- How big an object's response is at one frequency, regardless of phase: the length of its phasor, |M| = √(I² + Q²), in ppm. (M is the object's complex response, holding I and Q together.)
- Eddy currents
- Loops of current induced in a piece of metal by a changing field. The changing field (∝ frequency) drives them; the metal's resistance limits them. Read: Overton, Eddy currents, p.50
- Time constant τ and corner frequency fc
- τ (seconds) is how long eddy currents in an object take to die away after the field stops. For a non-magnetic sphere of radius a (m) and conductivity σ (siemens per metre, S/m), τ = μ₀σa²/π², where μ₀ = 4π×10⁻⁷ H/m. A magnetic sphere (relative permeability μr) holds its currents longer: τ = μ₀μrσa²/q², with q between π and 4.49 (see the definitions at the bottom). The corner frequency fc = 1/(2πτ) (Hz) is where the quadrature response peaks. Far below fc the object is nearly invisible. Far above it the response is flat and says nothing about the material. Read: Overton, PI target response, p.146
- Magnetic susceptibility χ
- How strongly a material magnetises in an applied field (dimensionless, SI units). Air is ~0, quartz sand ~10⁻⁵, iron-rich soil 10⁻³ to 10⁻², pure magnetite ~3. Read: Ripka, §1.1.2 Field and matter, p.4
- Magnetite, maghemite
- Magnetic iron oxide minerals. Maghemite forms when iron-rich soil weathers in hot climates, and it is what makes Australian goldfield soil "hot". Read: Overton, Mineralization effects, p.60
- Laterite, ironstone, hot rock
- Laterite is deeply weathered, iron-rich soil. Ironstone is a rock cemented by iron oxides. A hot rock is a lump whose magnetic response differs from the surrounding soil, so the detector beeps on it as if it were metal. Read: Overton, Mineralization effects, p.60
- Superparamagnetic grains
- Magnetic grains so small (about 10–30 nm) that ordinary room-temperature thermal jiggling is enough to flip their magnetisation back and forth. Each grain flips on its own characteristic timescale, its relaxation time τN (s). Read: Ripka, §1.2.2 Ferromagnetism, p.11 (one-line mention only)
- VRM (viscous remanent magnetisation)
- In detector usage: the soil's sluggish magnetic response from superparamagnetic grains. When the field changes, the soil's magnetisation doesn't jump to its new value. It creeps there over microseconds to seconds, because different grains relax at very different speeds. "Viscous" means lagging, like syrup. In a frequency-domain detector this shows up as χ dropping slightly as frequency rises, plus a small constant quadrature. In a pulse detector it shows up as a slow 1/t decay that mimics a target. (The term is borrowed from rock magnetism, where it strictly means magnetisation slowly acquired over geological time. Detector engineers use it for the same relaxation physics on short timescales.) Read: Overton, PI ground balance: "magnetic viscosity", 1/t, p.174 · Overton, PI for nugget hunting, p.155
- FD (frequency dependence)
- How much the soil's susceptibility drops per tenfold (one decade) increase in frequency, in %. A practical measure of how much VRM the soil has. Ordinary soil is ~0–2 %; soil rich in fine maghemite is ~5–15 %. Neither Zotero textbook covers frequency-dependent susceptibility of soils.
- Ground conductivity σg
- How well the soil carries current (S/m). Dry soil is ~0.001–0.01; salty groundwater is 1–5. Conductive ground behaves like a huge, weak conductor, so its quadrature rises steadily with frequency. Read: Overton, Multi-frequency: notching out salt, p.193
- Clutter vs noise
- Clutter is unwanted signal caused by the transmitter itself, here mainly soil the detector failed to cancel. It grows with transmit power exactly as the gold does, so more power never helps against it. Additive noise exists whether or not you transmit: coil thermal noise, amplifier noise, mains hum, lightning. More power or more averaging time does help against it.
- Soil patchiness v and model error ε
- Sweeping the coil removes the steady soil background, so only variation in the soil across a target-sized patch can mimic a target. v (%) is how much each soil ingredient varies over that distance. ε (%) is the share of that variation that follows none of the model's soil shapes. Neither is known for real goldfield soil, and your library has no numbers for them; they have to be measured.
- Depth falloff (1/z⁶)
- The transmit field reaching a target falls as 1/z³ with distance z (m), and the field the target sends back falls as 1/z³ again, so the signal falls as 1/z⁶ once z is larger than the coil radius R. Doubling the depth costs 64×. Detection depth for a coin-sized target is roughly the coil diameter, and for a target at depth z the best coil radius is about R ≈ z. A bigger coil sees deeper but small targets less well. Overton, Coil sensitivity, p.196–197
- Ground balance
- What a single-frequency detector does to ignore soil: it measures only the part of the response perpendicular to the soil's phasor. This fails when the soil's mix (and so its phase) changes from place to place. Read: Overton, VLF detector with ground exclusion balance, p.87 · Overton, PI ground balance, p.174
- Probe frequency
- One frequency you pick with the slider (Hz). It stands for what a classic single-frequency detector running at that frequency would see. It sets the solid "probe" line on the charts, the dots in the phasor plane, the table, the two "Single tone" boxes and the sensor ratio box. The multi-tone fit does not use it.
- Tone
- One transmit frequency. A multi-tone detector sends several at once and measures I and Q at each. Read: Overton, Multi-frequency design, p.193
- Least-squares soil fit
- Find the amounts of the three soil ingredients (χ, the VRM slope Δχ, σg) that best explain the readings at all tones. Whatever is left over (the residual) is signal the soil can't explain, which is a target. Read: Overton, Multi-frequency subtraction, p.193
- Noise density (T/√Hz)
- A sensor's random noise expressed as an equivalent magnetic field per square root of measurement bandwidth. For example, 10 pT/√Hz averaged over 100 Hz bandwidth gives 10 × √100 = 100 pT rms. 1 pT = 10⁻¹² T; 1 fT = 10⁻¹⁵ T. Read: Ripka, §1.4.4 Noise, p.41
- Air-cored coil
- A loop of wire. Its output voltage is V = ω·Nc·A·B, where ω = 2πf (rad/s), Nc is the number of turns, A the loop area (m²) and B the field (T). The output grows with frequency. Read: Ripka, §2.1 Air coils, p.48 · Ripka, §2.1.1 Voltage sensitivity, p.51 · Ripka, §2.1.2 Thermal noise, p.52
- Self-resonance
- The coil's own inductance L (henries, H) and stray self-capacitance Cs (farads, F) form a resonant circuit at f = 1/(2π√(LCs)). Just below it the coil gets a free boost; above it the coil stops working. Read: Ripka, §2.1.3 Parasitic capacitances, p.53 · Overton, App. A Air-cored coil calculator, p.207
- Fluxgate
- A sensor that drives a magnetic core in and out of saturation at the excitation frequency fexc (Hz) and reads the external field from the asymmetry. It measures B directly, down to DC, but can only follow fields slower than about fexc/10. Read: Ripka, Ch.3 Fluxgate sensors, p.75 · Ripka, Sensitivity rules, p.88 · Ripka, Tuned output, p.98
- White floor, 1/f noise
- White floor: noise density that is the same at all frequencies. 1/f noise: extra noise that grows at low frequencies, below the corner frequency fk (Hz). Read: Ripka, §1.4.4 Noise, p.41 · Ripka, §3.9 Fluxgate noise, p.105
In-phase I(f)
Positive means magnetic (pulls field in). Negative means eddy currents push field out. Read: Overton, Ch.7 Target discrimination, p.69
Quadrature Q(f)
A conductor peaks at its corner frequency fc. Viscous magnetic soil (VRM) gives a small constant quadrature. Salty, conductive ground rises in proportion to f. Read: Overton, PI target response, p.146 · Overton, Multi-frequency, p.193
Phase φ(f)
Ground sits near 0° at every frequency. Gold sweeps 90°→180°. Iron starts near 0° (magnetic) and only swings towards 180° far above its corner frequency; for a solid steel sphere that is above 1 MHz. Read: Overton, Table of target phase angles, p.70
Phasor plane at the probe frequency
Loci traced as f sweeps 10 Hz → 1 MHz, each normalised to its own largest magnitude. Dots mark the probe frequency. The three soil arrows show how the ground phasor moves when soil content changes. Read: Overton, Mineralization effects, p.60
Can a multi-frequency detector subtract the soil without subtracting the gold?
The problem. Over a nugget the detector measures soil + gold. The soil part is thousands of times bigger, and how much soil there is (and of which kind) changes from spot to spot, so it can't be measured once and subtracted forever. It has to be estimated from the same measurement that contains the gold. The danger is that the estimate absorbs the gold too: if some mix of soil could produce exactly the gold's signal, the detector subtracts it as soil and the nugget vanishes.
What this panel simulates.
- The detector transmits N tones (frequencies) spread evenly on a log scale across the shaded band, and measures I and Q at each: 2N numbers per spot.
- It models the soil as a mix of three known shapes: magnetic (χ, flat in-phase), viscous VRM (Δχ, sloping in-phase + flat quadrature), and salt (σg, quadrature rising with f). See the glossary. Two assumptions are compared. Mix known: the proportions of the three are known (from ground-balancing somewhere nearby) and only the total amount of soil under the coil is unknown, so there is 1 unknown. This is what a classic ground balance assumes. Mix unknown: all three amounts are free, so there are 3 unknowns. This is the honest case on patchy goldfield soil and hot rocks.
- It finds the soil amounts that best explain the 2N numbers (a least-squares fit) and subtracts that soil estimate.
- What remains is the residual: the part of the gold's signal that no mix of soil could imitate. That is all the detector can still see.
For the dots, the soil is assumed to follow the three shapes exactly and there is no noise, so only the gold needs to be fed through the fit: the dots show what of the gold survives the soil subtraction. The table below then adds back what this hides: the soil's departure from the model (clutter) and sensor noise.
How to read the chart. Orange lines: the gold's true in-phase (solid) and quadrature (dashed) response, scaled so gold's peak size is 1. Shaded band: where the tones are; the probe tone is added to them. Black dots: what is left at each tone after subtracting the fitted soil, under the assumption picked with the buttons (filled = in-phase, hollow = quadrature). Dots sitting on the orange lines would mean nothing was lost. Dots at zero mean the nugget is invisible.
Read: Overton, Multi-frequency design, p.193 · Overton, PI ground balance, p.174The comparison table. Each cell is a ratio: the gold signal left after the soil fit, divided by whatever is left that could be mistaken for gold. Two things can be left:
- Soil clutter: the detector sweeps and subtracts the running background ("motion mode", Overton p.92), so uniform soil cancels however badly it is modelled. What can hide a nugget is how the soil varies across a target-sized patch, set by "Soil patchiness v". The fit removes whatever part of that variation it can describe with its soil shapes. With the mix known, only a change in the amount of the same soil is removable, and any change in the mix leaks through. A further fraction ε of the variation follows no model shape at all. The detector compares what is left against the expected gold shape (a matched filter), so only clutter that resembles gold counts. The mix leak has a known shape and its resemblance is computed exactly. The unmodelled part ε has an unknown shape: by default it is treated as random, which over 2N measurements resembles gold by about 1/√(2N). The toggle switches to the worst case, where it is shaped exactly like gold. All of this is a response to the transmitter, like the gold, so transmit power cancels out of signal-to-clutter.
- Additive noise: coil and amplifier noise from the sensor panel, averaged over the dwell time T. This does not scale with the transmitter, so more ampere-turns help here. Total transmit power is fixed and shared across the tones. Interference (mains, lightning, VLF stations) is also additive but is not modelled.
The big number combines both, 1/√(1/SCR² + 1/SNR²). The line underneath says which one limits. With the default settings soil clutter is the limit by a wide margin, so detection barely depends on power. In deep-target cases noise can take over: try a 0.5 m target with a small coil. Read down a column to compare one tone with many under the same soil assumption, and across a row to see what not knowing the soil mix costs.
Things to try.
- Number of tones = 1. Nothing survives. One tone gives 2 numbers (I and Q) but the soil has 3 unknown amounts, so some soil mix can always match the reading exactly. A single-frequency detector can't tell gold from a change in the soil without extra assumptions.
- Shrink the nugget until its corner fc is above the band. Inside the band its quadrature then rises with frequency, just like salt, and it gets absorbed.
- Grow the nugget until fc is below the band. It then looks like flat negative in-phase, the same as slightly less magnetic soil, and it gets absorbed.
- Conclusion: gold survives when the band brackets its fc, because only there does it show its peak, which no soil shape has. Wider bands keep more sizes of nugget visible.
Why "mix known" is a trap. With the mix known, even one tone keeps most of the gold. But that rests on the soil's proportions being exactly right under the coil. The last box above shows how small an error in the soil's phase produces a fake signal as large as the nugget. On the defaults it's a few hundredths of a degree. Real soil varies far more than that from spot to spot, which is why single-frequency detectors chatter on mineralised ground. In the "mix unknown" column one tone gives nothing (2 numbers can't pin down 3 unknowns), while many tones still recover the gold, without needing the soil to stay the same.
Why adding tones stops helping. The clutter and the gold are both measured on the same tones, so adding tones grows both together. Signal-to-clutter depends only on shapes: how unlike any soil mix the gold looks across the band (the "share" box), and how big the soil error is. Extra tones help only until the band brackets the gold's corner frequency and the soil shapes are pinned down; after that the limit is ε.
Sensor noise floor: field-equivalent noise Bn(f)
Lower is better. A coil's output is V = ω·N·A·B, so its noise referred to field falls as 1/f until the coil's self-resonance, then rises steeply. A fluxgate measures B directly with a flat floor down to near DC, but its bandwidth is borrowed from its excitation (≈ fexc/10). Read: Ripka, §2.1.1 Coil sensitivity, p.51 · Ripka, §2.1.3 Coil parasitic capacitance, p.53 · Ripka, §3.9 Fluxgate noise, p.105 · Ripka, §10.3.1 UXO, p.380
Where the comparison comes from. The dots are published measurements; the lines are this page's model. Air coil: the MEDA ACM-1 (45 cm diameter, voltage noise 0.32 pT/√Hz at 20 Hz and 0.1 pT/√Hz at 100 Hz). Ripka Table 2.2, p.66 · p.48. Ferromagnetic-cored induction coils: 10–20 fT/√Hz at 1 kHz, 4 fT/√Hz at 10 kHz, 2 fT/√Hz at 50 kHz. Table 2.2, p.66 · Fig. 2.10, p.65. Best fluxgates: 4.2 pT/√Hz at 1 Hz (17 mm amorphous ring core) and 8–11 pT rms below 10 Hz. Ripka §3.4, p.89–90. Ripka's own summary is that fluxgates win at ultralow frequency or where size is limited. p.65.
Limits of this evidence. No source here gives fluxgate noise above about 10 Hz, so the flat fluxgate floor out to fexc/10 is an assumption, and probably a generous one. The published coils are optimised instruments, mostly with ferromagnetic cores, not detector search coils. Read the gap as "hundreds to a thousand times at kHz", not as the model's exact ratio. Also, in a detector neither floor is the limit: ground and interference are thousands of times larger. In your own bench test at 8.5 kHz the coil's SNR (signal-to-noise ratio) was only 20× better, because interference, not sensor noise, set the floor.
Table at the probe frequency
Model and variable definitions
The city-grid detector: a switchable grid of loops, simulated
A 300 mm printed circuit board (PCB) carries a 16 × 16 grid of copper "streets", with a switch at every intersection. Turning switches on and off routes current around any shape made of whole cells ("blocks"), from the whole board down to one 18.75 mm cell. This tab explains the configurations simulated, the physics and noise model, and what each one achieves for a gold nugget in hot ground.
Symbols used in this tab
| Symbol | Meaning (units) | Value used |
|---|---|---|
| Geometry | ||
| n | Number of cells along each side of the grid | 16 (also 4, 8, 12) |
| N | Total number of cells, n² | 256 |
| p | Cell pitch: size of one block (m) | 18.75 mm (300 mm ÷ 16) |
| h | Height of the RX grid layer above the ground (m) | 25 mm; TX layer 1.6 mm higher |
| d | Depth of the nugget's centre below the surface (m) | 5–60 cm (8 depths), searched |
| Loops and coupling | ||
| a, b | TX and RX patterns: a list of 0/1 per cell saying which cells the loop encloses | set by the switches |
| Mkl | Response with TX on cell k and RX on cell l; every configuration reads aT·M·b | computed |
| Ba, Bb | Magnetic field per amp of the TX and RX loop at a point (T/A) | exact Biot–Savart |
| I | TX current (A), set by the power budget | ≤ 5 A and ≤ 10 W dissipation |
| f, ω | Operating frequency (Hz) and angular frequency ω = 2πf (rad/s) | f = 10 kHz |
| μ₀ | Permeability of free space | 4π×10⁻⁷ H/m |
| rank | Number of independent patterns in a set: the finest detail it can rebuild | 64 (multi-scale), 256 (cells, corner rectangles) |
| Soil and target | ||
| χ | Magnetic susceptibility of the soil (dimensionless, SI) | χ₀ = 10⁻² for the uniform background |
| σχ | Standard deviation of the soil's spatial variation left after the multi-frequency soil fit (SI) | χ₀ × 10% × ε = 10⁻⁵ at ε = 1% |
| ℓ | Correlation length of that variation: typical size of a soil 'patch' (m) | 3 cm |
| dV | Volume of one soil voxel (m³) | graded: (h + depth)/κ, from ~8 mm at the surface |
| q | Strength of the gold sphere's surviving dipole, 4π·a³·meff(a), where a is the sphere radius (m); units m³ | solved for the threshold |
| meff | Amplitude of the gold's response per tone that survives the multi-frequency soil fit | 0.055–0.09 (depends on a) |
| Noise and errors | ||
| σ | Additive noise on one reading (V): the same whatever the signal | from the receiver noise below |
| en | Amplifier voltage noise density (V/√Hz) | 0.5 nV/√Hz |
| Rrx | Resistance of the RX loop (Ω): traces plus switches, sets thermal noise √(4kBTKRrx) | 2 mm, 2 oz traces; 50 mΩ per switch |
| kB, TK | Boltzmann's constant (J/K) and temperature (K) | 1.38×10⁻²³ J/K, 300 K |
| ε | Soil-model error: the fraction of the soil's response that follows none of the fit's shapes. Sets σχ and hres | 1% (also 0.1, 0.3, 3%) |
| η | Calibration error on each configuration's uniform-soil signal (fraction); slow, so one value per configuration for the whole survey | 10⁻⁴ (also 10⁻⁵, 10⁻³) |
| σh | Uncertainty of the board's height (m), one shared value per board position, measured by e.g. radar; the inversion estimates it | 2 mm, correlated over 10 cm; a fraction ε of its soil effect survives the soil fit |
| ζ | Drift of the direct TX-to-RX coupling, as a fraction of their mutual inductance Mab (H). The error is ζ·Mab of the un-nulled coupling: an analog null subtracts a fixed copy, so it cannot cancel a change in M itself. Modelled as slow drift, shared by every spot. | 10⁻⁷ of the un-nulled coupling; slow, like η |
| ηf, ζf | Fast jitter: reading-to-reading gain error as a fraction of the reading's uniform-soil signal, and coupling jitter as a fraction of its un-nulled direct coupling. Independent per reading, so no amount of time averages it below this floor | 10⁻⁵ and 10⁻⁸ (also 10⁻⁶/10⁻⁹ and 10⁻⁴/10⁻⁷) |
| Time and detection | ||
| T | Measurement time per board-sized patch; the total survey time is 9T however many spots it is split into (s) | 10 s, or unlimited |
| τ | Time per reading, τ = 9T ÷ (spots × configurations) (s) | e.g. 90 s ÷ (25 × 32,896) ≈ 0.1 ms |
| SNR | Signal-to-noise ratio of the optimal detector, counting clutter, noise and errors together | detect when SNR reaches the search threshold t ≈ 3.5–5 (one false alarm per 100 m²) |
| SCR | Signal-to-clutter ratio: the same, counting soil clutter only | — |
1. The board
Grey lines are the streets (copper traces) and dots are the switches. The board has two identical grids: a transmit (TX) layer that carries the drive current, and a receive (RX) layer 1.6 mm below it that picks up the returning field.
The purple region shows a TX loop the switches have routed around an L-shaped block of cells. The green region is an RX loop somewhere else. Any region made of whole cells works, as long as its edge forms a closed path.
switchTX loopRX loop
2. The key fact: every loop is a sum of single cells
Four adjacent cells, each carrying the same anticlockwise current, are identical to one loop around all four: along every shared inside edge the two currents run in opposite directions and cancel. So any loop the switches can make equals the sum of the single-cell loops it encloses.
The physics is linear, so every measurement the board can make is a weighted sum of one 256 × 256 table: the response with TX on cell k and RX on cell l, called Mkl. A configuration with TX pattern a and RX pattern b (each a list of 0/1 per cell) reads aT·M·b. That one fact explains all the results below. Switching configurations can't create new information beyond M. What they change is how much signal each measurement collects, and so how much noise ends up in the estimate.
3. The configurations compared
Why corner rectangles contain every single cell
A single cell at (i, j) is the difference of four corner rectangles: R(i, j) − R(i−1, j) − R(i, j−1) + R(i−1, j−1). Every cell, and therefore every loop shape, can be rebuilt from the rectangle measurements, while each measurement itself used a large, strong loop.
3b. Why big loops can lose: two kinds of error
Every measurement is wrong by some amount, and there are two ways it can be wrong. They favour opposite loop sizes.
- Additive noise (σ, volts): the receiver's thermal and amplifier noise. It is the same size however big the signal is. A big loop collects much more signal against the same σ, so big loops win. This is the "multiplex advantage", the reason the grid uses big loops at all.
- Proportional error (ε, a fraction): errors that scale with what the loop picks up. Examples are a slightly wrong height or calibration (η, a fraction of the soil signal the loop sees), and drift in the direct TX-to-RX coupling (ζ, a fraction of the coupling, which is huge when TX and RX overlap and tiny when they're far apart). A loop that sees lots of soil carries a big absolute error even when the detail you want is small. Here small loops win.
The same effect at scale: estimate the signal s (volts) in each of N cells. Either measure each cell with its own small loop (N measurements, each with one cell's signal), or measure N big patterns that each cover half the cells (Hadamard-style) and solve for the cells. Assume the cells have similar signals. The error left on each cell is:
| N cells | Additive noise: small loops | Additive noise: big patterns | Proportional error: small loops | Proportional error: big patterns | ||
|---|---|---|---|---|---|---|
| 4 | σ | 1 σ | 1× better | ε·s | 2 ε·s | 2× worse |
| 16 | σ | 0.5 σ | 2× better | ε·s | 4 ε·s | 4× worse |
| 64 | σ | 0.25 σ | 4× better | ε·s | 8 ε·s | 8× worse |
| 256 | σ | 0.12 σ | 8× better | ε·s | 16 ε·s | 16× worse |
Each big pattern collects about N/2 cells' worth of signal. Against fixed noise that is a gain of √N/2 per cell. But each big reading's proportional error is also about N/2 times bigger, and solving for one cell can't cancel it, leaving about √N times more error per cell. For the soil problem it's worse still: the detail you want (gold, or soil variation) is tiny next to the total soil signal every big loop sees.
What this means for the grid: when time is short, additive noise dominates and big loops (corner rectangles, multi-scale squares) win by a lot. As time grows, additive noise shrinks and proportional errors take over. Each reading's gain and its direct TX–RX coupling jitter slightly from one reading to the next (fast jitter, fractions ηf and ζf). A big loop's coupling is hundreds of times a single cell's, so its jitter is too. With unlimited time this floor is all that is left, and small loops can overtake big ones; how far depends on ηf and ζf, which are swept. Slower errors behave differently. A height error shared by all configurations at one position is a single unknown the inversion can estimate and remove, so the simulations model height that way. Calibration error η and coupling drift ζ that drift slowly are modelled as one error per configuration shared by every spot, so moving the board reveals and removes them.
4. What was simulated
Six steps. Nothing is random: soil and noise enter only through their statistics, so each run gives the average performance of the best possible detector.
The fit in step 5
The simulation runs no fit on data. It computes, in closed form, how well this fit would do on average. Sizes are for 16 × 16 cell pairs on the 30 cm board.
| Input | every reading y | 32,896 configurations × 25 spots = 822,400 numbers (coil: 25) |
| Known model | each reading's sensitivity to every voxel (G), to the height error (C) and to a nugget at each candidate position (g); each reading's noise variance (D) and slow drift (E) | G: 822,400 × ~13,000 · C: 822,400 × 25 · g: 822,400 × 56 candidates |
| Unknowns | leftover χ of every voxel (prior: σχ, ℓ); height error at every spot (prior: σh, smooth over 10 cm); one slow calibration/coupling error per configuration, shared by all spots; nugget amplitude | ~13,000 + 25 + 32,896 + 1 |
| Output | SNR of a unit nugget at every candidate; from how fast it decorrelates as the candidate moves, the threshold for one false alarm per 100 m² of a search over all positions and depths | per system: SNR at 8 depths, 1 threshold |
| Algorithm | Generalised least squares (prewhitened matched filter) with covariance R = G Σ GT + C H CT + E ET + D, where Σ is the soil prior and H the height correlation; SNR² = gTR−1g. R is never formed: the slow errors are removed exactly by centring each configuration's readings across spots, the GPU sums GTD−1G over all readings, and one ~13,000 × 13,000 solve gives every candidate. Small systems (the coil) are solved directly in measurement space. | |
3D view: what each TX/RX pair senses
Boxes are the soil voxels at their true size (they grow with depth, from 1 cm at the surface to 19 cm at 45 cm), coloured by BTX·BRX: blue adds to the reading, red subtracts; voxels that barely matter are hidden. Other modes show a random example of the soil clutter, and what this pair picks up from it. Drag to rotate, scroll to zoom.
Loading 3D view…
Settings
| Board | 300 mm, 16 × 16 cells; TX layer 1.6 mm above RX; 2 mm, 2 oz traces; 50 mΩ switches |
| Coil | 300 mm square TX and RX, 30 turns of 0.4 mm wire (4.9 Ω each) |
| Drive | 10 kHz; TX current ≤ 5 A and ≤ 10 W |
| Receiver | loop thermal noise + 0.5 nV/√Hz amplifier |
| Height h | 25 mm |
| Soil | background χ₀ = 10⁻² (image-loop response); leftover σχ = χ₀ × 10% patchiness × ε, ℓ = 3 cm patches, to 45 cm depth; ε = 1% (also 0.1–3%) |
| Target | gold sphere, σ = 15 MS/m; surviving dipole 4πa³·meff(a), meff = 0.055–0.09 from the explainer tab's soil fit |
| Errors | height σh = 2 mm, smooth over 10 cm, a fraction ε of its effect survives the soil fit; calibration η = 10⁻⁴ and coupling drift ζ = 10⁻⁷, slow (one value per configuration for the whole survey); fast jitter ηf = 10⁻⁵ of each reading's soil signal and ζf = 10⁻⁸ of its coupling, independent per reading (also 10× more and less) |
| Survey | 5 × 5 spots over ±⅓ board; positions known exactly (position error not modelled); nugget position and depth unknown (searched) |
| Time | 9 × T in total per patch; T = 10 s (realistic) or unlimited (no electronic noise; jitter, soil and drift remain) |
5. Results
No results yet. The corrected model (sections 4 and 8) is being re-run; results appear here as runs finish.
Explorer. Pick the x-axis and what sets the line colour; the chips filter every other dimension. Each line is one combination of the selected values. "Gain over coil" divides by the conventional coil of the same size in the same run. Hover for the full parameters of the nearest point.
6. What we know so far
All values are the smallest compact gold sphere found at 15 cm depth in hot ground (χ₀ = 10⁻²), searching all positions and depths at one false alarm per 100 m². T (s) is the measurement time per board-sized patch; "unlimited" removes electronic noise but keeps the fast reading-to-reading jitter (ηf = 10⁻⁵, ζf = 10⁻⁸), soil and drift. ε = 1%. Where the soil check finds the model optimistic (penalty above 1.15), the mass the frozen detector actually achieves on the fine soil grid is given in brackets.
| Board, grid | Coil | Corner rectangles | Multi-scale squares | All cell pairs |
|---|---|---|---|---|
| T = 10 s | ||||
| 30 cm, 16 × 16 | 209 g | 11 g (19×) | 27 g | 3 kg |
| 30 cm, 8 × 8 | 209 g | 11 g (19×) | 12 g | 216 g |
| 60 cm, 8 × 8 | 232 g | 7.3 g (32×) | 8.4 g | 57 g |
| 90 cm, 8 × 8 | 358 g | 8.0 g (45×) | 8.5 g | 29 g |
| Unlimited time | ||||
| 30 cm, 16 × 16 | 209 g | 2.6 g | 1.2 g (achieved 1.3 g) | 0.86 g (achieved 1.0 g) |
| 30 cm, 8 × 8 | 209 g | 3.8 g | 2.0 g | 1.2 g (achieved 1.4 g) |
| 60 cm, 16 × 16 | 232 g | 2.6 g | 1.0 g (achieved 1.2 g) | 0.74 g (achieved 1.3 g) |
| 90 cm, 8 × 8 | 358 g | 4.9 g | 2.4 g | 1.2 g (achieved 1.5 g) |
- At realistic dwell, corner rectangles are the design to build. At 10 s per patch they find nuggets 19× smaller than a same-size coil on a 30 cm board and 30–45× on 60–90 cm boards. Each big loop is equivalent to every cell inside it carrying the current at once, for the power cost of one perimeter, so it collects far more signal per unit of electronic noise (the multiplex advantage). 8 × 8 cells are enough: 4 × 4 to 16 × 16 give 10–11 g on the 30 cm board.
- With unlimited time, smaller loops win. Once electronic noise is gone, the remaining floor is reading-to-reading jitter, which scales with each reading's size; a big loop's direct coupling is hundreds of times a cell's. All cell pairs become the best set, about 2.6× better than corner rectangles (30 cm, 16 × 16: 0.86 g, achieved 1.0 g, against 2.6 g), with multi-scale squares in between (1.2 g). Tiny loops need finer soil voxels than the sweep used: at its κ = 2.5 the soil check flags cell pairs as optimistic (penalty 2.1), while at κ = 3 (26,000 voxels) the penalty falls to 1.2 and the result settles; the 30 cm 16 × 16 row of the table uses κ = 3, the other unlimited-time rows the sweep's coarser voxels. The coil stays at 209 g. Time doesn't help it: most of its limit is the 2 mm height wobble leaking uniform-soil response (209 g → 77 g without it; 68 g with every hardware error removed). The grid has thousands of readings per position, so it fits each position's height from the data.
- How much time is "unlimited"? The crossover depends on the jitter floor, which is unmeasured: 10× less jitter halves every grid mass at unlimited time (corner 1.5 g, multi-scale 0.68 g, cells 0.51 g); 10× more doubles it. Gain jitter and coupling jitter matter about equally.
- The unlimited-time advantage depends on knowing the soil's statistics. Every result assumes the fit's soil model is the real soil. As a test, each filter was designed for that soil (30 cm, 16 × 16, κ = 2.5), frozen, and scored on other soils with the same point variance (masses at 15 cm, achieved on a 3 mm grid):
Smooth changes to the soil cost the grid up to 3×. Point-like clutter costs it 8–20× while barely touching the coil. Detail finer than the board height can't be imaged, so it can't be subtracted, and that subtraction is where the unlimited-time gain comes from. With hot pebbles the advantage falls from about 150× to about 10×. How much of real goldfield clutter is point-like is unmeasured; it should be measured alongside ε.Real soil Coil Corner rectangles Multi-scale squares All cell pairs As modelled (ℓ = 3 cm) 209 g 2.8 g 1.4 g 2.7 g Finer or coarser correlation (ℓ = 1–12 cm) 201–296 g 1.6–4.3 g 0.9–1.6 g 1.4–2.9 g Layered (10 cm across, 1 cm down) 230 g 4.2 g 1.8 g 3.4 g Soil below 5 cm 3× more variable 220 g 8.0 g 3.7 g 3.8 g Topsoil (above 5 cm) 3× more variable 254 g 4.0 g 2.9 g 8.7 g Plus point-like clutter (hot pebbles) of equal total power 230 g 22 g 21 g 54 g - The soil-model error ε matters for everyone, and the grid's advantage holds across ε = 0.1–3% at both dwell times. At 10 s: coil 53–536 g, corner rectangles 3.5–26 g (30 cm, 16 × 16). ε is unmeasured; measuring it on real ground is the key experiment.
- Keep the board low; the coil prefers to be lifted. At 10 s, corner rectangles go from 8.5 g at 1 cm to 37 g at 10 cm; the coil is best at 5 cm (161 g). The 1 cm unlimited-time results are not reliable (coarse voxels; penalties up to 86).
- Slow drift and ADC limits matter only at short dwell. At 10 s, 10× more calibration error or coupling drift costs the coil 2× and corner rectangles 1.3×; a 14-bit ADC without an analog null costs corner rectangles 2.6×, and a 1000× null removes the loss. With unlimited time none of these matter for the grid.
- A nugget off the patch centre is nearly as easy: at 5 and 10 cm off centre, corner rectangles need 12 and 14 g (10 s) instead of 11 g.
- The coil model is credible. In ordinary ground (χ₀ = 10⁻⁴) the model's 30 cm coil finds a coin-sized target at about 42 cm, close to Overton & Moreland's rule of about one coil diameter (2015, p. 196). Absolute masses are conservative: the nugget is a compact sphere, which gives less signal than a flatter real nugget of the same mass.
- Numerical checks. 7 × 7 spots instead of 5 × 5 change the masses by under 8%; a 3.1 mm soil-check grid instead of 6.25 mm leaves corner rectangles and multi-scale squares unchanged. The solver agrees with full fp64 arithmetic to 4×10⁻⁶ in the worst-conditioned case.
7. Caveats
- The soil-model error ε is unmeasured. It is the fraction of the soil's response that the multi-frequency fit can't describe. It sets the clutter level and how much a height change leaks through, and in hot ground it controls the conventional coil's result almost entirely. Results are given for ε = 0.1–3%; measuring it on real ground is the key experiment.
- Voxel resolution limits two results. All cell pairs at unlimited time, and every grid 1 cm above the ground at unlimited time, see soil detail finer than the sweep's voxels; the soil check flags them (penalties 2–86). For the 30 cm board, κ = 3 (26,000 voxels) resolves the cell pairs (penalty 1.2); the 60–90 cm boards would need more voxels than this GPU can hold as a dense matrix, and the 1 cm runs need κ well above 1.
- Gaussian, statistically uniform soil, known to the fit. The filters are designed for the same soil they are scored on. Section 6 tests other soils: layering and depth changes cost the grid up to 3×, and point-like hot pebbles 8–20×. The grid's unlimited-time numbers are therefore best cases.
- Geometry with one effective frequency. The multi-frequency soil fit enters only through ε and meff.
- Survey idealisations. Board positions are known exactly, the nugget is a sphere, and switching time is ignored. Thousands of configurations at 10 kHz take real time to step through; that is left to the hardware design.
- Not modelled: transmitter current and phase noise; switch capacitance and charge injection; interference; nonlinearity; Earth-field motion; soil conductivity beyond the Born approximation.
- Where the code lives:
/mnt/datasets/simulation/citygrid/code_v5run/: modelcity_v3.py, solvercity_v3_fast.py+shiftrun.py, soil checkfinek.py, sweepsweep_v5.py(not in the repo).
8. Detailed methodology
Everything the simulations do, written so the method can be reproduced or matched against the literature. Symbols are as in the table at the top of this tab; new ones are defined where they first appear.
8.1 Hardware model
- Grid. Two identical planar grids of n × n square cells of pitch p = Lb/n, where Lb is the board width (m). The RX grid is at height h above the ground and the TX grid at h + 1.6 mm. A pattern is a 0/1 vector a ∈ {0,1}N, N = n², over cells. The switches route a single-turn current around the boundary of the selected cells. By superposition this equals the sum of the single-cell loops it contains, each carrying the same circulation.
- Configuration. An ordered pair (a, b) of TX and RX patterns. Families used: all aligned squares of size 16/8/4/2 cells (multi-scale, rank 64); all single-cell pairs; the 256 corner-anchored rectangles R(i, j) = {cells (k, l): k < i, l < j}, which have full rank. Reciprocity lets only the pairs a ≤ b be measured.
- Electrical. Loop resistance R = Pe·(Rseg + Rsw)·Nt, where Pe is the number of boundary edges, Rseg = ρCup/(w t) the resistance of one trace segment (trace width w, thickness t), Rsw the on-resistance of one switch and Nt the number of turns. TX current Ia = min(Imax, √(Pmax/Ra)).
8.1b Spectral stage (multi-frequency soil fit, explainer tab)
- The detector transmits Nf = 8 tones from 100 Hz to 100 kHz and measures in-phase and quadrature at each. The soil is fitted by least squares as a mix of three spectral shapes: magnetic (χ, flat in-phase), viscous VRM (in-phase ∝ −ln f, constant quadrature) and conductive ground (quadrature ∝ f).
- Target strength. The gold sphere response M(ω) (Wait 1951; conductivity σAu = 15 MS/m) is projected out of the span of those shapes. The surviving amplitude per tone, meff(a) = ‖residual‖/√Nf, is 0.055–0.09 depending on the radius a (m). The spatial stage uses the dipole strength q = 4πa³ meff(a) (m³).
- Clutter. The soil departs from the three shapes by a fraction ε, and varies from patch to patch by v = 10%. The residual susceptibility left after the fit therefore has standard deviation σχ = χ₀·v·ε, and a height change survives the fit in the same proportion, hres = ε.
- The two stages are treated as separable: the spatial simulation runs at one effective frequency (10 kHz) with these residuals.
8.2 Fields and coupling
- Biot–Savart, finite straight segment from p₁ to p₂ carrying 1 A, at point r, with r₁ = r − p₁ and r₂ = r − p₂:
B(r) = (μ₀/4π) · (|r₁| + |r₂|) · (r₁ × r₂) / ( |r₁||r₂| (|r₁||r₂| + r₁·r₂) )
Cell field Bk(r) is the sum over its 4 edges; pattern field Ba(r) = Nt Σk ak Bk(r). - Mutual inductance between straight parallel filaments (Neumann, closed form; perpendicular filaments contribute zero). Segment 1 runs from 0 to ℓ₁ along an axis; segment 2 runs from s to s + ℓ₂ parallel to it, at perpendicular distance d⊥. With f(x) = x·asinh(x/d⊥) − √(x² + d⊥²):
M = ±(μ₀/4π) [ f(s+ℓ₂) − f(s+ℓ₂−ℓ₁) − f(s) + f(s−ℓ₁) ]
Cell–cell matrix Mkl between the TX and RX layers; pattern coupling Mab = Nt² aT M b. - Response to a small magnetic volume (first-order Born / reciprocity). A volume dV (m³) with susceptibility χ at r changes the RX voltage for configuration (a, b) by
δVab = (ω Ia / μ₀) · χ dV · Ba(r)·Bb(r)
The sensitivity kernel Ba·Bb is what the 3D view colours. - Target. A dipole of strength q (m³) at rt adds gab = (ω Ia/μ₀) q Ba(rt)·Bb(rt) to the reading. Each depth d has 7 candidates: the centre rt = (0, 0, −d) and probes offset by ±0.15 d in x, y and depth.
8.3 Soil, clutter and errors
- Soil discretisation. Voxels in layers whose thickness grows with depth z (m) as (h + z)/κ, so they resolve the sensitivity kernel, which varies on the scale of the distance to the wires. Each layer's lateral size is the largest Δ/k (k a whole number) not above (h + z)/κ, where Δ is the spacing between survey spots; so every spot shift moves the voxels by whole cells, and deep layers are capped at Δ. κ = 2.5–3 for boards up to 30 cm, coarser for larger boards. The domain extends Lb/2 + Lb/3 + 15 cm sideways and 45 cm down.
- Clutter prior. The residual susceptibility is a zero-mean Gaussian field with covariance σχ² exp(−|r − r'|/ℓ). The voxel unknowns are the voxel averages, whose covariance Σ is computed exactly by 3 × 3 × 3 sub-point quadrature. Point values at voxel centres are not used: with a rough field and a weighted detector, that understates the clutter (Kaipio & Somersalo's "inverse crime").
- Uniform soil. S0ab = (ω Ia)(χ₀/2) aTMimgb, the exact quasi-static response of a permeable half-space. Mimg is the cell–cell mutual inductance to the RX grid's mirror image at distance 2h + 1.6 mm.
- Height error. One unknown per spot, prior standard deviation σh = 2 mm and correlation exp(−|Δx|/10 cm) between spots. Its effect on reading (a, b) is cab = hres σh ∂S0ab/∂h.
- Slow drift. Calibration error η S0ab and coupling drift ζ ω Ia|Mab| combine to an error eab (V). It is one unknown per configuration, the same at every spot. The coupling term uses the un-nulled coupling.
- Fast jitter (V²): (ηf S0ab)² + (ζf ω Ia|Mab|)², independent per reading and added to the white noise. It does not shrink with time.
- White noise per reading (V²): (4kBTKRb + en²)/τ, where τ = 9T/(Nspots Ncfg) is the time per reading (s). In the ADC runs it also includes (ω Ia|Mab|ν/SNRADC)²/(fs/2)/τ, with ν the analog null factor, SNRADC = 10(6.02B+1.76)/20 for B effective bits, and fs the sample rate (Hz).
8.4 Detector, search and figure of merit
- Measurement model: y = α g + G w + C θ + E ξ + n, where:
- w ~ N(0, Σ) is the soil;
- θ ~ N(0, Hcorr) is the height;
- ξ ~ N(0, I) is the slow drift, with E holding eab in every spot's row for configuration (a, b);
- n ~ N(0, D) is the white noise.
- Exact elimination of the drift. Each configuration's e and D are the same at every spot, so marginalising ξ is the same as centring that configuration's whitened readings across the N spots: r → r − (γ/N)Σspots r, where γ = 1 − (1 + N e²/D)−1/2. The rest is the information form: Λ = [[Σ−1 + GcTGc, GcTCc], [·, Hcorr−1 + CcTCc]], where the subscript c marks the centred, whitened rows, and SNR² = gcTgc − uTΛ−1u. Systems with at most 6,000 readings are solved directly in measurement space instead.
- Search over position and depth. The filter output's correlation between each depth's centre and its probes gives the roughness Λs = diag(λx, λy, λz) (1/m²). With the Euler-characteristic densities ρ3(t) = (t² − 1)e−t²/2/(2π)² and ρ2(t) = t e−t²/2/(2π)3/2, the expected false alarms per m² of a search over 5–60 cm are L3ρ3(t) + L2ρ2(t), where L3 = ∫√(λxλyλz) dz and L2 is the top and bottom face term (Worsley et al. 1996). t is set for 0.01 false alarms per m². A brute-force search over 9,261 candidates agreed within 10% (coil) and 1.5× in rate (cell pairs), under 0.1 in t.
- Minimum mass. The nugget is found with 50% probability when its SNR reaches t: qmin = t / SNRper unit q, and mmin solves 4πa³ meff(a) = qmin.
8.5 Algorithm (pseudocode)
for each system S (conventional coil | grid family):
configs (a, b), a ≤ b; I_a = min(I_max, sqrt(P_max / R_a)); tau = 9 T / (N_spots · N_cfg)
S0, dS0/dh, coupling M_ab from exact image-loop / Neumann mutual inductances
D = white noise + fast jitter; e = slow drift; gamma = 1 − (1 + N e²/D)^(−1/2)
F = whitened rows of every config for the board at the origin, on the voxel grid extended by the spot range
rows at spot p = F re-indexed (spot shifts are whole voxels): G_p = F[:, idx_p]
H = Σ_p S[idx_p, idx_p] − Aᵀ diag(γ(2 − γ)/N) A, S = FᵀF, A = Σ_p G_p # GPU fp32, S in row panels
Λ = [[Σ⁻¹ + H, h_c], [h_cᵀ, H_corr⁻¹ + C_cᵀC_c]]; factor Λ (GPU fp32, diagonally scaled)
refine: r = exact centred residuals of all readings (fp64-accurate); x ← x + Λ⁻¹(Gᵀr − Πx)
until the objective and the frozen weights' soil variance have both converged; M = J(x) − correction
if refinement stalls (tiny noise floor): redo with H accumulated in fp64 on the CPU
t = search threshold from M; q_min = t / sqrt(M_centre); m_min from m_eff(a)
check: freeze w = R⁻¹g; soil variance of w on a continuum grid of spacing ≤ min(7.5 mm, p/3, h/2)
K(x) = Σ_δ U_δ ⊛ Φ_δ (one FFT convolution per TX→RX cell offset δ); var = w^T(D + EE^T + CHC^T)w + soil(K)
8.6 Numerical checks
- Brute force. On small cases the solver matches a dense R built explicitly in fp64 to 2×10⁻⁴–6×10⁻⁴, the limit set by rounding the rows themselves to fp32.
- fp64 reference. For 16 × 16 cell pairs at unlimited time (the worst-conditioned case), the SNR agrees with a full fp64 accumulation to 4×10⁻⁶ at every depth. The previous fp32 code, without refinement, was off by up to 3×10⁻³ there.
- Soil resolution. Every detector is frozen and its soil variance recomputed on a regular continuum grid; the ratio of model to achieved SNR (the penalty) is reported with each result, along with the mass the frozen detector actually achieves. The grid spacing is at most a third of a cell: on a 15 cm board a 7.5 mm grid missed most of the effect (penalty 1.3 instead of 3.6 for cell pairs), while halving 3.1 mm to 1.6 mm changes corner rectangles by 3%. The check's convolution form matches a direct evaluation to 10⁻⁶.
- Penalty arithmetic. The achieved variance is the sum of the frozen weights' noise, drift, height and fine-grid soil terms, each computed directly. (Subtracting the model's soil term from the model's total, as before, cancels badly when time is unlimited.)
- Unlimited time. T = ∞ removes the electronic noise; the fast jitter keeps the covariance non-singular. Without it, full-rank switch sets improve without limit, because they fit the discretised soil exactly.
8.7 Terms for a literature search
The pieces of this method each have established names. The combination (a switch-reconfigurable coil matrix used as a multi-static electromagnetic induction array, with a joint inversion for near-surface soil clutter, for small-target detection) is what to search for.
- Hardware: reconfigurable / switchable coil matrix; multi-static or MIMO electromagnetic induction (EMI) array; magnetic induction tomography (MIT); coil arrays for UXO classification (e.g. TEMTADS, MetalMapper); induction-balance coil design; programmable bucking/nulling of TX–RX coupling.
- Physics: Born approximation for EMI with magnetic soil; sensitivity kernel / Fréchet derivative BTX·BRX; reciprocity theorem for coils; magnetic polarizability of a conducting sphere (Wait 1951); viscous remanent magnetisation (VRM) and frequency-dependent susceptibility of soils; soil compensation for metal detectors.
- Signal processing: generalised least squares; prewhitened matched filter in correlated Gaussian clutter; detection in clutter with a Gaussian-process prior; Woodbury identity; nuisance-parameter marginalisation; Hadamard / multiplex (Fellgett) advantage and its loss under signal-proportional noise; optimal experimental design for linear inverse problems.
- Analogies: MRI receive-coil arrays and parallel imaging (SENSE, g-factor); synthetic-aperture and MIMO radar; electrical impedance tomography.