37 lines
1.4 KiB
C++
37 lines
1.4 KiB
C++
#include "dataPreperation.h"
|
|
#include "Function1D.h"
|
|
#include "Function2D.h"
|
|
#include "Function3D.h"
|
|
#include <cstddef>
|
|
|
|
|
|
namespace Recon
|
|
{
|
|
Aurora::Matrix distanceBetweenTwoPoints(Aurora::Matrix aPtsA, Aurora::Matrix aPtsB)
|
|
{
|
|
return Aurora::sqrt(Aurora::sum((aPtsA-aPtsB)^2));
|
|
}
|
|
|
|
Aurora::Matrix calculateWaterTemperature(Aurora::Matrix aMWaterTempS,
|
|
Aurora::Matrix aMWaterTempR,
|
|
Aurora::Matrix aVsl,
|
|
Aurora::Matrix aVrl,
|
|
Aurora::Matrix aVmp)
|
|
{
|
|
auto idx1 = Aurora::sub2ind(Aurora::size(aMWaterTempS), {aVsl, aVmp});
|
|
auto idx2 = Aurora::sub2ind(Aurora::size(aMWaterTempR), {aVrl, aVmp});
|
|
auto waterTemp = Aurora::zeros(idx1.getDataSize(),1);
|
|
for (size_t i = 0; i<idx1.getDataSize(); ++i) {
|
|
waterTemp.getData()[i] = (aMWaterTempS.getData()[(int)idx1.getData()[i]]+
|
|
aMWaterTempR.getData()[(int)idx2.getData()[i]])/2;
|
|
}
|
|
return waterTemp;
|
|
}
|
|
|
|
Aurora::Matrix prepareAScansForTransmissionDetection(const Aurora::Matrix& aMaScanBlock, const Aurora::Matrix aVGainBlock)
|
|
{
|
|
auto ret = aMaScanBlock/Aurora::repmat(aVGainBlock,aMaScanBlock.getDimSize(0),1);
|
|
ret = ret-Aurora::repmat(Aurora::mean(ret),aMaScanBlock.getDimSize(0),1);
|
|
return ret;
|
|
}
|
|
} |