Detector
Integrates detected power products.
The Detector converts dual-polarization complex voltages into detected power products and integrates them over time. It is the usual step between a Beamformer and a spectrometer sink: with four output polarizations it produces XX, YY, and the real and imaginary parts of the cross product XY, and with one it produces the total power XX plus YY.
How it works
Each compute cycle computes the power products of every dual-polarization sample and sums them into their integration windows. The CPU implementation performs one contiguous reduction per output sample. The CUDA implementation uses one thread per input sample and atomic accumulation. The time axis therefore shrinks by the integration rate while the polarization axis becomes the number of detected products, and the output turns real-valued.
Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
integrationRate |
integer | 1 |
Number of time samples summed into each output sample. The time axis must be divisible by this value. |
numberOfOutputPolarizations |
integer | 4 |
Detected products per sample, 1 for total power or 4 for full products. |
blockSize |
integer | 512 |
CUDA threads per block. Ignored on CPU. |
Input
| Name | Description |
|---|---|
buffer |
Contiguous CF32 tensor shaped [antennas, channels, samples, polarizations] with exactly two polarizations. |
Output
| Name | Description |
|---|---|
buffer |
F32 tensor shaped [antennas, channels, samples / integrationRate, numberOfOutputPolarizations]. |