Skip to content

Array Factor

rfsoc_rfdc.dsp.array_factor

Classes

ArrayFactor

Bases: ABC

Abstract base class for Array Factor calculations.

This class defines the interface for beamformers and array factor computations.

Source code in rfsoc_rfdc/dsp/array_factor.py
class ArrayFactor(ABC):
    """
    Abstract base class for Array Factor calculations.

    This class defines the interface for beamformers and array factor computations.
    """

    @abstractmethod
    def get_spacing(self):
        """
        Get the physical spacing of the array elements.

        Returns:
            numpy.ndarray: An array containing the positions of the antenna elements (in meters).
        """
        pass

    @abstractmethod
    def get_bfw(self):
        """
        Calculate the complex weights for beamforming.

        Returns:
            numpy.ndarray: Complex weights for the array elements.
        """
        pass

    @abstractmethod
    def get_bfw_sim(self):
        """
        Calculate the complex weights for beamforming (Simulation Only).
        This should return ideal weights without any hardware-specific calibration.

        Returns:
            numpy.ndarray: Complex weights for the array elements.
        """
        pass

    @abstractmethod
    def get_bfw_fixpt(self, bits=16):
        """
        Calculate the fixed-point weights for beamforming.

        Args:
            bits (int): The number of bits for fixed-point representation. Defaults to 16.

        Returns:
            tuple: A tuple containing (real_weights, imag_weights) as integer arrays.
        """
        pass
Functions
get_spacing() abstractmethod

Get the physical spacing of the array elements.

Returns:

Type Description

numpy.ndarray: An array containing the positions of the antenna elements (in meters).

Source code in rfsoc_rfdc/dsp/array_factor.py
@abstractmethod
def get_spacing(self):
    """
    Get the physical spacing of the array elements.

    Returns:
        numpy.ndarray: An array containing the positions of the antenna elements (in meters).
    """
    pass
get_bfw() abstractmethod

Calculate the complex weights for beamforming.

Returns:

Type Description

numpy.ndarray: Complex weights for the array elements.

Source code in rfsoc_rfdc/dsp/array_factor.py
@abstractmethod
def get_bfw(self):
    """
    Calculate the complex weights for beamforming.

    Returns:
        numpy.ndarray: Complex weights for the array elements.
    """
    pass
get_bfw_sim() abstractmethod

Calculate the complex weights for beamforming (Simulation Only). This should return ideal weights without any hardware-specific calibration.

Returns:

Type Description

numpy.ndarray: Complex weights for the array elements.

Source code in rfsoc_rfdc/dsp/array_factor.py
@abstractmethod
def get_bfw_sim(self):
    """
    Calculate the complex weights for beamforming (Simulation Only).
    This should return ideal weights without any hardware-specific calibration.

    Returns:
        numpy.ndarray: Complex weights for the array elements.
    """
    pass
get_bfw_fixpt(bits=16) abstractmethod

Calculate the fixed-point weights for beamforming.

Parameters:

Name Type Description Default
bits int

The number of bits for fixed-point representation. Defaults to 16.

16

Returns:

Name Type Description
tuple

A tuple containing (real_weights, imag_weights) as integer arrays.

Source code in rfsoc_rfdc/dsp/array_factor.py
@abstractmethod
def get_bfw_fixpt(self, bits=16):
    """
    Calculate the fixed-point weights for beamforming.

    Args:
        bits (int): The number of bits for fixed-point representation. Defaults to 16.

    Returns:
        tuple: A tuple containing (real_weights, imag_weights) as integer arrays.
    """
    pass