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(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 &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 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();
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user