Add ceMatchedFilterHandling to common folder

This commit is contained in:
kradchen
2023-05-08 10:13:17 +08:00
parent de6a0ce6e7
commit 5199974fcb
2 changed files with 11 additions and 12 deletions

View File

@@ -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();
Aurora::padding(aCE,expectedLength,0.0);
// % adapt to AScan length if (expectedLength<aCE.getDataSize()){
// ce(expectedLength) = 0; % padding to size of ascan aCE.forceReshape(expectedLength,1,1);
}
// if (length(ce) > expectedLength) % cropping to size of ascan
// ce(expectedLength+1:end) = [];
// 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);

View File

@@ -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);