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

This interfaces hold all the Tx/Rx baseband configurations of PicoScenes Wi-Fi baseband implementation. More...

#include <SDRFrontEndConfigurations.hxx>

Inheritance diagram for SDRFrontEndBasebandConfigurations:

Public Member Functions

virtual ~SDRFrontEndBasebandConfigurations ()=default
 
virtual double getRxSensitivity ()=0
 Get the Rx sensitivity of SDR baseband implemntation.
 
virtual void setRxSensitivity (double rxSensitivity)=0
 Set Rx sensitivity.
 
virtual bool isRxResampleBypassFIR ()=0
 
virtual void setRxResampleBypassFIR (bool bypass)=0
 
virtual bool isTxSplitHighLow ()=0
 
virtual void setTxSplitHighLow (bool split)=0
 
virtual bool isRxMergeHighLow ()=0
 
virtual void setRxMergeHighLow (bool merge)=0
 
virtual std::optional< double > getCarrierFrequencyOffset4TxEncoding ()=0
 Get the current carrier frequency offset (CFO) value for the baseband signal generation.
 
virtual void setCarrierFrequencyOffset4TxEncoding (double carrierFrequencyOffset)=0
 Set the current carrier frequency offset (CFO) value for the baseband signal generation.
 
virtual std::optional< double > getSamplingFrequencyOffset4TxEncoding ()=0
 Get the current sampilng frequency offset (SFO) value for the baseband signal generation.
 
virtual void setSamplingFrequencyOffset4TxEncoding (double samplingFrequencyOffset)=0
 Set the current sampling frequency offset (SFO) value for the baseband signal generation.
 
virtual std::optional< double > getCarrierFrequencyOffset4RxDecoding ()=0
 Check if user specifies the Rx path CFO; if specified, return the Rx path CFO.
 
virtual void setCarrierFrequencyOffset4RxDecoding (double carrierFrequencyOffset)=0
 Set the CFO value for baseband decoding.
 
virtual std::optional< double > getSamplingFrequencyOffset4RxDecoding ()=0
 Get the user-specified Rx path SFO, default is 0.
 
virtual void setSamplingFrequencyOffset4RxDecoding (double samplingFrequencyOffset)=0
 Set the user-specified Rx path SFO,.
 
virtual double getTxResampleRatio ()=0
 Get the user-specified Tx signal resample ratio.
 
virtual void setTxResampleRatio (double txResampleRatio)=0
 Set Tx signal resample ratio.
 
virtual double getRxResampleRatio ()=0
 Get the user-specified Rx resampling ratio.
 
virtual void setRxResampleRatio (double rxResampleRatio)=0
 Set the Rx signal rasample ratio.
 
virtual double getSDRFrontEndTime ()=0
 Obtain the SDR hardware time.
 
virtual ChannelBandwidthEnum getRxChannelBandwidthMode ()=0
 Get the current CBW value of Wi-Fi baseband decoder.
 
virtual void setRxChannelBandwidthMode (ChannelBandwidthEnum rxCbw)=0
 Set the CBW value for Wi-Fi baseband decoder, invoked by "--rx-cbw" option.
 
virtual void setTxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set Tx I/Q mismatch.
 
virtual void setRxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set Rx I/Q mismatch.
 
virtual double getTxIqRatioDB ()=0
 Get the I/Q mismatch ratio of the user-specified Tx I/Q mismatch.
 
virtual double getTxIqCrossTalkDegree ()=0
 Get the I/Q mismatch angle of the user-specified Tx I/Q mismatch.
 
virtual double getRxIqRatioDB ()=0
 Get the I/Q mismatch ratio of the user-specified Rx I/Q mismatch.
 
virtual double getRxIqCrossTalkDegree ()=0
 Get the I/Q mismatch degree of the user-specified Tx I/Q mismatch.
 
virtual bool isFullDuplexEnabled ()=0
 Check whether the Frontend is in Tx/Rx loopback mode.
 
virtual void setFullDuplex (bool enableFullduplex)=0
 Set the Frontend is in Tx/Rx loopback mode, in this mode Tx and Rx are open simultaneously, so that Rx end can receive the transmitted signal by Tx path.
 
virtual double getRxOfdmSymbolOffset ()=0
 Get the user-specified Rx OFDM symbol offset value.
 
virtual void setRxOfdmSymbolOffset (double rxOfdmSymbolOffset)=0
 Set Rx OFDM symbol offset, default is 0.
 
virtual double getNumSamplesSavedBeforeStart ()=0
 
virtual void getNumSamplesSavedBeforeStart (double numSamplesSavedBeforeStart)=0
 
virtual bool isReturnBasebandSignals () const =0
 
virtual bool useConventionalPacketDetector () const =0
 

Detailed Description

This interfaces hold all the Tx/Rx baseband configurations of PicoScenes Wi-Fi baseband implementation.

Definition at line 49 of file SDRFrontEndConfigurations.hxx.

Constructor & Destructor Documentation

◆ ~SDRFrontEndBasebandConfigurations()

virtual SDRFrontEndBasebandConfigurations::~SDRFrontEndBasebandConfigurations ( )
virtualdefault

Member Function Documentation

◆ getCarrierFrequencyOffset4RxDecoding()

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

Check if user specifies the Rx path CFO; if specified, return the Rx path CFO.

This method is for baseband implemntation to query whether user specifies a Rx path CFO, thus is not used for platform/plugin developer. For baseband implementation, if getCarrierFrequencyOffset4RxDecoding returns a value, let's name it RxCFO, then RxCFO will override the Rx path CFO auto-calculation and use the specified RxCFO to perform the Rx-path CFO compelsation.

See also
getCarrierFrequencyOffset4TxEncoding
Returns

Implemented in AbstractSDRFrontEnd.

◆ getCarrierFrequencyOffset4TxEncoding()

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

Get the current carrier frequency offset (CFO) value for the baseband signal generation.

PicoScenes baseband implementation can deliberately add CFO to the generated (Tx) baseband signal.

See also
getCarrierFrequencyOffset4RxDecoding
Returns
the current Tx CFO

Implemented in AbstractSDRFrontEnd.

◆ getNumSamplesSavedBeforeStart() [1/2]

virtual double SDRFrontEndBasebandConfigurations::getNumSamplesSavedBeforeStart ( )
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ getNumSamplesSavedBeforeStart() [2/2]

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

Implemented in AbstractSDRFrontEnd.

◆ getRxChannelBandwidthMode()

virtual ChannelBandwidthEnum SDRFrontEndBasebandConfigurations::getRxChannelBandwidthMode ( )
pure virtual

Get the current CBW value of Wi-Fi baseband decoder.

Implemented in AbstractSDRFrontEnd.

◆ getRxIqCrossTalkDegree()

virtual double SDRFrontEndBasebandConfigurations::getRxIqCrossTalkDegree ( )
pure virtual

Get the I/Q mismatch degree of the user-specified Tx I/Q mismatch.

Returns

Implemented in AbstractSDRFrontEnd.

◆ getRxIqRatioDB()

virtual double SDRFrontEndBasebandConfigurations::getRxIqRatioDB ( )
pure virtual

Get the I/Q mismatch ratio of the user-specified Rx I/Q mismatch.

Returns

Implemented in AbstractSDRFrontEnd.

◆ getRxOfdmSymbolOffset()

virtual double SDRFrontEndBasebandConfigurations::getRxOfdmSymbolOffset ( )
pure virtual

Get the user-specified Rx OFDM symbol offset value.

See also
setRxOfdmSymbolOffset

Implemented in AbstractSDRFrontEnd.

◆ getRxResampleRatio()

virtual double SDRFrontEndBasebandConfigurations::getRxResampleRatio ( )
pure virtual

Get the user-specified Rx resampling ratio.

See also
setRxResampleRatio
Returns

Implemented in AbstractSDRFrontEnd.

◆ getRxSensitivity()

virtual double SDRFrontEndBasebandConfigurations::getRxSensitivity ( )
pure virtual

Get the Rx sensitivity of SDR baseband implemntation.

Rx sensitivity (in dB) is the lowest threshold that can trigger power-level detection and the 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
the current Rx sensitivity.

Implemented in AbstractSDRFrontEnd.

◆ getSamplingFrequencyOffset4RxDecoding()

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

Get the user-specified Rx path SFO, default is 0.

This method is for baseband implemntation to query whether user specifies a Rx path SFO, thus is not used for platform/plugin developer. The PicoScenes Wi-Fi baseband implementation use the RxSFO (in Hz) valued obtained from getSamplingFrequencyOffset4RxDecoding to distort the received signal so as to simulate a SFO between Tx and Rx

See also
getCarrierFrequencyOffset4TxEncoding

Implemented in AbstractSDRFrontEnd.

◆ getSamplingFrequencyOffset4TxEncoding()

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

Get the current sampilng frequency offset (SFO) value for the baseband signal generation.

PicoScenes baseband implementation can deliberately add SFO to the generated (Tx) baseband signal.

Returns
the current Tx SFO

Implemented in AbstractSDRFrontEnd.

◆ getSDRFrontEndTime()

virtual double SDRFrontEndBasebandConfigurations::getSDRFrontEndTime ( )
pure virtual

Obtain the SDR hardware time.

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getTxIqCrossTalkDegree()

virtual double SDRFrontEndBasebandConfigurations::getTxIqCrossTalkDegree ( )
pure virtual

Get the I/Q mismatch angle of the user-specified Tx I/Q mismatch.

Returns

Implemented in AbstractSDRFrontEnd.

◆ getTxIqRatioDB()

virtual double SDRFrontEndBasebandConfigurations::getTxIqRatioDB ( )
pure virtual

Get the I/Q mismatch ratio of the user-specified Tx I/Q mismatch.

Implemented in AbstractSDRFrontEnd.

◆ getTxResampleRatio()

virtual double SDRFrontEndBasebandConfigurations::getTxResampleRatio ( )
pure virtual

Get the user-specified Tx signal resample ratio.

See also
setTxResampleRatio

Implemented in AbstractSDRFrontEnd.

◆ isFullDuplexEnabled()

virtual bool SDRFrontEndBasebandConfigurations::isFullDuplexEnabled ( )
pure virtual

Check whether the Frontend is in Tx/Rx loopback mode.

See also
setFullDuplex

Implemented in AbstractSDRFrontEnd.

◆ isReturnBasebandSignals()

virtual bool SDRFrontEndBasebandConfigurations::isReturnBasebandSignals ( ) const
pure virtual

◆ isRxMergeHighLow()

virtual bool SDRFrontEndBasebandConfigurations::isRxMergeHighLow ( )
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ isRxResampleBypassFIR()

virtual bool SDRFrontEndBasebandConfigurations::isRxResampleBypassFIR ( )
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ isTxSplitHighLow()

virtual bool SDRFrontEndBasebandConfigurations::isTxSplitHighLow ( )
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ setCarrierFrequencyOffset4RxDecoding()

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

Set the CFO value for baseband decoding.

the specified carrierFrequencyOffset will override the Rx path CFO auto-calculation and use the specified RxCFO to perform the Rx-path CFO compelsation.

Parameters
carrierFrequencyOffset

Implemented in AbstractSDRFrontEnd.

◆ setCarrierFrequencyOffset4TxEncoding()

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

Set the current carrier frequency offset (CFO) value for the baseband signal generation.

PicoScenes baseband implementation can deliberately add CFO to the generated (Tx) baseband signal.

Parameters
carrierFrequencyOffsetthe specified CFO

Implemented in AbstractSDRFrontEnd.

◆ setFullDuplex()

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

Set the Frontend is in Tx/Rx loopback mode, in this mode Tx and Rx are open simultaneously, so that Rx end can receive the transmitted signal by Tx path.

Parameters
enableFullduplex

Implemented in AbstractSDRFrontEnd.

◆ setRxChannelBandwidthMode()

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

Set the CBW value for Wi-Fi baseband decoder, invoked by "--rx-cbw" option.

Parameters
rxCbw

Implemented in AbstractSDRFrontEnd.

◆ setRxIQMismatch()

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

Set Rx I/Q mismatch.

Parameters
iq_ratio_dbis the ratio between I and Q, default is 1.0
iq_crosstalk_degreeis the angle between I and Q, default is 0.0
See also
getRxIqRatioDB
getRxIqCrossTalkDegree

Implemented in AbstractSDRFrontEnd.

◆ setRxMergeHighLow()

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

Implemented in AbstractSDRFrontEnd.

◆ setRxOfdmSymbolOffset()

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

Set Rx OFDM symbol offset, default is 0.

Implemented in AbstractSDRFrontEnd.

◆ setRxResampleBypassFIR()

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

Implemented in AbstractSDRFrontEnd.

◆ setRxResampleRatio()

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

Set the Rx signal rasample ratio.

This method is invoked by the "--rx-resample-ratio" option. This method is usually called to down-sample the received signal from higher hardware sampling rate to the Wi-Fi baseband CBW rate (20/40/80/160-MHz)

Parameters
rxResampleRatio

Implemented in AbstractSDRFrontEnd.

◆ setRxSensitivity()

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

Set Rx sensitivity.

See also
getRxSensitivity
Parameters
rxSensitivity

Implemented in AbstractSDRFrontEnd.

◆ setSamplingFrequencyOffset4RxDecoding()

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

Set the user-specified Rx path SFO,.

See also
getSamplingFrequencyOffset4RxDecoding

Implemented in AbstractSDRFrontEnd.

◆ setSamplingFrequencyOffset4TxEncoding()

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

Set the current sampling frequency offset (SFO) value for the baseband signal generation.

PicoScenes baseband implementation can deliberately add SFO to the generated (Tx) baseband signal.

Parameters
samplingFrequencyOffsetthe specified SFO

Implemented in AbstractSDRFrontEnd.

◆ setTxIQMismatch()

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

Set Tx I/Q mismatch.

Parameters
iq_ratio_dbis the ratio between I and Q, default is 1.0
iq_crosstalk_degreeis the angle between I and Q, default is 0.0
See also
getTxIqRatioDB
getTxIqCrossTalkDegree

Implemented in AbstractSDRFrontEnd.

◆ setTxResampleRatio()

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

Set Tx signal resample ratio.

This method is invoked by the "--tx-resample-ratio" option. This method is usually called to up-sample the generated Tx signal to match the higher hardware sampling rate.

Implemented in AbstractSDRFrontEnd.

◆ setTxSplitHighLow()

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

Implemented in AbstractSDRFrontEnd.

◆ useConventionalPacketDetector()

virtual bool SDRFrontEndBasebandConfigurations::useConventionalPacketDetector ( ) const
pure virtual

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