A Signal Conditioner block is in charge of adapting the sample bit depth to a data type tractable at the host computer running the software receiver, and optionally intermediate frequency to baseband conversion, resampling, and filtering.

Regardless of the selected signal source features, the Signal Conditioner interface delivers in a unified format a sample data stream to the receiver downstream processing channels, acting as a facade between the signal source and the synchronization channels, providing a simplified interface to the input signal at a reference, internal sample rate \(f_{IN}\). We denote the complex samples at the Signal Conditioner output as \(x_{\text{IN}}[n]\). This signal stream feeds a set of parallel Channels.

Implementation: Signal_Conditioner

This implementation is in fact a wrapper for other three processing blocks.

Signal Conditioner

Data Type Adapter Input Filter Resampler

Those inner blocks are in charge of:

  • The role of the Data Type Adapter block is to perform a conversion of the data type in the incoming sample stream.

  • The role of the Input Filter block is to filter the incoming signal.

  • The role of the Resampler block is to resample the signal and to deliver it to the \(N\) parallel processing channels.

Any of them can be bypassed by using a Pass_Through implementation.

The Signal_Conditioner implementation accepts the following parameters:

Parameter Description Required
implementation Signal_Conditioner Mandatory
DataTypeAdapter This implementation requires the configuration of a Data Type Adapter block. Mandatory
InputFilter This implementation requires the configuration of an Input Filter block. Mandatory
Resampler This implementation requires the configuration of a Resampler block. Mandatory

Signal Conditioner implementation: Signal_Conditioner.

Example:

;######### SIGNAL_CONDITIONER CONFIG ############
;## It holds blocks to change data type, filter and resample input data.
SignalConditioner.implementation=Signal_Conditioner

;######### DATA_TYPE_ADAPTER CONFIG ############
;## Changes the type of input data.
;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Ishort_To_Complex

;######### INPUT_FILTER CONFIG ############
;## Filter the input data.
InputFilter.implementation=Fir_Filter
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
; ... other InputFilter parameters

;######### RESAMPLER CONFIG ############
;## Resamples the input data.
Resampler.implementation=Pass_Through

Implementation: Pass_Through

This implementation copies samples from its input to its output.

It accepts the following parameters:

Parameter Description Required
implementation Pass_Through Mandatory
item_type [gr_complex, cshort]: Format of data samples. It defaults to gr_complex. Optional

Signal Conditioner implementation: Pass_Through.

Examples:

;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner.implementation=Pass_Through
;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner.implementation=Pass_Through
SignalConditioner.item_type=cshort

Updated:

Leave a comment