C语言实现序列卷积

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011028771/article/details/52733717

在上一篇博客中讲解了卷积和滤波的区别,本文主要介绍利用C如何实现序列卷积。
http://blog.csdn.net/u011028771/article/details/52733677
采用上文中的第一种方法实现:

#include<stdio.h>
#define MATRIX_DIM 1024
#define FILTER 32
int main(){
//初始化参数
	float result[MATRIX_DIM + FILTER - 1];
	float a_in[FILTER];
	float b_in[MATRIX_DIM];
	float c_in[MATRIX_DIM + FILTER - 1];
	for (int i = 0; i < MATRIX_DIM; i++) {
		b_in[i] = i;
	}
	for (int i = 0; i < MATRIX_DIM + FILTER -1; i++) {
		c_in[i] = 0;
		result[i] = 0;
	}
	for (int i = 0; i < FILTER; i++) {
		a_in[i] = i*1.0;
	}
	for (int j = 0; j < MATRIX_DIM+FILTER-1 ; j++) {
		for (int k = 0; k < MATRIX_DIM; k++) {
		if ( (j - k) >= 0 && (j - k) < FILTER) {
			c_in[j] += a_in[j - k] * b_in[k];
			}		
		}
	}
return 0;
}

欢迎关注公众号:计算机视觉与高性能计算(to_2know)

在这里插入图片描述

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭