一阶低通滤波算法例程
时间: 2024-05-22 16:08:58 浏览: 10
一阶低通滤波器是一种简单的滤波器,它可以通过去除高频信号来滤波信号。它的传输函数为:
H(s) = 1 / (1 + sT)
其中,s 是复频域变量,T 是滤波器的时间常数。可以将传输函数转化为时域表达式:
y(t) = x(t) + (1/T) * ∫[0~t] (x(τ) - y(τ))dτ
这个表达式可以用于实现一阶低通滤波器。
以下是一种 C 语言实现的例程:
```c
float lowPassFilter(float input, float output_prev, float alpha, float dt)
{
float output = alpha * input + (1.0 - alpha) * output_prev;
return output;
}
int main()
{
float input = 0.0; // 输入信号
float output_prev = 0.0; // 上一次的输出
float alpha = 0.1; // 滤波系数
float dt = 0.01; // 时间步长
for (int i = 0; i < 100; i++)
{
// 获取输入信号
// ...
// 计算滤波器输出
float output = lowPassFilter(input, output_prev, alpha, dt);
// 更新状态
output_prev = output;
// 处理输出信号
// ...
}
return 0;
}
```
其中,lowPassFilter() 函数实现了一阶低通滤波器的计算,input 是输入信号,output_prev 是上一次的输出,alpha 是滤波系数,dt 是时间步长。在 main() 函数中,可以根据实际情况设置输入信号、滤波系数和时间步长,并进行滤波计算。