File decimate.hpp

Enums

enum DecimationType

Values:

enumerator lowpass
enumerator bandpass

Functions

void bandpass_decimate_wrapper(cuComplex *input_samples, cuComplex *decimated_samples, cuComplex *filter_taps, uint32_t dm_rate, uint32_t samples_per_antenna, uint32_t num_taps_per_filter, uint32_t num_freqs, uint32_t num_antennas, double F_s, double *freqs, cudaStream_t stream)

This function wraps the bandpass_decimate kernel so that it can be called from another file.

Parameters
  • original_samples[in] A pointer to original input samples from each antenna to decimate.

  • decimated_samples[in] A pointer to a buffer to place output samples for each frequency after decimation.

  • filter_taps[in] A pointer to one or more filters needed for each frequency.

  • dm_rate[in] Decimation rate.

  • samples_per_antenna[in] The number of samples per antenna in the original set of samples.

  • num_taps_per_filter[in] Number of taps per filter.

  • num_freqs[in] Number of receive frequencies.

  • num_antennas[in] Number of antennas for which there are samples.

  • F_s[in] The original sampling frequency.

  • freqs – A pointer to the frequencies being filtered.

  • stream[in] CUDA stream with which to associate the invocation of the kernel.

void lowpass_decimate_wrapper(cuComplex *input_samples, cuComplex *decimated_samples, cuComplex *filter_taps, uint32_t dm_rate, uint32_t samples_per_antenna, uint32_t num_taps_per_filter, uint32_t num_freqs, uint32_t num_antennas, cudaStream_t stream)

This function wraps the lowpass_decimate kernel so that it can be called from another file.

Parameters
  • original_samples[in] A pointer to one or more baseband frequency datasets.

  • decimated_samples[in] A pointer to a buffer to place output samples for each frequency after decimation.

  • filter_taps[in] A pointer to one lowpass filter.

  • dm_rate[in] Decimation rate.

  • samples_per_antenna[in] The number of samples per antenna in each data set.

  • num_taps_per_filter[in] Number of taps per filter.

  • num_freqs[in] Number of receive frequency datasets.

  • num_antennas[in] Number of antennas for which there are samples.

  • stream[in] CUDA stream with which to associate the invocation of the kernel.

template<DecimationType type>
void call_decimate(cuComplex *input_samples, cuComplex *decimated_samples, cuComplex *filter_taps, uint32_t dm_rate, uint32_t samples_per_antenna, uint32_t num_taps_per_filter, uint32_t num_freqs, uint32_t num_antennas, double F_s, double *freqs, const char *output_msg, cudaStream_t stream)

Selects which decimate kernel to run.

Parameters
  • input_samples[in] A pointer to original input samples from each antenna to decimate.

  • decimated_samples[in] A pointer to a buffer to place output samples for each frequency after decimation.

  • filter_taps[in] A pointer to one or more filters needed for each frequency. If using lowpass, one filter is used. If using bandpass, there is one filter for each RX frequency.

  • dm_rate[in] Decimation rate.

  • samples_per_antenna[in] The number of samples per antenna in the input set of samples for one frequency.

  • num_taps_per_filter[in] Number of taps per filter.

  • num_freqs[in] Number of receive frequencies.

  • num_antennas[in] Number of antennas for which there are samples.

  • F_s[in] The original sampling frequency.

  • freqs – A pointer to the filtering freqs.

  • output_msg[in] A simple character string that can be used to debug or distinguish different stages.

  • stream[in] The CUDA stream for which to run a run a kernel.

            Based off the total number of filter taps, this function will choose what decimate
            kernel to use.
    

Template Parameters

type – { description }