isce3 0.25.0
Loading...
Searching...
No Matches
isce3::signal::Filter< T > Class Template Reference

Public Member Functions

void initiateRangeFilter (std::valarray< std::complex< T > > &signal, std::valarray< std::complex< T > > &spectrum, size_t ncols, size_t nrows)
 constructs forward abd backward FFT plans for filtering a block of data in range direction.
 
void initiateAzimuthFilter (std::valarray< std::complex< T > > &signal, std::valarray< std::complex< T > > &spectrum, size_t ncols, size_t nrows)
 constructs forward abd backward FFT plans for filtering a block of data in azimuth direction.
 
void constructRangeBandpassFilter (double rangeSamplingFrequency, std::valarray< double > subBandCenterFrequencies, std::valarray< double > subBandBandwidths, std::valarray< std::complex< T > > &signal, std::valarray< std::complex< T > > &spectrum, size_t ncols, size_t nrows, std::string filterType)
 Sets an existing filter to be used by the filter object.
 
void constructRangeBandpassFilter (double rangeSamplingFrequency, std::valarray< double > subBandCenterFrequencies, std::valarray< double > subBandBandwidths, size_t ncols, size_t nrows, std::string filterType)
 
void constructRangeBandpassBoxcar (std::valarray< double > subBandCenterFrequencies, std::valarray< double > subBandBandwidths, double dt, int fft_size, std::valarray< std::complex< T > > &_filter1D)
 Construct a box car range band-pass filter for multiple bands.
 
void constructRangeBandpassCosine (std::valarray< double > subBandCenterFrequencies, std::valarray< double > subBandBandwidths, double dt, std::valarray< double > &frequency, double beta, std::valarray< std::complex< T > > &_filter1D)
 
void constructAzimuthCommonbandFilter (const isce3::core::LUT1d< double > &refDoppler, const isce3::core::LUT1d< double > &secDoppler, double bandwidth, double prf, double beta, std::valarray< std::complex< T > > &signal, std::valarray< std::complex< T > > &spectrum, size_t ncols, size_t nrows)
 Construct azimuth common band filter.
 
void filter (std::valarray< std::complex< T > > &signal, std::valarray< std::complex< T > > &spectrum)
 Filter a signal in frequency domain.
 
void writeFilter (size_t ncols, size_t nrows)
 

Static Public Member Functions

static void indexOfFrequency (double dt, int N, double f, int &n)
 Find the index of a specific frequency for a signal with a specific sampling rate.
 

Member Function Documentation

◆ constructAzimuthCommonbandFilter()

template<class T>
void isce3::signal::Filter< T >::constructAzimuthCommonbandFilter ( const isce3::core::LUT1d< double > & refDoppler,
const isce3::core::LUT1d< double > & secDoppler,
double bandwidth,
double prf,
double beta,
std::valarray< std::complex< T > > & signal,
std::valarray< std::complex< T > > & spectrum,
size_t ncols,
size_t nrows )

Construct azimuth common band filter.

Parameters
[in]refDopplerDoppler LUT1d of the reference SLC
[in]secDopplerDoppler LUT1d of the secondary SLC
[in]bandwidthcommon bandwidth in azimuth
[in]prfpulse repetition frequency
[in]betaparameter for raised cosine filter
[in]signala block of data to filter
[in]spectrumof the block of data
[in]ncolsnumber of columns of the block of data
[in]nrowsnumber of rows of the block of data

◆ constructRangeBandpassBoxcar()

template<class T>
void isce3::signal::Filter< T >::constructRangeBandpassBoxcar ( std::valarray< double > subBandCenterFrequencies,
std::valarray< double > subBandBandwidths,
double dt,
int fft_size,
std::valarray< std::complex< T > > & _filter1D )

Construct a box car range band-pass filter for multiple bands.

Parameters
[in]subBandCenterFrequenciesa vector of center frequencies for each band
[in]subBandBandwidthsa vector of bandwidths for each band
[in]dtsamplig rate of the signal
[in]fft_sizelength of the spectrum
[out]_filter1Done dimensional boxcar bandpass filter in frequency domain

◆ constructRangeBandpassCosine()

template<class T>
void isce3::signal::Filter< T >::constructRangeBandpassCosine ( std::valarray< double > subBandCenterFrequencies,
std::valarray< double > subBandBandwidths,
double dt,
std::valarray< double > & frequency,
double beta,
std::valarray< std::complex< T > > & _filter1D )
Parameters
[in]subBandCenterFrequenciesa vector of center frequencies for each band
[in]subBandBandwidthsa vector of bandwidths for each band
[in]dtsamplig rate of the signal
[in]frequencya vector of frequencies
[in]betaparameter for the raised cosine filter (0 <= beta <= 1)
[out]_filter1Done dimensional boxcar bandpass filter in frequency domain

◆ constructRangeBandpassFilter()

template<class T>
void isce3::signal::Filter< T >::constructRangeBandpassFilter ( double rangeSamplingFrequency,
std::valarray< double > subBandCenterFrequencies,
std::valarray< double > subBandBandwidths,
std::valarray< std::complex< T > > & signal,
std::valarray< std::complex< T > > & spectrum,
size_t ncols,
size_t nrows,
std::string filterType )

Sets an existing filter to be used by the filter object.

Construct range band-pass filter

Parameters
[in]rangeSamplingFrequencyrange sampling frequency
[in]subBandCenterFrequenciesa vector of center frequencies for each band
[in]subBandBandwidthsa vector of bandwidths for each band
[in]signala block of data to filter
[in]spectruma block of spectrum, which is internally used for FFT computations
[in]ncolsnumber of columns of the block of data
[in]nrowsnumber of rows of the block of data
[in]filterTypetype of the band-pass filter

◆ filter()

template<class T>
void isce3::signal::Filter< T >::filter ( std::valarray< std::complex< T > > & signal,
std::valarray< std::complex< T > > & spectrum )

Filter a signal in frequency domain.

Parameters
[in]signala block of data to filter.
[in]spectrumof the block of the data

◆ indexOfFrequency()

template<class T>
void isce3::signal::Filter< T >::indexOfFrequency ( double dt,
int N,
double f,
int & n )
static

Find the index of a specific frequency for a signal with a specific sampling rate.

Parameters
[in]dtsampling interval of the signal
[in]Nlength of the signal
[in]ffrequency of interest
[out]nindex of the frequency

◆ initiateAzimuthFilter()

template<class T>
void isce3::signal::Filter< T >::initiateAzimuthFilter ( std::valarray< std::complex< T > > & signal,
std::valarray< std::complex< T > > & spectrum,
size_t ncols,
size_t nrows )

constructs forward abd backward FFT plans for filtering a block of data in azimuth direction.

Parameters
[in]signala block of data to filter
[in]spectruma block of spectrum, which is internally used for FFT computations
[in]ncolsnumber of columns of the block of the data
[in]nrowsnumber of rows of the block of the data

◆ initiateRangeFilter()

template<class T>
void isce3::signal::Filter< T >::initiateRangeFilter ( std::valarray< std::complex< T > > & signal,
std::valarray< std::complex< T > > & spectrum,
size_t ncols,
size_t nrows )

constructs forward abd backward FFT plans for filtering a block of data in range direction.

Parameters
[in]signala block of data to filter
[in]spectruma block of spectrum, which is internally used for FFT computations
[in]ncolsnumber of columns of the block of the data
[in]nrowsnumber of rows of the block of the data

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

Generated for ISCE3.0 by doxygen 1.13.2.