Bessel滤波器c语言实现
时间: 2023-05-12 21:03:25 浏览: 114
以下是Bessel滤波器的C语言实现代码:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
double bessel(double x, int n) {
double sum = 0.0;
double t = 1.0;
double u = 1.0;
int i, j;
for (i = 0; i <= n; i++) {
t = 1.0;
for (j = 1; j <= i; j++) {
t *= x / j;
}
u = t * t;
sum += u;
}
return sum;
}
void bessel_filter(double *input, double *output, int n, double fc, double fs) {
double wc = 2.0 * PI * fc / fs;
double x = wc * sqrt(pow(n, 2) - 0.25);
double b0 = bessel(x, n) / bessel(1.0, n);
double a0 = 1.0;
double a1 = -2.0 * cos(wc);
double a2 = 1.0;
double b1 = -2.0 * cos(wc) * b0;
double b2 = b0 * bessel(2.0 * x, n) / bessel(x, n);
double in1 = 0.0, in2 = 0.0, out1 = 0.0, out2 = 0.0;
int i;
for (i = 0; i < n; i++) {
output[i] = a0 * input[i] + a1 * in1 + a2 * in2 - b1 * out1 - b2 * out2;
in2 = in1;
in1 = input[i];
out2 = out1;
out1 = output[i];
}
}
int main() {
double input[10] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
double output[10];
int n = 4;
double fc = 2.0;
double fs = 10.0;
bessel_filter(input, output, 10, fc, fs);
int i;
for (i = 0; i < 10; i++) {
printf("%f\n", output[i]);
}
return 0;
}
```
这段代码实现了Bessel滤波器的数字滤波功能,可以将输入信号进行滤波处理,得到输出信号。其中,n为滤波器的阶数,fc为滤波器的截止频率,fs为采样频率,input为输入信号,output为输出信号。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)