isce3 0.25.0
Loading...
Searching...
No Matches
isce3::focus::RangeComp Class Reference

Range compression processor. More...

#include <RangeComp.h>

Public Types

enum class  Mode { Full , Valid , Same }
 Convolution output mode. More...
 

Public Member Functions

 RangeComp (const std::vector< std::complex< float > > &chirp, int inputsize, int maxbatch=1, Mode mode=Mode::Full)
 Constructor.
 
int chirpSize () const
 Number of samples in chirp.
 
int inputSize () const
 Expected number of samples in the input signal to be compressed.
 
int fftSize () const
 FFT length.
 
int maxBatch () const
 Max batch size.
 
Mode mode () const
 Output mode.
 
int outputSize () const
 Output number of samples.
 
int firstValidSample () const
 Return the (zero-based) index of the first fully-focused pixel in the output.
 
void applyNotch (double frequency, double bandwidth=0.0)
 Apply a notch to the baseband frequency-domain representation of the chirp reference function.
 
const std::complex< float > * chirp_spectrum () const
 Get a pointer to the frequency spectrum of the chirp that will be used for range compression.
 
void rangecompress (std::complex< float > *out, const std::complex< float > *in, int batch=1)
 Perform pulse compression on a batch of input signals.
 

Detailed Description

Range compression processor.

Member Enumeration Documentation

◆ Mode

enum class isce3::focus::RangeComp::Mode
strong

Convolution output mode.

Enumerator
Full 

The output contains the full discrete convolution of the input with the matched filter.

For an input signal and chirp of size N and M, the output size is (N + M - 1).

Valid 

The output contains only the valid discrete convolution of the input with the matched filter.

For an input signal and chirp of size N and M, the output size is (max(M, N) - min(M, N) + 1).

Same 

The output contains the discrete convolution of the input with the matched filter, cropped to the same size as the input signal.

Constructor & Destructor Documentation

◆ RangeComp()

isce3::focus::RangeComp::RangeComp ( const std::vector< std::complex< float > > & chirp,
int inputsize,
int maxbatch = 1,
Mode mode = Mode::Full )

Constructor.

Forms a matched filter from the time-reversed complex conjugate of the chirp replica and creates FFT plans for frequency domain convolution with the matched filter.

Parameters
[in]chirpTime-domain replica of the transmitted chirp waveform
[in]inputsizeNumber of range samples in the signal to be compressed
[in]maxbatchMax batch size
[in]modeConvolution output mode

Member Function Documentation

◆ applyNotch()

void isce3::focus::RangeComp::applyNotch ( double frequency,
double bandwidth = 0.0 )

Apply a notch to the baseband frequency-domain representation of the chirp reference function.

Parameters
[in]frequencyCenter frequency of the notch normalized by the sample rate, so should be in interval [-0.5, 0.5)
[in]bandwidthTotal width for the notch taper. If zero, then only the nearest FFT bin will be set to zero.

◆ chirp_spectrum()

const std::complex< float > * isce3::focus::RangeComp::chirp_spectrum ( ) const
inline

Get a pointer to the frequency spectrum of the chirp that will be used for range compression.

Its length is equal to fftSize().

◆ rangecompress()

void isce3::focus::RangeComp::rangecompress ( std::complex< float > * out,
const std::complex< float > * in,
int batch = 1 )

Perform pulse compression on a batch of input signals.

Computes the frequency domain convolution of the input with the reference function.

Exceptions
LengthErrorIf batch exceeds the max batch size
Parameters
[out]outRange-compressed data
[in]inInput data
[in]batchInput batch size

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

Generated for ISCE3.0 by doxygen 1.13.2.