Add ceMatchedFilterHandling to common folder
This commit is contained in:
@@ -44,27 +44,24 @@ Aurora::Matrix Recon::adaptFrequency(Aurora::Matrix &aCE, double ceSampleFrequen
|
|||||||
Aurora::Matrix Recon::preprocessCE(Aurora::Matrix &aCE, double ceSampleFrequency, double requiredFrequency, double expectedLength)
|
Aurora::Matrix Recon::preprocessCE(Aurora::Matrix &aCE, double ceSampleFrequency, double requiredFrequency, double expectedLength)
|
||||||
{
|
{
|
||||||
adaptFrequency(aCE,ceSampleFrequency,requiredFrequency);
|
adaptFrequency(aCE,ceSampleFrequency,requiredFrequency);
|
||||||
aCE = aCE - Aurora::mean(aCE);
|
aCE = aCE - Aurora::mean(aCE).getScalar();
|
||||||
aCE = aCE / Aurora::max(Aurora::abs(aCE)).getScalar();
|
aCE = aCE / Aurora::max(Aurora::abs(aCE)).getScalar();
|
||||||
aCE = aCE / Aurora::sum(Aurora::abs(aCE)).getScalar();
|
aCE = aCE / Aurora::sum(Aurora::abs(aCE)).getScalar();
|
||||||
|
|
||||||
// % adapt to AScan length
|
Aurora::padding(aCE,expectedLength,0.0);
|
||||||
// ce(expectedLength) = 0; % padding to size of ascan
|
|
||||||
|
|
||||||
// if (length(ce) > expectedLength) % cropping to size of ascan
|
if (expectedLength<aCE.getDataSize()){
|
||||||
// ce(expectedLength+1:end) = [];
|
aCE.forceReshape(expectedLength,1,1);
|
||||||
// end
|
}
|
||||||
|
|
||||||
// ce = ce(:);
|
|
||||||
return aCE;
|
return aCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Aurora::Matrix Recon::createMatchedFilter(const Aurora::Matrix &aCE,
|
Aurora::Matrix Recon::createMatchedFilter(const Aurora::Matrix &aCE,
|
||||||
bool measuredCEused, bool findDefects,
|
bool measuredCEused, bool findDefects,
|
||||||
bool removeOutliersFromCEMeasured, std::string hardwareVersion)
|
bool aRemoveOutliersFromCEMeasured, std::string aHardwareVersion)
|
||||||
{
|
{
|
||||||
Aurora::Matrix mFTime = Aurora::Matrix::copyFromRawData(aCE.getData(), 4000, 2304);
|
Aurora::Matrix mFTime = Aurora::Matrix::copyFromRawData(aCE.getData(), 4000, 2304);
|
||||||
if (removeOutliersFromCEMeasured)
|
if (aRemoveOutliersFromCEMeasured)
|
||||||
{
|
{
|
||||||
auto normSTD = Aurora::std(Aurora::abs(mFTime));
|
auto normSTD = Aurora::std(Aurora::abs(mFTime));
|
||||||
Aurora::nantoval(normSTD, 0.0);
|
Aurora::nantoval(normSTD, 0.0);
|
||||||
@@ -114,7 +111,7 @@ Aurora::Matrix Recon::createMatchedFilter(const Aurora::Matrix &aCE,
|
|||||||
|
|
||||||
if (measuredCEused)
|
if (measuredCEused)
|
||||||
{
|
{
|
||||||
auto mFTime2 = Aurora::real(Aurora::ifft(hardwareVersion == "USCT3Dv3" ? -matchedFilter : matchedFilter));
|
auto mFTime2 = Aurora::real(Aurora::ifft(aHardwareVersion == "USCT3Dv3" ? -matchedFilter : matchedFilter));
|
||||||
mFTime2 = mFTime2 / Aurora::repmat(Aurora::max(Aurora::abs(mFTime2)), mFTime2.getDimSize(0), 1);
|
mFTime2 = mFTime2 / Aurora::repmat(Aurora::max(Aurora::abs(mFTime2)), mFTime2.getDimSize(0), 1);
|
||||||
mFTime2 = mFTime2 / Aurora::repmat(Aurora::sum(Aurora::abs(mFTime2)), mFTime2.getDimSize(0), 1);
|
mFTime2 = mFTime2 / Aurora::repmat(Aurora::sum(Aurora::abs(mFTime2)), mFTime2.getDimSize(0), 1);
|
||||||
matchedFilter = Aurora::fft(mFTime2);
|
matchedFilter = Aurora::fft(mFTime2);
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
#include "Matrix.h"
|
#include "Matrix.h"
|
||||||
namespace Recon
|
namespace Recon
|
||||||
{
|
{
|
||||||
|
|
||||||
Aurora::Matrix adaptFrequency(Aurora::Matrix &aCE,double ceSampleFrequency, double requiredFrequency);
|
Aurora::Matrix adaptFrequency(Aurora::Matrix &aCE,double ceSampleFrequency, double requiredFrequency);
|
||||||
|
// Aurora::Matrix preprocessMeasuredCE(Aurora::Matrix &aCEMeasured,int aBandpassundersampling,int aNumberSamples);
|
||||||
Aurora::Matrix preprocessCE(Aurora::Matrix &aCE,double ceSampleFrequency, double requiredFrequency, double expectedLength);
|
Aurora::Matrix preprocessCE(Aurora::Matrix &aCE,double ceSampleFrequency, double requiredFrequency, double expectedLength);
|
||||||
Aurora::Matrix createMatchedFilter(const Aurora::Matrix &aCE,
|
Aurora::Matrix createMatchedFilter(const Aurora::Matrix &aCE,
|
||||||
bool measuredCEused, bool findDefects, bool removeOutliersFromCEMeasured, std::string hardwareVersion);
|
bool measuredCEused, bool findDefects, bool removeOutliersFromCEMeasured, std::string hardwareVersion);
|
||||||
|
|||||||
Reference in New Issue
Block a user