写一个自适应 低通滤波器 采样频率500hz 带通 是40hz 用C语言
时间: 2023-05-21 11:03:18 浏览: 176
各种滤波器的C语言实现,有FIR的低通、高通、带通、带阻等,卡尔曼滤波器.rar
5星 · 资源好评率100%
以下是一个简单的自适应低通滤波器的C语言代码,采样频率为500Hz,带通为40Hz:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.14159265358979323846
double alpha = 0.1; // 滤波器的自适应系数
double y = 0.0; // 滤波器的输出
double x = 0.0; // 滤波器的输入
double lowpass_filter(double input)
{
y = alpha * input + (1 - alpha) * y;
return y;
}
int main()
{
double sample_rate = 500.0; // 采样频率
double cutoff_freq = 40.0; // 带通频率
double dt = 1.0 / sample_rate; // 采样时间间隔
double RC = 1.0 / (2 * PI * cutoff_freq); // RC时间常数
alpha = dt / (RC + dt); // 计算自适应系数
// 生成测试信号
double t = 0.0;
for (int i = 0; i < 1000; i++) {
x = sin(2 * PI * 10 * t) + sin(2 * PI * 50 * t);
printf("%f\n", lowpass_filter(x));
t += dt;
}
return 0;
}
请注意,这只是一个简单的示例代码,实际应用中可能需要更复杂的滤波器设计和参数调整。
阅读全文