remove unused calculation functions.

This commit is contained in:
pandx 2024-11-10 14:27:03 +08:00
parent 157b4aaf10
commit b80656106f
2 changed files with 0 additions and 131 deletions

View File

@ -88,51 +88,6 @@ void Calculation::_FFT(std::vector<float> &vecData, std::vector<float> &vecFFTre
fftw_free(inHilFFt); fftw_free(inHilFFt);
fftw_free(outHilFFt); 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 &amplitude, 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<float> &vecData) {
std::vector<float>::iterator it;
it = std::max_element(vecData.begin(), vecData.end());
if (it != vecData.end()) {
return *it;
}
return 0;
}
float Calculation::min(std::vector<float> &vecData) {
std::vector<float>::iterator it;
it = std::min_element(vecData.begin(), vecData.end());
if (it != vecData.end()) {
return *it;
}
return 0;
}
void Calculation::absVec(std::vector<float> &vecAbsData, std::vector<float> &vecData) {
for (size_t i = 0; i < vecData.size(); i++) {
vecAbsData.push_back(fabs(vecData[i]));
}
return;
}
float Calculation::mean(std::vector<float> &vecData) { float Calculation::mean(std::vector<float> &vecData) {
float meanTemp = 0; float meanTemp = 0;
@ -142,32 +97,6 @@ float Calculation::mean(std::vector<float> &vecData) {
return meanTemp / vecData.size(); return meanTemp / vecData.size();
} }
void Calculation::drop_mean(std::vector<float> &vecDropMeanData, std::vector<float> &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<float> &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<float> &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<float> a) { float Calculation::getSample_variance(std::vector<float> a) {
float ss = 0; float ss = 0;
float s = 0; float s = 0;
@ -180,33 +109,6 @@ float Calculation::getSample_variance(std::vector<float> a) {
return ss / (len - 1); return ss / (len - 1);
} }
float Calculation::variance(std::vector<float> &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<float> &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<float> &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<float> &vecData, std::vector<float> &vecHanningData) { void Calculation::Hanning(std::vector<float> &vecData, std::vector<float> &vecHanningData) {
int N = vecData.size(); int N = vecData.size();

View File

@ -19,39 +19,12 @@ public:
Calculation(); Calculation();
~Calculation(); ~Calculation();
//最大值
static float max(std::vector<float>& vecData);
//最小值
static float min(std::vector<float>& vecData);
//将数据取绝对值
static void absVec(std::vector<float>& vecAbsData, std::vector<float>& vecData);
//将数据取平均值 //将数据取平均值
static float mean(std::vector<float>& vecData); static float mean(std::vector<float>& vecData);
//将数据平方处理 数据有效值
static float rms(std::vector<float>& vecData);
//获取样本方差 //获取样本方差
static float getSample_variance(std::vector<float> a); static float getSample_variance(std::vector<float> a);
//去数据的直流分量
static void drop_mean(std::vector<float>& vecDropMeanData, std::vector<float>& vecData);
//方根幅值
static float srm(std::vector<float>& vecData);
//方差
static float variance(std::vector<float>& vecDropMeanData);
//偏态指标
static float skew_state(std::vector<float>& vecDropMeanData, float fVariance);
//峭度指标
static float kurtosis(std::vector<float>& vecDropMeanData, float fVariance);
// hanning 窗 // hanning 窗
static void Hanning(std::vector<float>& vecData, std::vector<float>& vecHanningData); static void Hanning(std::vector<float>& vecData, std::vector<float>& vecHanningData);
@ -66,12 +39,6 @@ public:
static void _iFFT(std::vector<float>& vecData, std::vector<float>& vecFFTSpecData, std::vector<float>& veciFFTData); static void _iFFT(std::vector<float>& vecData, std::vector<float>& vecFFTSpecData, std::vector<float>& veciFFTData);
static void _FFT(std::vector<float>& vecData, std::vector<float>& vecFFTrealData, std::vector<float>& vecFFTimageData); static void _FFT(std::vector<float>& vecData, std::vector<float>& vecFFTrealData, std::vector<float>& vecFFTimageData);
//通道幅值和相位提取
//输入为FFT变换后的数据长度及数据指定的频率输出为计算后得到的幅值 和 相位
static void caculateAmp_Pha(int n, fftw_complex* in, int frequency, double& amplitude, double& phase);
//希尔伯特变换 //希尔伯特变换
static void hilbert(std::vector<float>& vecData, std::vector<float>& vecHilbertData, int N); static void hilbert(std::vector<float>& vecData, std::vector<float>& vecHilbertData, int N);