用C语言编写滤波器
滤波器是信号处理中常用的一种工具,可以去除噪声、滤波器等。在这里,我们将介绍如何使用C语言编写一个基础的滤波器。
首先,我们需要了解一个滤波器的原理。滤波器通常由一个输入和一个输出组成。输入信号被滤波器处理后会生成对应的输出信号。比如,我们常见的低通滤波器就是可以去除高频噪声,只保留低频信号的一种滤波器。
接下来,我们要实现的是简单的加权平均滤波器。其主要思路就是对输入信号进行平均化处理,以达到去除噪声的效果。具体实现方法如下:
#include <stdio.h>
#define N 10
#define WEIGHT 0.5
float filter(float input) {
static float buf[N] = { 0 };
static int n = 0;
float output = 0;
buf[n] = input; // 将当前的输入信号保存到缓冲区中
n = (n + 1) % N; // 缓冲区满时回到起始位置
for (int i = 0; i < N; i++) {
output += buf[i];
}
output *= WEIGHT; // 对求和结果进行平均化处理
return output;
}
int main() {
float input, output;
while (1) {
scanf("%f", &input);
output = filter(input);
printf("%.2f\n", output);