From b80656106f6f5213e673aadd0b2e9c9c5583e94e Mon Sep 17 00:00:00 2001 From: pandx Date: Sun, 10 Nov 2024 14:27:03 +0800 Subject: [PATCH] remove unused calculation functions. --- utility/calculation.cpp | 98 ----------------------------------------- utility/calculation.hpp | 33 -------------- 2 files changed, 131 deletions(-) diff --git a/utility/calculation.cpp b/utility/calculation.cpp index 53e92aa..96db701 100644 --- a/utility/calculation.cpp +++ b/utility/calculation.cpp @@ -88,51 +88,6 @@ void Calculation::_FFT(std::vector &vecData, std::vector &vecFFTre fftw_free(inHilFFt); fftw_free(outHilFFt); } -//************************************ -// Method: caculateAmp_Pha -// FullName: Calculation::caculateAmp_Pha -// Access: public static -// Returns: void -// Qualifier: -// Parameter: int n -// Parameter: fftw_complex * in -// Parameter: int frequency -// Parameter: double & amplitude -// Parameter: double & phase -// 函数功能是计算特定频率的幅值和相位,原来的讨论中是传入一个特定的频率,然后在给定的频率左右范围内找幅值和相位 -// 目前的函数实现是计算FFT变换后特定点的幅值和相位 -// 然后还有一个地方需要修改,即给定频率和FFT变换结果序列 -//************************************ -void Calculation::caculateAmp_Pha(int n, fftw_complex *in, int frequency, double &litude, double &phase) { - int index = frequency; - amplitude = 2 * sqrt((in[index][0] / n) * (in[index][0] / n) + (in[index][1] / n) * (in[index][1] / n)); - phase = 180 * atan(in[index][1] / in[index][0]) / M_PI; -} - -float Calculation::max(std::vector &vecData) { - std::vector::iterator it; - it = std::max_element(vecData.begin(), vecData.end()); - if (it != vecData.end()) { - return *it; - } - return 0; -} - -float Calculation::min(std::vector &vecData) { - std::vector::iterator it; - it = std::min_element(vecData.begin(), vecData.end()); - if (it != vecData.end()) { - return *it; - } - return 0; -} - -void Calculation::absVec(std::vector &vecAbsData, std::vector &vecData) { - for (size_t i = 0; i < vecData.size(); i++) { - vecAbsData.push_back(fabs(vecData[i])); - } - return; -} float Calculation::mean(std::vector &vecData) { float meanTemp = 0; @@ -142,32 +97,6 @@ float Calculation::mean(std::vector &vecData) { return meanTemp / vecData.size(); } -void Calculation::drop_mean(std::vector &vecDropMeanData, std::vector &vecData) { - float fMean = mean(vecData); - for (size_t i = 0; i < vecData.size(); i++) { - vecDropMeanData.push_back(vecData[i] - fMean); - } - return; -} - -float Calculation::srm(std::vector &vecData) { - double dSrmTemp = 0; - for (size_t i = 0; i < vecData.size(); i++) { - dSrmTemp = dSrmTemp + sqrt(vecData[i]); - } - dSrmTemp = dSrmTemp / vecData.size(); - return dSrmTemp * dSrmTemp; -} - -float Calculation::rms(std::vector &vecData) { - float rmsTemp = 0; - for (size_t i = 0; i < vecData.size(); i++) { - rmsTemp += (vecData[i] * vecData[i]); - } - rmsTemp = rmsTemp / vecData.size(); - return sqrt(rmsTemp); -} - float Calculation::getSample_variance(std::vector a) { float ss = 0; float s = 0; @@ -180,33 +109,6 @@ float Calculation::getSample_variance(std::vector a) { return ss / (len - 1); } -float Calculation::variance(std::vector &vecDropMeanData) { - float varianceTemp = 0; - for (size_t i = 0; i < vecDropMeanData.size(); i++) { - varianceTemp += (vecDropMeanData[i] * vecDropMeanData[i]); - } - return varianceTemp / vecDropMeanData.size(); -} - -float Calculation::skew_state(std::vector &vecDropMeanData, float fVariance) { - float tempSkew = 0; - for (size_t i = 0; i < vecDropMeanData.size(); i++) { - tempSkew = tempSkew + pow(vecDropMeanData[i], 3); - } - tempSkew = tempSkew / vecDropMeanData.size(); - tempSkew = tempSkew / pow(fVariance, 1.5); - return tempSkew; -} - -float Calculation::kurtosis(std::vector &vecDropMeanData, float fVariance) { - float tempkurtosis = 0; - for (size_t i = 0; i < vecDropMeanData.size(); i++) { - tempkurtosis = tempkurtosis + pow(vecDropMeanData[i], 4); - } - tempkurtosis = tempkurtosis / vecDropMeanData.size(); - tempkurtosis = tempkurtosis / pow(fVariance, 2); - return tempkurtosis; -} void Calculation::Hanning(std::vector &vecData, std::vector &vecHanningData) { int N = vecData.size(); diff --git a/utility/calculation.hpp b/utility/calculation.hpp index 6e5f6ac..a6a9e17 100644 --- a/utility/calculation.hpp +++ b/utility/calculation.hpp @@ -19,39 +19,12 @@ public: Calculation(); ~Calculation(); - //最大值 - static float max(std::vector& vecData); - - //最小值 - static float min(std::vector& vecData); - - //将数据取绝对值 - static void absVec(std::vector& vecAbsData, std::vector& vecData); - //将数据取平均值 static float mean(std::vector& vecData); - //将数据平方处理 数据有效值 - static float rms(std::vector& vecData); - //获取样本方差 static float getSample_variance(std::vector a); - //去数据的直流分量 - static void drop_mean(std::vector& vecDropMeanData, std::vector& vecData); - - //方根幅值 - static float srm(std::vector& vecData); - - //方差 - static float variance(std::vector& vecDropMeanData); - - //偏态指标 - static float skew_state(std::vector& vecDropMeanData, float fVariance); - - //峭度指标 - static float kurtosis(std::vector& vecDropMeanData, float fVariance); - // hanning 窗 static void Hanning(std::vector& vecData, std::vector& vecHanningData); @@ -66,12 +39,6 @@ public: static void _iFFT(std::vector& vecData, std::vector& vecFFTSpecData, std::vector& veciFFTData); static void _FFT(std::vector& vecData, std::vector& vecFFTrealData, std::vector& vecFFTimageData); - //通道幅值和相位提取 - - //输入为FFT变换后的数据长度及数据,指定的频率,输出为计算后得到的幅值 和 相位 - - static void caculateAmp_Pha(int n, fftw_complex* in, int frequency, double& amplitude, double& phase); - //希尔伯特变换 static void hilbert(std::vector& vecData, std::vector& vecHilbertData, int N);