一阶地通滤波器c语言代码
时间: 2023-10-16 14:08:27 浏览: 89
以下是一阶地通滤波器的C语言代码示例:
```c
#include <stdio.h>
#define RC 0.1 // RC时间常数
void lowPassFilter(float *input, float *output, float dt)
{
float alpha = RC / (RC + dt);
output[0] = alpha * input[0] + (1 - alpha) * output[0];
for (int i = 1; i < N; i++)
{
output[i] = alpha * input[i] + (1 - alpha) * output[i-1];
}
}
int main()
{
float input[N] = {1.0, 2.0, 3.0, 4.0, 5.0};
float output[N] = {0};
float dt = 0.1; // 采样时间
lowPassFilter(input, output, dt);
for (int i = 0; i < N; i++)
{
printf("%f ", output[i]);
}
return 0;
}
```
其中,`RC`为RC时间常数,`lowPassFilter`函数为一阶低通滤波器的实现函数,输入为`input`数组,输出为`output`数组,`dt`为采样时间。在该函数中,首先计算出alpha值,然后对于每个输入信号,通过滤波器进行滤波得到输出信号。最后在`main`函数中调用该函数,并输出结果。
阅读全文