Files
UR/src/transmissionReconstruction/detection/detection.h

84 lines
3.6 KiB
C
Raw Normal View History

2023-05-19 13:43:12 +08:00
#ifndef __TRANS_DETECTION_H__
#define __TRANS_DETECTION_H__
#include "Matrix.h"
namespace Recon {
struct SearchPosition {
Aurora::Matrix startSearch;
Aurora::Matrix endSearch;
};
struct TimeWindowResult {
Aurora::Matrix startSearch;
Aurora::Matrix AscanBlockProcessed;
};
2023-05-23 09:39:21 +08:00
struct DetectResult {
2023-05-19 13:43:12 +08:00
Aurora::Matrix tof;
Aurora::Matrix sosValue;
2023-05-23 09:39:21 +08:00
Aurora::Matrix att;
2023-05-19 13:43:12 +08:00
};
Aurora::Matrix calculateAttenuation(const Aurora::Matrix &ascans,
const Aurora::Matrix &startPos,
const Aurora::Matrix &endPos,
const Aurora::Matrix &ascansRef,
const Aurora::Matrix &startPosRef,
const Aurora::Matrix &endPosRef);
SearchPosition
calculateStarEndSearchPosition(const Aurora::Matrix &aVDistBlock,
2023-10-09 09:29:21 +08:00
float minSpeedOfSound, float maxSpeedOfSound,
float sampleRate, float maxSample,
2023-05-19 13:43:12 +08:00
const Aurora::Matrix &aVSosOffsetBlock,
2023-10-09 09:29:21 +08:00
float startOffset, float segmentLenOffset);
2023-05-19 13:43:12 +08:00
TimeWindowResult applyTimeWindowing(
2023-10-09 09:29:21 +08:00
const Aurora::Matrix &AscanBlock, float sampleRate,
2023-05-19 13:43:12 +08:00
const Aurora::Matrix &distBlock, const Aurora::Matrix &sosBlock,
2023-10-09 09:29:21 +08:00
float expectedSOSWater, float startOffset, float segmentLenOffset,
float minSpeedOfSound, float maxSpeedOfSound, bool gaussWindow);
2023-05-19 13:43:12 +08:00
2023-05-23 09:39:21 +08:00
Aurora::Matrix
detectAttVectorized(const Aurora::Matrix &Ascan, const Aurora::Matrix &AscanRef,
const Aurora::Matrix &distRef,
const Aurora::Matrix &sosWaterRef,
const Aurora::Matrix &tof, int aScanReconstructionFrequency,
2023-10-09 09:29:21 +08:00
float offsetElectronic, int detectionWindowATT);
2023-05-19 15:53:58 +08:00
2023-05-23 09:39:21 +08:00
DetectResult
detectTofVectorized(
2023-05-19 15:53:58 +08:00
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
const Aurora::Matrix &distBlock, const Aurora::Matrix &distBlockRef,
const Aurora::Matrix &sosWaterBlock,
2023-10-09 09:29:21 +08:00
const Aurora::Matrix &sosWaterRefBlock, float expectedSOSWater,
2023-05-19 15:53:58 +08:00
int useTimeWindowing, int aScanReconstructionFrequency,
2023-10-09 09:29:21 +08:00
float offsetElectronic, int detectionWindowSOS, float minSpeedOfSound,
float maxSpeedOfSound, bool gaussWindow);
2023-05-23 09:39:21 +08:00
DetectResult
detectTofAndAtt(
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
const Aurora::Matrix &distBlock, const Aurora::Matrix &distRefBlock,
const Aurora::Matrix &sosWaterBlock, const Aurora::Matrix &sosWaterRefBlock,
2023-10-09 09:29:21 +08:00
int resampleFactor, int nthreads, float expectedSOSWater,
2023-05-23 09:39:21 +08:00
int useTimeWindowing, int aScanReconstructionFrequency,
2023-10-09 09:29:21 +08:00
int detectionWindowATT, float offsetElectronic, int detectionWindowSOS,
float minSpeedOfSound, float maxSpeedOfSound, bool gaussWindow);
2023-05-23 09:39:21 +08:00
DetectResult
detectTofAndAttMex(
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
const Aurora::Matrix &distBlock, const Aurora::Matrix &distBlockRef,
const Aurora::Matrix &sosWaterBlock, const Aurora::Matrix &sosWaterRefBlock,
2023-10-09 09:29:21 +08:00
int resampleFactor, int nthreads, float expectedSOSWater,
2023-05-23 09:39:21 +08:00
int useTimeWindowing, int aScanReconstructionFrequency,
2023-10-09 09:29:21 +08:00
int detectionWindowATT, float offsetElectronic, int detectionWindowSOS,
float minSpeedOfSound, float maxSpeedOfSound, bool gaussWindow);
2023-05-23 09:39:21 +08:00
DetectResult
transmissionDetection(
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
const Aurora::Matrix &distBlock, const Aurora::Matrix &distRefBlock,
2023-10-09 09:29:21 +08:00
const Aurora::Matrix &sosWaterBlock, const Aurora::Matrix &sosWaterRefBlock, float expectedSOSWater);
2023-05-19 13:43:12 +08:00
} // namespace Recon
#endif // __DETECTION_H__