Blade

Polarizer

Reorients the polarizations.

The Polarizer converts a dual linear-polarization complex signal into a circular basis or extracts a single linear component. The circular conversion forms the left beam as X plus jY and the right beam as X minus jY, which is the standard convention for observing circularly polarized sources with a linear feed.

How it works

When the input and output bases match, the block bypasses processing and exposes the input directly. Otherwise the CPU implementation uses a contiguous loop and the CUDA implementation selects one of three runtime-compiled kernels. The circular conversion multiplies the Y polarization by a ninety degree phasor and writes the sum and difference with the X polarization as the left and right circular components. Single-component conversion gathers every X or Y sample into a tensor with one polarization. Every other axis passes through unchanged.

Configuration

Parameter Type Default Description
inputPolarization string xy Polarization basis of the input signal. Only xy is supported.
outputPolarization string lr Output basis: lr for circular, xy to bypass, or x or y for a single linear component.
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 CF32 tensor with the same shape as the input for lr and xy, or with a single polarization for x and y.