isce3 0.25.0
Loading...
Searching...
No Matches
WinChirpRgCompPow.h File Reference

Chirp and range compress related helper functionalities. More...

#include <complex>
#include <tuple>
#include <vector>
#include <isce3/core/EMatrix.h>
#include "WinChirpRgCompPow.icc"

Go to the source code of this file.

Namespaces

namespace  isce3
 base interpolator is an abstract base class
 

Typedefs

using isce3::antenna::detail::RowMatrixXcf = isce3::core::EMatrix2D<std::complex<float>>
 

Functions

template<typename T = float>
std::vector< T > isce3::antenna::detail::genRaisedCosineWin (int size, double ped)
 Generate a raised-cosine window function with a desired pedestal.
 
std::vector< std::complex< float > > isce3::antenna::detail::genRcosWinChirp (double sample_freq, double chirp_slope, double chirp_dur, double win_ped=0.0, bool norm=true)
 Generate a unit-energy raised-cosine-windowed baseband complex analytical chirp.
 
Eigen::ArrayXd isce3::antenna::detail::meanRgCompEchoPower (const Eigen::Ref< const RowMatrixXcf > &echo_mat, const std::vector< std::complex< float > > &chirp_ref)
 Averaged Power of range compressed complex raw echo over multiple range lines as a function of true valid range bins.
 
std::tuple< Eigen::ArrayXd, Eigen::ArrayXd > isce3::antenna::detail::rangeCalibAvgEchoPower (const Eigen::Ref< const Eigen::ArrayXd > &echo_pow, double rg_start, double rg_spacing, int size_avg=1)
 Path-loss corrected/calibrated averaged/decimated uniformly-sampled echo power as a function of slant ranges.
 

Detailed Description

Chirp and range compress related helper functionalities.

Function Documentation

◆ genRaisedCosineWin()

template<typename T = float>
std::vector< T > isce3::antenna::detail::genRaisedCosineWin ( int size,
double ped )

Generate a raised-cosine window function with a desired pedestal.

Window is symmetric and has a peak equal to 1.0 at the center only for odd window size. The end points are equal to pedestal value.

Parameters
[in]sizea positive integer for size of the window > 1.
[in]pedpedestal of the widnow. A value within [0.0, 1.0] where 1.0 is rectangular window while 0.0 is Hann window. Ped=0.08 is a Hamming window.
Returns
a floating-point vector of window function.
Exceptions
InvalidArgument
Note
Given pedestal value "p" and size "L", the window function is \(\frac{1+p}{2} - \frac{1-p}{2} \times \cos(\frac{2\pi}{L-1}n)\) where \(n = 0, 1, 2, \cdots, L-1\).

◆ genRcosWinChirp()

std::vector< std::complex< float > > isce3::antenna::detail::genRcosWinChirp ( double sample_freq,
double chirp_slope,
double chirp_dur,
double win_ped = 0.0,
bool norm = true )
inline

Generate a unit-energy raised-cosine-windowed baseband complex analytical chirp.

That is a basebanded linear FM with a symmetric rectangular or raised-cosine envelope.

Parameters
[in]sample_freqsampling frequency in (Hz) or (MHz)
[in]chirp_slopechirp slope in (Hz/sec) or (MHz/usec) depending on unit of "sample_freq".
[in]chirp_durchirp duration in (sec) or (usec) depending on the inverse unit of "sample_freq".
[in]win_pedraised-cosine window pedestal, a value within [0.0, 1.0]. Default is "Hann" window.
[in]norma bool, whether or not normalize output to be unit-energy.
Returns
a vector of time-series complex floating-point chirp samples.
Exceptions
InvalidArgument
See also
isce3::focus::formLinearChirp(), genRaisedCosineWin()

◆ meanRgCompEchoPower()

Eigen::ArrayXd isce3::antenna::detail::meanRgCompEchoPower ( const Eigen::Ref< const RowMatrixXcf > & echo_mat,
const std::vector< std::complex< float > > & chirp_ref )
inline

Averaged Power of range compressed complex raw echo over multiple range lines as a function of true valid range bins.

Only valid part of range compressed data will be returned!

Parameters
[in]echo_matraw echo matrix, a row-major Eigen matrix of type complex float. The rows represent range lines. The matrix shape is pulses (azimuth bins) by range bins.
[in]chirp_refBasebanded Chirp reference complex float vector used in range compresssion. Its size shall not be larger than number of range bins or columns of "echo_mat", otherwise, it throws LengthError.
Returns
An eigen vector of real-value double precision representing averaged power over range lines of range compressed echo as a function of true and valid range bins after pulse extension deconvolution. The number of range bins will be smaller than that of raw echo (its columns) due to pulse extension.
Exceptions
LengthError

◆ rangeCalibAvgEchoPower()

std::tuple< Eigen::ArrayXd, Eigen::ArrayXd > isce3::antenna::detail::rangeCalibAvgEchoPower ( const Eigen::Ref< const Eigen::ArrayXd > & echo_pow,
double rg_start,
double rg_spacing,
int size_avg = 1 )
inline

Path-loss corrected/calibrated averaged/decimated uniformly-sampled echo power as a function of slant ranges.

Note that the last few samples might be thrown out depending on averaging block size.

Parameters
[in]echo_powa vector of echo power uniformly-sampled in range.
[in]rg_startstarting range in (meters)
[in]rg_spacingrange spacing in (meters)
[in]size_avgblock size for averaing. That is the number of range bins to be averaged. This also deteremines the final range spacing which is "size_avg * rg_space". Note that size_avg shall be within [1,echo_pow.size].
Returns
power array
slant-range array
Exceptions
InvalidArgument,LengthError

Generated for ISCE3.0 by doxygen 1.13.2.