# Resampler

The Resampler is the third processing block inside a Signal Conditioner when the later is using a Signal_Conditioner implementation.

A Resampler block is in charge of resampling the signal and delivering it to the $N$ parallel processing channels.

At the Resampler’s output, only complex types are allowed: cbyte, cshort, or gr_complex. This block does not perform any data type conversion.

### Implementation: Direct_Resampler

This implementation performs a direct resampling of the incoming signal, without performing any interpolation.

It accepts the following parameters:

Parameter Description Required
implementation Direct_Resampler Mandatory
sample_freq_in Sample rate at the block input, in samples per second. Mandatory
sample_freq_out Sample rate at the block output, in samples per second. Mandatory
item_type [cbyte, cshort, gr_complex]: Data type to be resampled. Mandatory

Resampler implementation: Direct_Resampler.

Examples:

;######### RESAMPLER CONFIG ############
Resampler.implementation=Direct_Resampler
Resampler.sample_freq_in=8000000
Resampler.sample_freq_out=4000000
Resampler.item_type=gr_complex

;######### RESAMPLER CONFIG ############
Resampler.implementation=Direct_Resampler
Resampler.sample_freq_in=8000000
Resampler.sample_freq_out=2500000
Resampler.item_type=cshort


### Implementation: Mmse_Resampler

This implementation performs a resampling of the incoming signal with a MMSE filtering stage. This resampling block is suitable in cases when the ratio between the incoming sampling frequency and the outcoming one is not a rational number. A typical use case is when the sampling frequency is an integer multiple of the chip frequency and artifacts appear in the tracking blocks. In that case, it is desirable to slightly decrease the sampling ratio in order to avoid the artifacts and, also, to maintain a similar sampling frequency (for instance, downsampling from 30.69 to 30 Msps).

It accepts the following parameters:

Parameter Description Required
implementation Mmse_Resampler Mandatory
sample_freq_in Sample rate at the block input, in samples per second. Mandatory
sample_freq_out Sample rate at the block output, in samples per second. Mandatory
item_type [gr_complex]: Data type to be resampled. This implementation only accepts samples of gr_complex type. Optional

Resampler implementation: Mmse_Resampler.

Examples:

;######### RESAMPLER CONFIG ############
Resampler.implementation=Mmse_Resampler
Resampler.sample_freq_in=30690000
Resampler.sample_freq_out=30000000
Resampler.item_type=gr_complex


### 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 [cbyte, cshort, gr_complex]: Data type to be copied from the input to the output of this block. It defaults to gr_complex. Optional

Resampler implementation: Pass_Through.

Examples:

;######### RESAMPLER CONFIG ############
Resampler.implementation=Pass_Through

;######### RESAMPLER CONFIG ############
Resampler.implementation=Pass_Through
Resampler.item_type=cshort


Updated: