remove unused calculation functions.
This commit is contained in:
parent
157b4aaf10
commit
b80656106f
@ -88,51 +88,6 @@ void Calculation::_FFT(std::vector<float> &vecData, std::vector<float> &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<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 meanTemp = 0;
|
||||
@ -142,32 +97,6 @@ float Calculation::mean(std::vector<float> &vecData) {
|
||||
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 ss = 0;
|
||||
float s = 0;
|
||||
@ -180,33 +109,6 @@ float Calculation::getSample_variance(std::vector<float> a) {
|
||||
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) {
|
||||
int N = vecData.size();
|
||||
|
||||
|
||||
@ -19,39 +19,12 @@ public:
|
||||
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 rms(std::vector<float>& vecData);
|
||||
|
||||
//获取样本方差
|
||||
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 窗
|
||||
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 _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);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user