SOFUS ..
|
#include <fnm.hpp>
Public Member Functions | |
Aperture () | |
Constructor. More... | |
Aperture (const size_t nElements, const T width, const T kerf, const T height) | |
~Aperture () | |
void | SubToElements () |
void | Rotate (const T iEuler[3], const T iFocus[3]) |
int | ExcitationTypeGet () const |
void | ExcitationTypeSet (const int iExcitationType) |
const T & | FCGet () const |
void | FCSet (const T &fc) |
const T & | BandWidthGet () const |
void | BandWidthSet (const T &value) |
const bool & | NormalizeGet () const |
void | NormalizeSet (const bool &value) |
void | FocusLinesCreate (size_t nLines, sofus::FocusLineList< T > **obj) const |
int | ImpulseTypeGet () const |
void | ImpulseTypeSet (const int iImpulseType) |
void | ExcitationGet (T **data, size_t *nData) const |
int | ExcitationSet (const T *data, const size_t nData) |
void | ImpulseGet (T **data, size_t *nData) const |
int | ImpulseSet (const T *data, const size_t nData) |
const size_t & | NDivWGet () const |
int | NDivWSet (const size_t &nDivW) |
const size_t & | NDivHGet () const |
int | NDivHSet (const size_t &nDivH) |
void | FocusUpdate () |
void | FocusUpdateRef () |
T | CalcPwFnmVectorized (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
T | CalcPwFnmVecThreaded (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
Accessors to read-only attributes | |
const size_t & | NElementsGet () const |
const size_t & | NSubElementsGet () const |
void | ExtentGet (T **coordinates, size_t *nDim, size_t *nLimits) const |
T | AreaGet () const |
void | PhasesGet (T **data, size_t *nData) const |
void | SubPhasesGet (T **data, size_t *nData) const |
void | RectanglesGet (T **out, size_t *nElements, size_t *nSubElements, size_t *nParams) const |
Read-only references for external use | |
int | ElementsRefGet (size_t *nElements, size_t *nSubElements, const sps::element_rect_t< T > **&elements) const |
int | ApodizationsRefGet (size_t *nElements, const T *&apodizations) const |
Accessor (getters) and Mutators (setters) | |
void | DelaysGet (T **data, size_t *nData) const |
int | DelaysSet (const T *data, const size_t nData) |
void | AttenuationEnabledSet (const bool &iEnabled) |
const bool & | AttenuationEnabledGet () const |
void | AlphaSet (const T &value) |
const T & | AlphaGet () const |
void | BetaSet (const T &value) |
const T & | BetaGet () const |
void | PositionsGet (T **out, size_t *nElements, size_t *nParams) const |
int | PositionsSet (const T *pos, const size_t nPositions, const size_t nDim) |
void | FocusGet (T oFocus[3]) const |
void | FocusSet (const T iFocus[3]) |
void | Focus2Get (T oFocus[3]) const |
void | Focus2Set (const T iFocus[3]) |
void | CenterFocusGet (T oFocus[3]) const |
void | CenterFocusSet (const T iFocus[3]) |
int | FocusingTypeGet () const |
void | FocusingTypeSet (const int iFocusingType) |
const size_t & | NThreadsGet () const |
int | NThreadsSet (const size_t &nThreads) |
const T & | F0Get () const |
void | F0Set (const T &f0) |
const T & | WGet () const |
void | WSet (const T &w) |
const sysparm_t< T > | SysParmGet () const |
void | SysParmSet (const sysparm_t< T > *arg) |
sofus::AperturePulses< T > * | PulsesGet () |
const T & | DensityGet () const |
void | DensitySet (const T &rho) |
const T & | FsGet () const |
int | FsSet (const T &fs) |
const T & | CGet () const |
void | CSet (const T &c) |
const T & | XmtFNumberGet () const |
void | XmtFNumberSet (const T &fnumber) |
void | ElementsGet (T **out, size_t *nElements, size_t *nParams) const |
int | ElementsSet (const T *pos, const size_t nPositions, const size_t nDim) |
Set element positions. More... | |
void | SubElementsGet (T **out, size_t *nElements, size_t *nSubElements, size_t *nParams) const |
int | SubElementsSet (const T *pos, const size_t nElements, const size_t nSubElementsPerElement, const size_t nDim) |
void | ApodizationGet (T **data, size_t *nData) const |
int | ApodizationSet (const T *data, const size_t nData) |
int | ApodizationTypeGet () const |
void | ApodizationTypeSet (const int iApodizationType) |
FNM Calculation functions | |
int | CalcCwFieldRef (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
int | CalcCwFieldFourRef (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
int | CalcCwEcho (const Aperture< T > *pOther, const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
int | CalcCwBack (const T *pos, const size_t nPositions, const size_t nDim, const std::complex< T > *pFieldValues, const size_t nComplexValues, std::complex< T > **odata, size_t *nOutPositions) |
int | CalcCwTimeReversal (const Aperture< T > *pOther, const T *pos, const size_t nPositions, const size_t nDim, const std::complex< T > *pFieldValues, const size_t nComplexValues, std::complex< T > **odata, size_t *nOutPositions, size_t *nSamples) |
int | CalcCwFast (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
int | CalcCwFieldNaiveFast (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
int | CalcCwFieldNaive (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
T | CalcPwFnmThreaded (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
T | CalcTransientSingleElementNoDelay (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
T | CalcPwBackScat (const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
SOFUS accellerated calculation functions | |
T | CalcMatchedFilter (const Aperture< T > *other, const T iFocus[3], T **odata, size_t *nSignals, size_t *nSamples, int **sizeAndOffsets, size_t *nFilters, size_t *nTwo, T **data, size_t *nData) |
T | CalcSmfApply (const Aperture< T > *other, const T iFocus[3], const T tStart, const T *iData, const size_t nChannels, const size_t nSamples, T **data, size_t *nData) |
T | CalcScat (const Aperture< T > *other, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
T | CalcScatThreaded (const Aperture< T > *other, const sofus::FocusLineList< T > *xmtLines, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
T | CalcPwEcho (const Aperture< T > *other, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
T | CalcPwFnmEcho (const Aperture< T > *other, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
T | CalcPwField (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples) |
T | CalcPwFieldRef (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples) |
T | CalcPwFieldThreaded (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples) |
Developers corner (do not touch) | |
void | InPlaceOP (T *ioData, size_t nIOdata) |
Angular spectrum approach (work in progress) | |
int | CalcAsa (const T *y0, const size_t nx, const size_t ny, const T dx, const T dy, const size_t Nx, const size_t Ny, std::complex< T > **p1, size_t *onx, size_t *ony, size_t *onz) |
Static Public Member Functions | |
static int | ArrayCreate (Aperture< T > **obj) |
static int | FocusedLinearArrayCreate (Aperture< T > **obj, const size_t nElements, const T width, const T kerf, const T height, const size_t nSubH, const T focus) |
static int | MatrixArrayCreate (Aperture< T > **obj, const size_t nRows, const size_t nCols, const T rowWidth, const T rowKerf, const T colWidth, const T colKerf) |
static int | FocusedConvexArrayCreate (fnm::Aperture< T > **obj, const size_t nElements, const T width, const T kerf, const T height, const T radius, const size_t nSubH, const T focus) |
static sysparm_t< T > * | DefaultSysParmGet () |
Static Public Attributes | |
Static variables | |
static const size_t | nVerticesPerElement = 4 |
static const size_t | nElementPosParameters = 8 |
static bool | normalize |
Normalize responses. More... | |
static const T | Neper_dB |
static const T | dB_Neper |
Aperture class.
T | floating point type |
A class representing an aperture. Consider using (backslash)nosubgrouping
Aperture | ( | ) |
Constructor.
The constructor can be used to create arbitrary transducers using ElementsSet or SubElementsSet after construction.
Aperture | ( | const size_t | nElements, |
const T | width, | ||
const T | kerf, | ||
const T | height | ||
) |
Constructor for linear array
[in] | nElements | |
[in] | width | |
[in] | kerf | |
[in] | height |
~Aperture | ( | ) |
Destructor
const T & AlphaGet | ( | ) | const |
Get attenuation alpha parameter
void AlphaSet | ( | const T & | value | ) |
Set attenuation alpha parameter
[in] | value |
void ApodizationGet | ( | T ** | data, |
size_t * | nData | ||
) | const |
Get apodization
[out] | data | |
[out] | nData |
int ApodizationSet | ( | const T * | data, |
const size_t | nData | ||
) |
Set apodization
[in] | data | |
[in] | nData |
int ApodizationsRefGet | ( | size_t * | nElements, |
const T *& | apodizations | ||
) | const |
Get reference to apodizations
[out] | nElements | |
[out] | apodizations |
int ApodizationTypeGet | ( | ) | const |
Get apodization type
void ApodizationTypeSet | ( | const int | iApodizationType | ) |
Set apodization
[in] | iApodizationType |
T AreaGet | ( | ) | const |
Get area of aperture
|
static |
Static constructor for empty array
obj |
const bool & AttenuationEnabledGet | ( | ) | const |
Is attenuation enabled
void AttenuationEnabledSet | ( | const bool & | iEnabled | ) |
Enable attenuation
[in] | iEnabled |
const T & BandWidthGet | ( | ) | const |
Get bandwidth
void BandWidthSet | ( | const T & | value | ) |
Set bandwidth
[in] | value |
const T & BetaGet | ( | ) | const |
Get beta attenuation value
void BetaSet | ( | const T & | value | ) |
Set beta attenuation value.
Signals are attenuated according to:
where is the distance. Note the unit is Neper and not dB. Multiply an attenuation in dB with Aperture<T>::Neper_dB
Example:
0.54 dB / (cm MHz), f0 = 2 MHz
beta = 0.54 * 100 / 1e6 * 0.11 Neper / dB = 6.22e-6 Neper/(Hz m)
alpha = 2e6 * 0.54 * 100 / 1e6 * 0.11 Neper/ dB = 12.43 Neper/m
[in] | value | [Neper/(Hz m)] |
int CalcAsa | ( | const T * | y0, |
const size_t | nx, | ||
const size_t | ny, | ||
const T | dx, | ||
const T | dy, | ||
const size_t | Nx, | ||
const size_t | Ny, | ||
std::complex< T > ** | p1, | ||
size_t * | onx, | ||
size_t * | ony, | ||
size_t * | onz | ||
) |
[in] | y0 | |
[in] | nx | |
[in] | ny | |
[in] | dx | |
[in] | dy | |
[in] | Nx | |
[in] | Ny | |
[out] | p1 | |
[out] | onx | |
[out] | ony | |
[out] | onz |
int CalcCwBack | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
const std::complex< T > * | pFieldValues, | ||
const size_t | nComplexValues, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions | ||
) |
int CalcCwEcho | ( | const Aperture< T > * | pOther, |
const T * | pos, | ||
const size_t | nPositions, | ||
const size_t | nDim, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions | ||
) |
int CalcCwFast | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions | ||
) |
Compute CW response at multiple positions (uses SIMD). The ranges of integration are reduced to give the most accurate result with less abcissas.
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nOutPositions |
int CalcCwFieldFourRef | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions | ||
) |
Compute CW response at multiple positions. Number of integrals is reduced to four
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nOutPositions |
int CalcCwFieldNaive | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions | ||
) |
Compute CW response at multiple positions. The range of integration is naive so it is accurate when projections lie inside an element, but requires a huge amount of abcissas to get a usuable result, when projections lie outside an element.
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nOutPositions |
int CalcCwFieldNaiveFast | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions | ||
) |
Same as CalcCwField, but uses SIMD.
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nOutPositions |
int CalcCwFieldRef | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions | ||
) |
Compute CW response at multiple positions. Reference implementation. See fnm::CalcCwFieldRef.
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nOutPositions |
int CalcCwTimeReversal | ( | const Aperture< T > * | pOther, |
const T * | pos, | ||
const size_t | nPositions, | ||
const size_t | nDim, | ||
const std::complex< T > * | pFieldValues, | ||
const size_t | nComplexValues, | ||
std::complex< T > ** | odata, | ||
size_t * | nOutPositions, | ||
size_t * | nSamples | ||
) |
T CalcMatchedFilter | ( | const Aperture< T > * | other, |
const T | iFocus[3], | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples, | ||
int ** | sizeAndOffsets, | ||
size_t * | nFilters, | ||
size_t * | nTwo, | ||
T ** | data, | ||
size_t * | nData | ||
) |
[in] | other | |
[in] | iFocus | |
[in] | odata | |
[in] | nSignals | |
[out] | nSamples | |
[out] | sizeAndOffsets | |
[out] | nFilters | |
[out] | nTwo | |
[out] | data | |
[out] | nData |
T CalcPwBackScat | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
const T * | data, | ||
const size_t | nData, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
T CalcPwEcho | ( | const Aperture< T > * | other, |
const T * | pos, | ||
const size_t | nPositions, | ||
const size_t | nDim, | ||
const T * | data, | ||
const size_t | nData, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
[in] | other | |
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[in] | data | |
[in] | nData | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples |
T CalcPwField | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
Compute pulsed-wave field
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples |
T CalcPwFieldRef | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
Reference implementation of Aperture::CalcPwField
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples |
T CalcPwFieldThreaded | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
Threaded version of Aperture::CalcPwField.
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples |
T CalcPwFnmEcho | ( | const Aperture< T > * | other, |
const T * | pos, | ||
const size_t | nPositions, | ||
const size_t | nDim, | ||
const T * | data, | ||
const size_t | nData, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
T CalcPwFnmThreaded | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples, | ||
int | mask = 0x1F |
||
) |
Calculate pulsed wave field using fast near-field method.
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples | |
[in] | mask |
T CalcPwFnmVecThreaded | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples, | ||
int | mask = 0x1F |
||
) |
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples | |
[in] | mask |
T CalcPwFnmVectorized | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples, | ||
int | mask = 0x1F |
||
) |
Calculate pulsed wave field using fast near-field method
Experimental SSE4 version
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples | |
[in] | mask |
T CalcScat | ( | const Aperture< T > * | other, |
const T * | pos, | ||
const size_t | nPositions, | ||
const size_t | nDim, | ||
const T * | data, | ||
const size_t | nData, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
Rename to sim image
[in] | other | |
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[in] | data | |
[in] | nData | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples |
T CalcScatThreaded | ( | const Aperture< T > * | other, |
const sofus::FocusLineList< T > * | xmtLines, | ||
const T * | pos, | ||
const size_t | nPositions, | ||
const size_t | nDim, | ||
const T * | data, | ||
const size_t | nData, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples | ||
) |
T CalcSmfApply | ( | const Aperture< T > * | other, |
const T | iFocus[3], | ||
const T | tStart, | ||
const T * | iData, | ||
const size_t | nChannels, | ||
const size_t | nSamples, | ||
T ** | data, | ||
size_t * | nData | ||
) |
[in] | other | |
[in] | iFocus | |
[in] | tStart | |
[in] | iData | |
[in] | nChannels | |
[in] | nSamples | |
[out] | data | |
[out] | nData |
T CalcTransientSingleElementNoDelay | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim, | ||
T ** | odata, | ||
size_t * | nSignals, | ||
size_t * | nSamples, | ||
int | mask = 0x1F |
||
) |
Compute transient for first element.
Mask bits: 0x01: Direct, 0x02: Edge (q0->q3) 0x04: Edge (q0->q1) 0x08: Edge (q1->q2) 0x10: Edge (q2->q3) 0x1F: All contributions (default)
[in] | pos | |
[in] | nPositions | |
[in] | nDim | |
[out] | odata | |
[out] | nSignals | |
[out] | nSamples | |
[in] | mask |
void CenterFocusGet | ( | T | oFocus[3] | ) | const |
Get center focus point
[out] | oFocus |
void CenterFocusSet | ( | const T | iFocus[3] | ) |
Set center focus point
[in] | iFocus |
const T & CGet | ( | ) | const |
Get speed of sound
void CSet | ( | const T & | c | ) |
Set speed of sound
[in] | c |
|
static |
Get default system parameters. The system parameters are shared among all apertures, unless system paramters are changed using Aperture::SysParmGet and Aperture::SysParmSet for a specific array.
void DelaysGet | ( | T ** | data, |
size_t * | nData | ||
) | const |
Get delays of elements
[out] | data | |
[out] | nData |
int DelaysSet | ( | const T * | data, |
const size_t | nData | ||
) |
Set delays of elements
[in] | data | |
[in] | nData |
const T & DensityGet | ( | ) | const |
void DensitySet | ( | const T & | rho | ) |
void ElementsGet | ( | T ** | out, |
size_t * | nElements, | ||
size_t * | nParams | ||
) | const |
Get element definitions
[out] | out | |
[out] | nElements | |
[out] | nParams |
int ElementsRefGet | ( | size_t * | nElements, |
size_t * | nSubElements, | ||
const sps::element_rect_t< T > **& | elements | ||
) | const |
Get reference to (sub)-elements
[out] | nElements | |
[out] | nSubElements | |
[out] | elements |
bool ElementsSet | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim | ||
) |
Set element positions.
[in] | pos | Input data T[nElements][8] |
[in] | nPositions | |
[in] | nDim | Must equal 8 |
std::runtime_error | nDim != 8 |
void ExcitationGet | ( | T ** | data, |
size_t * | nData | ||
) | const |
Get excitation (reference to or view of)
[out] | data | |
[out] | nData |
int ExcitationSet | ( | const T * | data, |
const size_t | nData | ||
) |
Set excitation
[in] | data | |
[in] | nData |
int ExcitationTypeGet | ( | ) | const |
Get excitation type
void ExcitationTypeSet | ( | const int | iExcitationType | ) |
Set Excitation type (0: ToneBurst, 1: Hamming-weighted pulse)
iExcitationType |
void ExtentGet | ( | T ** | coordinates, |
size_t * | nDim, | ||
size_t * | nLimits | ||
) | const |
Get extent of aperture
[out] | coordinates | data |
[out] | nDim | 3 dimensions |
[out] | nLimits | Min and maximum |
const T & F0Get | ( | ) | const |
Get excitation center frequency
void F0Set | ( | const T & | f0 | ) |
Set excitation center frequency
[in] | f0 |
const T & FCGet | ( | ) | const |
Get transducer center frequency used for computing impulse response
void FCSet | ( | const T & | fc | ) |
Set pulse center frequency
[out] | fc |
void Focus2Get | ( | T | oFocus[3] | ) | const |
Get second focus point
[out] | oFocus |
void Focus2Set | ( | const T | iFocus[3] | ) |
Set second focus point
[in] | iFocus |
|
static |
Static constructor for elevation focused convex array
[out] | obj | |
[in] | nElements | |
[in] | width | |
[in] | kerf | |
[in] | height | |
[in] | radius | |
[in] | nSubH | |
[in] | focus |
|
static |
Static constructor for elevation focused linear array
[out] | obj | |
[in] | nElements | |
[in] | width | |
[in] | kerf | |
[in] | height | |
[in] | nSubH | Number of sub-elements used for elevation (default=1) |
[in] | focus | Elevation focus depth (0.0 means no elevation focus) |
void FocusGet | ( | T | oFocus[3] | ) | const |
Get focus point or virtual source
[out] | oFocus |
int FocusingTypeGet | ( | ) | const |
Get focus type used
void FocusingTypeSet | ( | const int | iFocusingType | ) |
Set focus type used
[in] | iFocusingType |
void FocusLinesCreate | ( | size_t | nLines, |
sofus::FocusLineList< T > ** | obj | ||
) | const |
Create a number of lines, which can be used for focusing
[out] | nLines | |
[out] | obj |
void FocusSet | ( | const T | iFocus[3] | ) |
Set focus point or virtual source
[in] | iFocus |
void FocusUpdate | ( | ) |
Update phases after setting focus. This function is used by all methods for adjusting phases for focusing.
void FocusUpdateRef | ( | ) |
Reference implementation of fnm::FocusUpdate
const T & FsGet | ( | ) | const |
Get sampling frequency
int FsSet | ( | const T & | fs | ) |
Set sampling frequency
[in] | fs |
void ImpulseGet | ( | T ** | data, |
size_t * | nData | ||
) | const |
Get impulse (reference to or view of)
[out] | data | |
[out] | nData |
int ImpulseSet | ( | const T * | data, |
const size_t | nData | ||
) |
Set impulse
[in] | data | |
[in] | nData |
int ImpulseTypeGet | ( | ) | const |
Get impulse type
void ImpulseTypeSet | ( | const int | iImpulseType | ) |
Set impulse type
iImpulseType |
void InPlaceOP | ( | T * | ioData, |
size_t | nIOdata | ||
) |
|
static |
Create Matrix array - all elements are elements (no sub-elements)
[out] | obj | |
[in] | nRows | |
[in] | nCols | |
[in] | rowWidth | |
[in] | rowKerf | |
[in] | colWidth | |
[in] | colKerf |
const size_t & NDivHGet | ( | ) | const |
Get number of height abcissas
int NDivHSet | ( | const size_t & | nDivH | ) |
Set number of height abicissas
[in] | nDivH |
const size_t & NDivWGet | ( | ) | const |
Get number of width abcissas
int NDivWSet | ( | const size_t & | nDivW | ) |
Set number of width abcissas
[in] | nDivW |
const size_t & NElementsGet | ( | ) | const |
Get element count
const bool & NormalizeGet | ( | ) | const |
Get normalization state
void NormalizeSet | ( | const bool & | value | ) |
Enable normalization of convolutions
[in] | value |
const size_t & NSubElementsGet | ( | ) | const |
Get sub-element count
const size_t & NThreadsGet | ( | ) | const |
Get number of threads
int NThreadsSet | ( | const size_t & | nThreads | ) |
Set number of threads
[in] | nThreads |
void PhasesGet | ( | T ** | data, |
size_t * | nData | ||
) | const |
Get phases of elements
[out] | data | |
[out] | nData |
void PositionsGet | ( | T ** | out, |
size_t * | nElements, | ||
size_t * | nParams | ||
) | const |
Get element position data
[out] | out | |
[out] | nElements | |
[out] | nParams |
int PositionsSet | ( | const T * | pos, |
const size_t | nPositions, | ||
const size_t | nDim | ||
) |
Set element position data (may differ from center-most sub-element)
[in] | pos | |
[in] | nPositions | |
[in] | nDim |
sofus::AperturePulses< T > * PulsesGet | ( | ) |
void RectanglesGet | ( | T ** | out, |
size_t * | nElements, | ||
size_t * | nSubElements, | ||
size_t * | nParams | ||
) | const |
Get rectangles for display
[out] | out | |
[out] | nElements | |
[out] | nSubElements | |
[out] | nParams |
void Rotate | ( | const T | iEuler[3], |
const T | iFocus[3] | ||
) |
Rotate the array around a point
iEuler | Euler angles using convention 'yxy' |
iFocus | Point to rotate about |
void SubElementsGet | ( | T ** | out, |
size_t * | nElements, | ||
size_t * | nSubElements, | ||
size_t * | nParams | ||
) | const |
Get sub-element definitions
[out] | out | |
[out] | nElements | |
[out] | nSubElements | |
[out] | nParams |
int SubElementsSet | ( | const T * | pos, |
const size_t | nElements, | ||
const size_t | nSubElementsPerElement, | ||
const size_t | nDim | ||
) |
Set sub-element definitions
[in] | pos | |
[in] | nElements | |
[in] | nSubElementsPerElement | |
[in] | nDim |
void SubPhasesGet | ( | T ** | data, |
size_t * | nData | ||
) | const |
Get phases of elements
[out] | data | |
[out] | nData |
void SubToElements | ( | ) |
const sysparm_t< T > SysParmGet | ( | ) | const |
Get system parameters (TODO: Avoid grouping)
void SysParmSet | ( | const sysparm_t< T > * | arg | ) |
Set the system parameters
[in] | arg |
const T & WGet | ( | ) | const |
Get width of pulse [s]
void WSet | ( | const T & | w | ) |
Set width of pulse [s]. TODO: Figure this out
[in] | w |
const T & XmtFNumberGet | ( | ) | const |
Get transmit f-number
void XmtFNumberSet | ( | const T & | fnumber | ) |
Set transmit f-number
[in] | fnumber |
|
static |
dB per Neper, 20 log(e)
|
static |
Number of parameters for an element
|
static |
Nepers per dB, 1 / ( 20 log(e))
|
static |
Normalize responses.
|
static |
Number of corners for an element