您好,欢迎来到全球供应商网!请 |免费注册

产品展厅本站服务收藏该商铺

捷浦智能(深圳)有限公司

免费会员
手机逛
0755-86329658
捷浦智能(深圳)有限公司

Technical article

技术文章

当前位置:捷浦智能(深圳)有限公司>>技术文章>>捷浦智能多轴运动控制器 实现抑振控制简单示例

捷浦智能多轴运动控制器 实现抑振控制简单示例

发布时间:2026/4/206

```cpp

#Include

#Include

#Include


// 计算离散傅里叶变换(DFT)

std::vector dft(const std::vector& signal) {

    int N = signal.size();

    std::vector result(N);

    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 remove_coherent_noise(const std::vector& signal, double threshold) {

    std::vector dft_result = dft(signal);

    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 filtered_signal(N);

    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 signal = {1, 2, 3, 4, 5, 6, 7, 8};

    double threshold = 10;

    std::vector filtered_signal = remove_coherent_noise(signal, threshold);

    for (double value : filtered_signal) {

        std::cout << value << " ";

    }

    std::cout << std::endl;

    return 0;

标签关键词:

上一篇: 捷浦运动控制卡的工作原理

下一篇: 国内运动控制卡企业如何逐步缩小与国际

在线询价

X

已经是会员?点击这里 [登录] 直接获取联系方式

会员登录

X

请输入账号

请输入密码

=

请输验证码

收藏该商铺

X
该信息已收藏!
标签:
保存成功

(空格分隔,最多3个,单个标签最多10个字符)

常用:

提示

X
您的留言已提交成功!我们将在第一时间回复您~