PicoScenes API Docs
 
Loading...
Searching...
No Matches
SDRFrontEndBasebandConfigurations Class Referenceabstract

Interface class for SDR frontend baseband configurations. More...

#include <SDRFrontEndConfigurations.hxx>

Inheritance diagram for SDRFrontEndBasebandConfigurations:

Public Member Functions

virtual ~SDRFrontEndBasebandConfigurations ()=default
 
virtual double getRxSensitivity ()=0
 Get the receiver sensitivity.
 
virtual void setRxSensitivity (double rxSensitivity)=0
 Set the receiver sensitivity.
 
virtual bool isRxResampleBypassFIR ()=0
 Check if FIR filter is bypassed in Rx resampling.
 
virtual void setRxResampleBypassFIR (bool bypass)=0
 Set whether to bypass FIR filter in Rx resampling.
 
virtual bool isTxSplitHighLow ()=0
 Check if high/low split is enabled for Tx.
 
virtual void setTxSplitHighLow (bool split)=0
 Set whether to split high/low for Tx.
 
virtual bool isRxMergeHighLow ()=0
 Check if high/low merge is enabled for Rx.
 
virtual void setRxMergeHighLow (bool merge)=0
 Set whether to merge high/low for Rx.
 
virtual std::optional< double > getCarrierFrequencyOffset4TxEncoding ()=0
 Get the carrier frequency offset for Tx encoding.
 
virtual void setCarrierFrequencyOffset4TxEncoding (double carrierFrequencyOffset)=0
 Set the carrier frequency offset for Tx encoding.
 
virtual std::optional< double > getSamplingFrequencyOffset4TxEncoding ()=0
 Get the sampling frequency offset for Tx encoding.
 
virtual void setSamplingFrequencyOffset4TxEncoding (double samplingFrequencyOffset)=0
 Set the sampling frequency offset for Tx encoding.
 
virtual std::optional< double > getCarrierFrequencyOffset4RxDecoding ()=0
 Get the carrier frequency offset for Rx decoding.
 
virtual void setCarrierFrequencyOffset4RxDecoding (double carrierFrequencyOffset)=0
 Set the carrier frequency offset for Rx decoding.
 
virtual std::optional< double > getSamplingFrequencyOffset4RxDecoding ()=0
 Get the sampling frequency offset for Rx decoding.
 
virtual void setSamplingFrequencyOffset4RxDecoding (double samplingFrequencyOffset)=0
 Set the sampling frequency offset for Rx decoding.
 
virtual double getTxResampleRatio ()=0
 Get the Tx resampling ratio.
 
virtual void setTxResampleRatio (double txResampleRatio)=0
 Set the Tx resampling ratio.
 
virtual double getRxResampleRatio ()=0
 Get the Rx resampling ratio.
 
virtual void setRxResampleRatio (double rxResampleRatio)=0
 Set the Rx resampling ratio.
 
virtual double getSDRFrontEndTime ()=0
 Get the current SDR hardware time.
 
virtual ChannelBandwidthEnum getRxChannelBandwidthMode ()=0
 Get the current channel bandwidth mode for Rx.
 
virtual void setRxChannelBandwidthMode (ChannelBandwidthEnum rxCbw)=0
 Set the channel bandwidth mode for Rx.
 
virtual void setTxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set I/Q mismatch parameters for Tx.
 
virtual void setRxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set I/Q mismatch parameters for Rx.
 
virtual double getTxIqRatioDB ()=0
 Get the I/Q ratio for Tx in dB.
 
virtual double getTxIqCrossTalkDegree ()=0
 Get the I/Q crosstalk angle for Tx.
 
virtual double getRxIqRatioDB ()=0
 Get the I/Q ratio for Rx in dB.
 
virtual double getRxIqCrossTalkDegree ()=0
 Get the I/Q crosstalk angle for Rx.
 
virtual bool isFullDuplexEnabled ()=0
 Check if full duplex mode is enabled.
 
virtual void setFullDuplex (bool enableFullduplex)=0
 Set full duplex mode.
 
virtual double getRxOfdmSymbolOffset ()=0
 Get the Rx OFDM symbol offset.
 
virtual void setRxOfdmSymbolOffset (double rxOfdmSymbolOffset)=0
 Set the Rx OFDM symbol offset.
 
virtual double getNumSamplesSavedBeforeStart ()=0
 Get the number of samples saved before start.
 
virtual void getNumSamplesSavedBeforeStart (double numSamplesSavedBeforeStart)=0
 Set the number of samples saved before start.
 
virtual bool isReturnBasebandSignals () const =0
 Check if baseband signals should be returned.
 
virtual bool useConventionalPacketDetector () const =0
 Check if conventional packet detector should be used.
 

Detailed Description

Interface class for SDR frontend baseband configurations.

This class defines the interface for configuring and controlling the baseband processing aspects of an SDR frontend, including both transmit and receive paths. It provides methods for setting and getting various parameters that affect signal processing, such as sensitivity, frequency offsets, and resampling ratios.

Definition at line 76 of file SDRFrontEndConfigurations.hxx.

Constructor & Destructor Documentation

◆ ~SDRFrontEndBasebandConfigurations()

virtual SDRFrontEndBasebandConfigurations::~SDRFrontEndBasebandConfigurations ( )
virtualdefault

Member Function Documentation

◆ getCarrierFrequencyOffset4RxDecoding()

virtual std::optional< double > SDRFrontEndBasebandConfigurations::getCarrierFrequencyOffset4RxDecoding ( )
pure virtual

Get the carrier frequency offset for Rx decoding.

Returns the carrier frequency offset used for received signal compensation

Returns
std::optional<double> Current Rx carrier frequency offset if set

Implemented in AbstractSDRFrontEnd.

◆ getCarrierFrequencyOffset4TxEncoding()

virtual std::optional< double > SDRFrontEndBasebandConfigurations::getCarrierFrequencyOffset4TxEncoding ( )
pure virtual

Get the carrier frequency offset for Tx encoding.

Returns the deliberate carrier frequency offset added to transmitted signals

Returns
std::optional<double> Current Tx carrier frequency offset if set

Implemented in AbstractSDRFrontEnd.

◆ getNumSamplesSavedBeforeStart() [1/2]

virtual double SDRFrontEndBasebandConfigurations::getNumSamplesSavedBeforeStart ( )
pure virtual

Get the number of samples saved before start.

Returns
double Number of samples saved before start

Implemented in AbstractSDRFrontEnd.

◆ getNumSamplesSavedBeforeStart() [2/2]

virtual void SDRFrontEndBasebandConfigurations::getNumSamplesSavedBeforeStart ( double  numSamplesSavedBeforeStart)
pure virtual

Set the number of samples saved before start.

Parameters
numSamplesSavedBeforeStartDesired number of samples

Implemented in AbstractSDRFrontEnd.

◆ getRxChannelBandwidthMode()

virtual ChannelBandwidthEnum SDRFrontEndBasebandConfigurations::getRxChannelBandwidthMode ( )
pure virtual

Get the current channel bandwidth mode for Rx.

Returns
ChannelBandwidthEnum Current Rx channel bandwidth mode

Implemented in AbstractSDRFrontEnd.

◆ getRxIqCrossTalkDegree()

virtual double SDRFrontEndBasebandConfigurations::getRxIqCrossTalkDegree ( )
pure virtual

Get the I/Q crosstalk angle for Rx.

Returns
double Current Rx I/Q crosstalk angle in degrees

Implemented in AbstractSDRFrontEnd.

◆ getRxIqRatioDB()

virtual double SDRFrontEndBasebandConfigurations::getRxIqRatioDB ( )
pure virtual

Get the I/Q ratio for Rx in dB.

Returns
double Current Rx I/Q ratio in dB

Implemented in AbstractSDRFrontEnd.

◆ getRxOfdmSymbolOffset()

virtual double SDRFrontEndBasebandConfigurations::getRxOfdmSymbolOffset ( )
pure virtual

Get the Rx OFDM symbol offset.

Returns
double Current Rx OFDM symbol offset

Implemented in AbstractSDRFrontEnd.

◆ getRxResampleRatio()

virtual double SDRFrontEndBasebandConfigurations::getRxResampleRatio ( )
pure virtual

Get the Rx resampling ratio.

Returns
double Current Rx resampling ratio

Implemented in AbstractSDRFrontEnd.

◆ getRxSensitivity()

virtual double SDRFrontEndBasebandConfigurations::getRxSensitivity ( )
pure virtual

Get the receiver sensitivity.

Rx sensitivity (in dB) is the lowest threshold that can trigger power-level detection and subsequent packet detection. Higher sensitivity may reject more packets with low SNR, while lower sensitivity may accept more packets but with slower baseband processing rate.

Returns
double Current receiver sensitivity in dB

Implemented in AbstractSDRFrontEnd.

◆ getSamplingFrequencyOffset4RxDecoding()

virtual std::optional< double > SDRFrontEndBasebandConfigurations::getSamplingFrequencyOffset4RxDecoding ( )
pure virtual

Get the sampling frequency offset for Rx decoding.

Returns the sampling frequency offset used for received signal compensation

Returns
std::optional<double> Current Rx sampling frequency offset if set

Implemented in AbstractSDRFrontEnd.

◆ getSamplingFrequencyOffset4TxEncoding()

virtual std::optional< double > SDRFrontEndBasebandConfigurations::getSamplingFrequencyOffset4TxEncoding ( )
pure virtual

Get the sampling frequency offset for Tx encoding.

Returns the deliberate sampling frequency offset added to transmitted signals

Returns
std::optional<double> Current Tx sampling frequency offset if set

Implemented in AbstractSDRFrontEnd.

◆ getSDRFrontEndTime()

virtual double SDRFrontEndBasebandConfigurations::getSDRFrontEndTime ( )
pure virtual

Get the current SDR hardware time.

Returns
double Current hardware time

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getTxIqCrossTalkDegree()

virtual double SDRFrontEndBasebandConfigurations::getTxIqCrossTalkDegree ( )
pure virtual

Get the I/Q crosstalk angle for Tx.

Returns
double Current Tx I/Q crosstalk angle in degrees

Implemented in AbstractSDRFrontEnd.

◆ getTxIqRatioDB()

virtual double SDRFrontEndBasebandConfigurations::getTxIqRatioDB ( )
pure virtual

Get the I/Q ratio for Tx in dB.

Returns
double Current Tx I/Q ratio in dB

Implemented in AbstractSDRFrontEnd.

◆ getTxResampleRatio()

virtual double SDRFrontEndBasebandConfigurations::getTxResampleRatio ( )
pure virtual

Get the Tx resampling ratio.

Returns
double Current Tx resampling ratio

Implemented in AbstractSDRFrontEnd.

◆ isFullDuplexEnabled()

virtual bool SDRFrontEndBasebandConfigurations::isFullDuplexEnabled ( )
pure virtual

Check if full duplex mode is enabled.

Returns
bool True if full duplex is enabled, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ isReturnBasebandSignals()

virtual bool SDRFrontEndBasebandConfigurations::isReturnBasebandSignals ( ) const
pure virtual

Check if baseband signals should be returned.

Returns
bool True if baseband signals should be returned, false otherwise

◆ isRxMergeHighLow()

virtual bool SDRFrontEndBasebandConfigurations::isRxMergeHighLow ( )
pure virtual

Check if high/low merge is enabled for Rx.

Returns
bool True if high/low merge is enabled, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ isRxResampleBypassFIR()

virtual bool SDRFrontEndBasebandConfigurations::isRxResampleBypassFIR ( )
pure virtual

Check if FIR filter is bypassed in Rx resampling.

Returns
bool True if FIR filter is bypassed, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ isTxSplitHighLow()

virtual bool SDRFrontEndBasebandConfigurations::isTxSplitHighLow ( )
pure virtual

Check if high/low split is enabled for Tx.

Returns
bool True if high/low split is enabled, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ setCarrierFrequencyOffset4RxDecoding()

virtual void SDRFrontEndBasebandConfigurations::setCarrierFrequencyOffset4RxDecoding ( double  carrierFrequencyOffset)
pure virtual

Set the carrier frequency offset for Rx decoding.

Parameters
carrierFrequencyOffsetDesired carrier frequency offset

Implemented in AbstractSDRFrontEnd.

◆ setCarrierFrequencyOffset4TxEncoding()

virtual void SDRFrontEndBasebandConfigurations::setCarrierFrequencyOffset4TxEncoding ( double  carrierFrequencyOffset)
pure virtual

Set the carrier frequency offset for Tx encoding.

Parameters
carrierFrequencyOffsetDesired carrier frequency offset

Implemented in AbstractSDRFrontEnd.

◆ setFullDuplex()

virtual void SDRFrontEndBasebandConfigurations::setFullDuplex ( bool  enableFullduplex)
pure virtual

Set full duplex mode.

When enabled, Tx and Rx operate simultaneously, allowing Rx to receive signals transmitted by the Tx path

Parameters
enableFullduplexTrue to enable full duplex, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ setRxChannelBandwidthMode()

virtual void SDRFrontEndBasebandConfigurations::setRxChannelBandwidthMode ( ChannelBandwidthEnum  rxCbw)
pure virtual

Set the channel bandwidth mode for Rx.

Parameters
rxCbwDesired Rx channel bandwidth mode

Implemented in AbstractSDRFrontEnd.

◆ setRxIQMismatch()

virtual void SDRFrontEndBasebandConfigurations::setRxIQMismatch ( double  iq_ratio_db,
double  iq_crosstalk_degree 
)
pure virtual

Set I/Q mismatch parameters for Rx.

Parameters
iq_ratio_dbRatio between I and Q components in dB (default 1.0)
iq_crosstalk_degreeAngle between I and Q components in degrees (default 0.0)

Implemented in AbstractSDRFrontEnd.

◆ setRxMergeHighLow()

virtual void SDRFrontEndBasebandConfigurations::setRxMergeHighLow ( bool  merge)
pure virtual

Set whether to merge high/low for Rx.

Parameters
mergeTrue to enable high/low merge, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ setRxOfdmSymbolOffset()

virtual void SDRFrontEndBasebandConfigurations::setRxOfdmSymbolOffset ( double  rxOfdmSymbolOffset)
pure virtual

Set the Rx OFDM symbol offset.

Parameters
rxOfdmSymbolOffsetDesired Rx OFDM symbol offset

Implemented in AbstractSDRFrontEnd.

◆ setRxResampleBypassFIR()

virtual void SDRFrontEndBasebandConfigurations::setRxResampleBypassFIR ( bool  bypass)
pure virtual

Set whether to bypass FIR filter in Rx resampling.

Parameters
bypassTrue to bypass FIR filter, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ setRxResampleRatio()

virtual void SDRFrontEndBasebandConfigurations::setRxResampleRatio ( double  rxResampleRatio)
pure virtual

Set the Rx resampling ratio.

Used to down-sample received signals from higher hardware sampling rate to Wi-Fi baseband rate (20/40/80/160-MHz)

Parameters
rxResampleRatioDesired Rx resampling ratio

Implemented in AbstractSDRFrontEnd.

◆ setRxSensitivity()

virtual void SDRFrontEndBasebandConfigurations::setRxSensitivity ( double  rxSensitivity)
pure virtual

Set the receiver sensitivity.

Parameters
rxSensitivityNew sensitivity value in dB

Implemented in AbstractSDRFrontEnd.

◆ setSamplingFrequencyOffset4RxDecoding()

virtual void SDRFrontEndBasebandConfigurations::setSamplingFrequencyOffset4RxDecoding ( double  samplingFrequencyOffset)
pure virtual

Set the sampling frequency offset for Rx decoding.

Parameters
samplingFrequencyOffsetDesired sampling frequency offset

Implemented in AbstractSDRFrontEnd.

◆ setSamplingFrequencyOffset4TxEncoding()

virtual void SDRFrontEndBasebandConfigurations::setSamplingFrequencyOffset4TxEncoding ( double  samplingFrequencyOffset)
pure virtual

Set the sampling frequency offset for Tx encoding.

Parameters
samplingFrequencyOffsetDesired sampling frequency offset

Implemented in AbstractSDRFrontEnd.

◆ setTxIQMismatch()

virtual void SDRFrontEndBasebandConfigurations::setTxIQMismatch ( double  iq_ratio_db,
double  iq_crosstalk_degree 
)
pure virtual

Set I/Q mismatch parameters for Tx.

Parameters
iq_ratio_dbRatio between I and Q components in dB (default 1.0)
iq_crosstalk_degreeAngle between I and Q components in degrees (default 0.0)

Implemented in AbstractSDRFrontEnd.

◆ setTxResampleRatio()

virtual void SDRFrontEndBasebandConfigurations::setTxResampleRatio ( double  txResampleRatio)
pure virtual

Set the Tx resampling ratio.

Used to up-sample the generated Tx signal to match higher hardware sampling rate

Parameters
txResampleRatioDesired Tx resampling ratio

Implemented in AbstractSDRFrontEnd.

◆ setTxSplitHighLow()

virtual void SDRFrontEndBasebandConfigurations::setTxSplitHighLow ( bool  split)
pure virtual

Set whether to split high/low for Tx.

Parameters
splitTrue to enable high/low split, false otherwise

Implemented in AbstractSDRFrontEnd.

◆ useConventionalPacketDetector()

virtual bool SDRFrontEndBasebandConfigurations::useConventionalPacketDetector ( ) const
pure virtual

Check if conventional packet detector should be used.

Returns
bool True if conventional packet detector should be used, false otherwise

The documentation for this class was generated from the following file: