我想要的是一维数组
时间: 2024-02-16 15:04:30 浏览: 37
好的,以下是一个只接受一维数组作为输入的带通滤波函数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define M 9 //定义滤波器的长度
void bandpass_filter(double *input, double *output, int length, double fl, double fh)
{
int i, j, k;
double h[M]; //定义滤波器系数数组
double sum;
//计算滤波器系数
for (i = 0; i < M; i++) {
if (i == (M-1)/2) {
h[i] = 2 * (fh - fl) / length;
} else {
h[i] = (sin(2 * M_PI * fh * (i - (M-1)/2) / length) - sin(2 * M_PI * fl * (i - (M-1)/2) / length)) / (M_PI * (i - (M-1)/2));
}
}
//进行带通滤波
for (i = 0; i < length; i++) {
sum = 0;
for (j = 0; j < M; j++) {
k = i - j + (M-1)/2;
if (k >= 0 && k < length) {
sum += input[k] * h[j];
}
}
output[i] = sum;
}
}
int main()
{
double input[] = {0.5, 0.87, 0.1, 0.3, -0.2, 0.6, 0.4, -0.5, 0.9, -0.1};
double output[10];
int i;
//进行带通滤波
bandpass_filter(input, output, 10, 0.2, 0.5);
//输出滤波后的信号
for (i = 0; i < 10; i++) {
printf("%f\n", output[i]);
}
return 0;
}
```
该函数的输入参数包括一个指向输入信号数组的指针,一个指向输出信号数组的指针,输入信号的长度,带通滤波的下限频率和上限频率。函数首先计算带通滤波器的系数,然后将输入信号与滤波器卷积得到输出信号。在main函数中,我们定义了一个包含10个元素的测试输入信号,并进行了带通滤波,最后输出了滤波后的信号。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)