Data Smoothing #1 알고리즘 C++
Mathematics Algorithm2023. 3. 30. 09:54
반응형
예전 어느 일본업체에서 사용하는 스무징 알고리즘을 구하게 되어서 제가 사용하고 있습니다.
상당히 스무징이 깨끗하게 잘 됩니다. 그러다 보니 사용하는 데이타의 종류에 따라 스무징 알고리즘을 다르게 사용해야 합니다.
아래 스무징도 아무 데이타에 사용은 못하고 제가 꼭 필요로 하는 데이타의 스무징 종류에 따라 구분해 사용합니다.
void Smoothing(double fltData[], short siMaxMeasCount, short siSCount, short siSStep)
{
double fltSmooth[1000*2];
int iLstep,iRstep;
int iStart_p,iEnd_p;
int iCnt;
double fltSum;
if(siSStep < 2) return;
if(!(siSStep % 2)) siSStep++;
iLstep = siSStep / 2;
iRstep = iLstep;
for (int i = 0; i < siSCount; i++)
{
memcpy(fltSmooth,fltData,sizeof(double) * siMaxMeasCount);
for(int j = 1; j < siMaxMeasCount; j++)
{
iStart_p = j - iLstep;
iEnd_p = j + iRstep;
if(iStart_p < 0)
{
iStart_p = 0;
iEnd_p = j + j;
}
else if(iEnd_p >= siMaxMeasCount)
{
iStart_p = j - (siMaxMeasCount - j - 1);
iEnd_p = siMaxMeasCount-1;
}
if(iEnd_p > siMaxMeasCount) break;
iCnt = 0;
fltSum = 0.0f;
for(int k = iStart_p; k <= iEnd_p;k++)
{
fltSum += fltSmooth[k];
iCnt++;
}
if(iCnt <= 1)
{
fltData[j] = fltSmooth[j];
}
else
{
fltData[j] = fltSum / (float)iCnt;
}
}
}
}
반응형
'Mathematics Algorithm' 카테고리의 다른 글
Peak Detection 알고리즘 - C# (0) | 2023.11.20 |
---|---|
순차적인 작업처리에 대한 알고리즘 구현 (0) | 2023.09.05 |
Data Smoothing #2 (Savitzky Golay) C++ (0) | 2023.03.30 |
Gaussian Fitting 함수 C++ (0) | 2023.03.23 |
C# 유전 알고리즘을 적용한 최적의 길찾기 (1) | 2023.03.14 |
댓글()