凡亿教育-雅敏
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 低通数字滤波法是什么?(附源代码)
低通数字滤波法是什么?(附源代码)

在常用的滤波算法中,低通数字滤波法是一种简单有效的信号处理技术,用于去除高频噪声,保留低频信号成分。该方法通过加权平均当前采样值和上一次滤波结果来实现平滑滤波,特别适用于变化较慢的参数滤波。

1、低通数字滤波法的原理

低通滤波,也称一阶滞后滤波,其滤波公式为:

1.png

2、低通数字滤波法的示例代码

#include


// 低通滤波函数

float lowPassFilter(float newSample, float previousFiltered, float alpha) {

    return (1 - alpha) * newSample + alpha * previousFiltered;

}


int main() {

    // 示例参数

    float samples[] = {10.0, 12.0, 11.0, 9.0, 10.5, 11.5, 13.0}; // 采样值

    int numSamples = sizeof(samples) / sizeof(samples[0]);

    float alpha = 0.1; // 滤波系数

    float filteredValue = samples[0]; // 初始滤波值为第一个采样值


    printf("Filtered values:\n");

    for (int i = 0; i < numSamples; i++) {

        filteredValue = lowPassFilter(samples[i], filteredValue, alpha);

        printf("%.2f ", filteredValue);

    }

    printf("\n");


    return 0;

}

3、代码说明

lowPassFilter 函数实现了低通滤波公式,接受新采样值、上一次滤波结果和滤波系数作为参数,返回当前滤波结果。

在 main 函数中,定义了一个采样值数组 samples 和滤波系数 alpha。

初始滤波值设为第一个采样值。

遍历采样值数组,调用 lowPassFilter 函数进行滤波,并打印滤波结果。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论