scipy一维卷积

来源:互联网 发布:淘宝节点考试 编辑:程序博客网 时间:2024/04/30 02:39
一 介绍
signal模块包含大量滤波函数、B样条插值算法等等。下面的代码演示了一维信号的卷积运算。

二 代码

  1. import numpy as np
  2. import scipy.signal
  3. x = np.array([1,2,3])
  4. h = np.array([4,5,6])
  5. print(scipy.signal.convolve(x, h))#一维卷积运算
三 运行结果
[ 4 13 28 27 18]
四 一维卷积算法
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<vector>
  6. #include<queue>
  7. #include<map>
  8. #include<algorithm>
  9. usingnamespace std;
  10. #define INF 0xfffffff
  11. #define maxn 100010
  12. int main()
  13. {
  14. int m=5,n=5;
  15. int a[5]={0,1,0,2,1},b[5]={0,1,0,2,1};
  16. int i,j;
  17. int k=m+n-1;//卷积后数组长度
  18. int c[k];
  19. memset(c,0,sizeof(c));//注意一定要清零
  20. /**卷积计算**/
  21. for(i=0; i<k; i++)
  22. {
  23. for(j=max(0,i+1-n); j<=min(i,m-1); j++)
  24. c[i]+=a[j]*b[i-j];
  25. cout<<c[i]<<" ";
  26. }
  27. /****/
  28. cout<<endl;
  29. }
原创粉丝点击