15#include <isce3/core/Constants.h>
16#include <isce3/io/Raster.h>
17#include <isce3/core/LUT1d.h>
21namespace 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;
Data structure to hold a 1D Lookup table.
Definition LUT1d.h:15
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.
Definition Filter.cpp:363
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 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
void filter(std::valarray< std::complex< T > > &signal, std::valarray< std::complex< T > > &spectrum)
Filter a signal in frequency domain.
Definition Filter.cpp:319
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 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
A class to handle 2D FFT or 1D FFT in range or azimuth directions.
Definition Signal.h:22
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5