File decimate.hpp¶
Functions
-
void bandpass_decimate1024_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_decimate1024 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 bandpass_decimate2048_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_decimate2048 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_decimate1024_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_decimate1024 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.
-
void lowpass_decimate2048_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_decimate2048 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 }