isce3 0.25.0
Loading...
Searching...
No Matches
RangeComp.h
1#pragma once
2
3#include <complex>
4#include <vector>
5
6#include <isce3/fft/FFT.h>
7
8namespace isce3 { namespace focus {
9
11class RangeComp {
12public:
14 enum class Mode {
23
32
38 };
39
52 RangeComp(const std::vector<std::complex<float>> & chirp,
53 int inputsize,
54 int maxbatch = 1,
56
58 int chirpSize() const { return _chirpsize; }
59
61 int inputSize() const { return _inputsize; }
62
64 int fftSize() const { return _fftsize; }
65
67 int maxBatch() const { return _maxbatch; }
68
70 Mode mode() const { return _mode; }
71
73 int outputSize() const;
74
79 int firstValidSample() const;
80
90 void applyNotch(double frequency, double bandwidth = 0.0);
91
96 const std::complex<float>* chirp_spectrum() const {
97 return _reffn.data();
98 }
99
112 void rangecompress(std::complex<float> * out, const std::complex<float> * in, int batch = 1);
113
114private:
115 int _chirpsize;
116 int _inputsize;
117 int _fftsize;
118 int _maxbatch;
119 Mode _mode;
120 std::vector<std::complex<float>> _reffn;
121 std::vector<std::complex<float>> _wkspc;
124};
125
126}}
RAII wrapper encapsulating FFTW plan for forward FFT execution.
Definition FFTPlan.h:11
RAII wrapper encapsulating FFTW plan for inverse FFT execution.
Definition FFTPlan.h:328
Mode mode() const
Output mode.
Definition RangeComp.h:70
int fftSize() const
FFT length.
Definition RangeComp.h:64
int chirpSize() const
Number of samples in chirp.
Definition RangeComp.h:58
Mode
Convolution output mode.
Definition RangeComp.h:14
@ Valid
The output contains only the valid discrete convolution of the input with the matched filter.
Definition RangeComp.h:31
@ Full
The output contains the full discrete convolution of the input with the matched filter.
Definition RangeComp.h:22
@ Same
The output contains the discrete convolution of the input with the matched filter,...
Definition RangeComp.h:37
int maxBatch() const
Max batch size.
Definition RangeComp.h:67
void applyNotch(double frequency, double bandwidth=0.0)
Apply a notch to the baseband frequency-domain representation of the chirp reference function.
Definition RangeComp.cpp:92
const std::complex< float > * chirp_spectrum() const
Get a pointer to the frequency spectrum of the chirp that will be used for range compression.
Definition RangeComp.h:96
void rangecompress(std::complex< float > *out, const std::complex< float > *in, int batch=1)
Perform pulse compression on a batch of input signals.
Definition RangeComp.cpp:154
int firstValidSample() const
Return the (zero-based) index of the first fully-focused pixel in the output.
Definition RangeComp.cpp:81
int inputSize() const
Expected number of samples in the input signal to be compressed.
Definition RangeComp.h:61
int outputSize() const
Output number of samples.
Definition RangeComp.cpp:76
RangeComp(const std::vector< std::complex< float > > &chirp, int inputsize, int maxbatch=1, Mode mode=Mode::Full)
Constructor.
Definition RangeComp.cpp:40
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.