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 it selects one of three runtime-compiled CUDA kernels based on the requested output polarization. The circular kernel 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. The single-component kernels simply gather every X or Y sample into a tensor with a single polarization axis. The conversion is a pure per-sample operation, so every other axis of the input 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. |
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. |