isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
RangeComp.h
1 #pragma once
2 
3 #include <complex>
4 #include <vector>
5 
6 #include <isce3/fft/FFT.h>
7 
8 namespace isce3 { namespace focus {
9 
11 class RangeComp {
12 public:
14  enum class Mode {
22  Full,
23 
31  Valid,
32 
37  Same
38  };
39 
52  RangeComp(const std::vector<std::complex<float>> & chirp,
53  int inputsize,
54  int maxbatch = 1,
55  Mode mode = Mode::Full);
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 
93  void rangecompress(std::complex<float> * out, const std::complex<float> * in, int batch = 1);
94 
95 private:
96  int _chirpsize;
97  int _inputsize;
98  int _fftsize;
99  int _maxbatch;
100  Mode _mode;
101  std::vector<std::complex<float>> _reffn;
102  std::vector<std::complex<float>> _wkspc;
105 };
106 
107 }}
Range compression processor.
Definition: RangeComp.h:11
int chirpSize() const
Number of samples in chirp.
Definition: RangeComp.h:58
int outputSize() const
Output number of samples.
Definition: RangeComp.cpp:75
The output contains only the valid discrete convolution of the input with the matched filter...
RangeComp(const std::vector< std::complex< float >> &chirp, int inputsize, int maxbatch=1, Mode mode=Mode::Full)
Constructor.
Definition: RangeComp.cpp:39
int firstValidSample() const
Return the (zero-based) index of the first fully-focused pixel in the output.
Definition: RangeComp.cpp:80
The output contains the full discrete convolution of the input with the matched filter.
Mode mode() const
Output mode.
Definition: RangeComp.h:70
The output contains the discrete convolution of the input with the matched filter, cropped to the same size as the input signal.
Mode
Convolution output mode.
Definition: RangeComp.h:14
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:91
int fftSize() const
FFT length.
Definition: RangeComp.h:64
int inputSize() const
Expected number of samples in the input signal to be compressed.
Definition: RangeComp.h:61
int maxBatch() const
Max batch size.
Definition: RangeComp.h:67

Generated for ISCE3.0 by doxygen 1.8.5.