2025年09月24日 09:11:33 来源:捷浦智能(深圳)有限公司 >> 进入该公司展台 阅读量:5
```cpp
#Include
#Include
#Include
// 计算离散傅里叶变换(DFT)
std::vector
int N = signal.size();
std::vector
for (int k = 0; k < N; ++k) {
double sum = 0;
for (int n = 0; n < N; ++n) {
double angle = -2 * M_PI * k * n / N;
sum += signal[n] * std::cos(angle);
}
result[k] = sum;
}
return result;
}
// 通过预滤波器去除共振荡频率
std::vector
std::vector
int N = signal.size();
for (int i = 1; i < N / 2; ++i) {
if (std::abs(dft_result[i]) > threshold) {
dft_result[i] = 0;
}
}
std::vector
for (int n = 0; n < N; ++n) {
double sum = 0;
for (int k = 0; k < N; ++k) {
double angle = 2 * M_PI * k * n / N;
sum += dft_result[k] * std::cos(angle);
}
filtered_signal[n] = sum;
}
return filtered_signal;
}
int main() {
std::vector
double threshold = 10;
std::vector
for (double value : filtered_signal) {
std::cout << value << " ";
}
std::cout << std::endl;
return 0;