c语言编写高阶数字滤波器的程序的代码示例
时间: 2023-06-01 18:07:12 浏览: 145
以下是一个简单的C语言程序的代码示例,用于实现一个高阶数字滤波器:
#include <stdio.h>
#define FILTER_ORDER 4 // 滤波器阶数
#define FILTER_SIZE (FILTER_ORDER+1) // 滤波器长度
float input[FILTER_SIZE] = {0}; // 输入缓存
float coefficient[FILTER_SIZE] = {0.5, 0.1, -0.2, 0.1, 0.5}; // 系数
float output = 0; // 输出
int main() {
int i, j;
float data[] = {2.3, 1.2, -0.5, 3.7, 2.8, -1.0, 0, 0, 0, 0}; // 若干个输入数据
int data_size = sizeof(data) / sizeof(float); // 数据长度
for (i = 0; i < data_size; i++) {
// 向输入缓存输入新的数据
for (j = FILTER_SIZE - 1; j > 0; j--) input[j] = input[j-1];
input[0] = data[i];
// 计算输出
output = 0;
for (j = 0; j < FILTER_SIZE; j++) output += input[j] * coefficient[j];
// 输出结果
printf("%f\n", output);
}
return 0;
}
注意,这只是一个简单的示例程序,实际中根据具体应用的不同,可能需要使用不同的滤波器算法和参数。