一维信号去噪C++代码
时间: 2023-08-09 08:10:33 浏览: 81
bm3d_src.zip_BM3D_二维 去噪
下面是一维信号去噪的C语言代码示例:
```c
#include <stdio.h>
// 一维信号去噪
void denoise(int input[], int output[], int len) {
int i, j;
int sum = 0;
for (i = 0; i < len; i++) {
sum = input[i];
if (i > 0) {
sum += input[i - 1];
}
if (i < len - 1) {
sum += input[i + 1];
}
output[i] = sum / 3;
}
}
int main() {
int input[] = {3, 5, 6, 9, 10, 14, 15, 16, 23, 25, 28};
int output[sizeof(input)/sizeof(int)] = {0};
denoise(input, output, sizeof(input)/sizeof(int));
printf("Original Signal:\n");
for (int i = 0; i < sizeof(input)/sizeof(int); i++) {
printf("%d ", input[i]);
}
printf("\n");
printf("Denoised Signal:\n");
for (int i = 0; i < sizeof(output)/sizeof(int); i++) {
printf("%d ", output[i]);
}
printf("\n");
return 0;
}
```
这段代码实现了简单的一维信号去噪,使用了三点平均法。输入是一个整数类型的一维信号,输出是一个经过去噪之后的一维信号。
阅读全文