Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SigerCalculation
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
TCS-eConfigTool
SigerCalculation
Commits
991e4584
Commit
991e4584
authored
Dec 01, 2025
by
lvshi.gong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改算法
parent
8d1b776c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
3 deletions
+12
-3
FeatureExtractor.cpp
SigerCalculation/RadomForestSAC/FeatureExtractor.cpp
+12
-3
No files found.
SigerCalculation/RadomForestSAC/FeatureExtractor.cpp
View file @
991e4584
...
@@ -5,6 +5,8 @@
...
@@ -5,6 +5,8 @@
#include <cmath>
#include <cmath>
#include <iostream>
#include <iostream>
#include <complex>
#include <complex>
#include <sys/time.h>
#include "spdlog/spdlog.h"
#include "common.h"
#include "common.h"
using
namespace
std
;
using
namespace
std
;
...
@@ -49,6 +51,9 @@ SignalFeatures FeatureExtractor::extract_features(const std::vector<float>& sign
...
@@ -49,6 +51,9 @@ SignalFeatures FeatureExtractor::extract_features(const std::vector<float>& sign
return
features
;
return
features
;
}
}
unsigned
long
elapsed_time
=
0
;
struct
timeval
start
,
end
;
gettimeofday
(
&
start
,
NULL
);
std
::
vector
<
float
>
processed_signal
=
signal
;
std
::
vector
<
float
>
processed_signal
=
signal
;
// 1. 高通滤波处理 - 使用预定义系数
// 1. 高通滤波处理 - 使用预定义系数
...
@@ -83,8 +88,10 @@ SignalFeatures FeatureExtractor::extract_features(const std::vector<float>& sign
...
@@ -83,8 +88,10 @@ SignalFeatures FeatureExtractor::extract_features(const std::vector<float>& sign
}
}
}
}
gettimeofday
(
&
end
,
NULL
);
elapsed_time
=
(
end
.
tv_sec
-
start
.
tv_sec
)
*
1000L
+
(
end
.
tv_usec
-
start
.
tv_usec
)
/
1000
;
SPDLOG_LOGGER_DEBUG
(
spdlog
::
get
(
"logger"
),
"[extract_features] elapsed_time: {}"
,
elapsed_time
);
return
features
;
return
features
;
//存sqlite
}
}
std
::
vector
<
float
>
FeatureExtractor
::
filtfilt
(
const
std
::
vector
<
float
>&
b
,
const
std
::
vector
<
float
>&
a
,
const
std
::
vector
<
float
>&
x
)
std
::
vector
<
float
>
FeatureExtractor
::
filtfilt
(
const
std
::
vector
<
float
>&
b
,
const
std
::
vector
<
float
>&
a
,
const
std
::
vector
<
float
>&
x
)
...
@@ -358,7 +365,6 @@ bool FeatureExtractor::extract_time_domain_features(const std::vector<float>& si
...
@@ -358,7 +365,6 @@ bool FeatureExtractor::extract_time_domain_features(const std::vector<float>& si
sum_squares
+=
square_val
;
sum_squares
+=
square_val
;
sum_abs
+=
abs_val
;
sum_abs
+=
abs_val
;
sum_sqrt_abs
+=
std
::
sqrt
(
abs_val
);
sum_sqrt_abs
+=
std
::
sqrt
(
abs_val
);
sum_fourth
+=
square_val
*
square_val
;
if
(
val
>
peak
)
peak
=
val
;
if
(
val
>
peak
)
peak
=
val
;
}
}
...
@@ -376,9 +382,12 @@ bool FeatureExtractor::extract_time_domain_features(const std::vector<float>& si
...
@@ -376,9 +382,12 @@ bool FeatureExtractor::extract_time_domain_features(const std::vector<float>& si
features
.
Envelope_Std
=
std
::
sqrt
(
variance
);
features
.
Envelope_Std
=
std
::
sqrt
(
variance
);
// 计算峭度需要方差不为零
// 计算峭度需要方差不为零
sum_fourth
=
0.0
f
;
for
(
size_t
i
=
0
;
i
<
N
;
++
i
)
sum_fourth
+=
(
signal
[
i
]
-
mean
)
*
(
signal
[
i
]
-
mean
)
*
(
signal
[
i
]
-
mean
)
*
(
signal
[
i
]
-
mean
);
if
(
variance
>
1e-10
f
)
{
if
(
variance
>
1e-10
f
)
{
float
mean_fourth
=
sum_fourth
/
N
;
float
mean_fourth
=
sum_fourth
/
N
;
features
.
Envelope_Kurtosis
=
(
mean_fourth
)
/
(
mean_squares
*
mean_squares
)
-
3.0
f
;
features
.
Envelope_Kurtosis
=
(
mean_fourth
)
/
(
variance
*
variance
)
-
3.0
f
;
}
else
{
}
else
{
features
.
Envelope_Kurtosis
=
0.0
f
;
features
.
Envelope_Kurtosis
=
0.0
f
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment