15 #include <isce3/core/Constants.h>
16 #include <isce3/io/Raster.h>
17 #include <isce3/core/LUT1d.h>
21 namespace isce3 {
namespace signal {
23 void fftfreq(
double dt, std::valarray<double> &freq);
36 std::valarray<std::complex<T>> &spectrum,
42 std::valarray<std::complex<T>> &spectrum,
51 std::valarray<double> subBandCenterFrequencies,
52 std::valarray<double> subBandBandwidths,
53 std::valarray<std::complex<T>> &signal,
54 std::valarray<std::complex<T>> &spectrum,
57 std::string filterType);
60 std::valarray<double> subBandCenterFrequencies,
61 std::valarray<double> subBandBandwidths,
64 std::string filterType);
68 std::valarray<double> subBandBandwidths,
71 std::valarray<std::complex<T>> &_filter1D);
74 std::valarray<double> subBandBandwidths,
76 std::valarray<double>& frequency,
78 std::valarray<std::complex<T>>& _filter1D);
88 std::valarray<std::complex<T>> &signal,
89 std::valarray<std::complex<T>> &spectrum,
94 void filter(std::valarray<std::complex<T>> &signal,
95 std::valarray<std::complex<T>> &spectrum);
100 void writeFilter(
size_t ncols,
size_t nrows);
104 std::valarray<std::complex<T>> _filter;
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.
Definition: Filter.cpp:62
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.
void constructRangeBandpassCosine(std::valarray< double > subBandCenterFrequencies, std::valarray< double > subBandBandwidths, double dt, std::valarray< double > &frequency, double beta, std::valarray< std::complex< T >> &_filter1D)
Definition: Filter.cpp:197
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.
Definition: Filter.cpp:146
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.
Definition: Filter.cpp:246
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...
Definition: Filter.cpp:40
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.
Definition: Filter.cpp:21
void filter(std::valarray< std::complex< T >> &signal, std::valarray< std::complex< T >> &spectrum)
Filter a signal in frequency domain.
Definition: Filter.cpp:319