1. 程式人生 > >scipy一維卷積

scipy一維卷積

一 介紹 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. }