用c語言實現1000個隨機數序列與7位卷積核卷積
阿新 • • 發佈:2018-12-24
有註釋,程式碼如下:
#include "stdio.h" #include "stdlib.h" #include "time.h" #define SEIRE_LEN 1000 //序列長度 #define KERNEL_LEN 7 //卷積核長度 #define RESULT_LEN SEIRE_LEN+KERNEL_LEN-1 //結果長度 int main() { int result[RESULT_LEN]; int f[SEIRE_LEN]; //宣告陣列,給定大小 int h[KERNEL_LEN]= {1,2,3,4,3,2,1}; //this is a low pass filter int m,n; srand((unsigned int)time(NULL)); //產生隨機數的seed,用於使每次產生的隨機序列不同 for(m=0;m<SEIRE_LEN;m++) { f[m] = rand()%10-5; //產生-5~5的隨機數並賦給陣列f } for(n=0;n<RESULT_LEN;n++) //卷積運算 { for(m=0;m<SEIRE_LEN;m++) { if((n-m)>=0 && (n-m)<=KERNEL_LEN) //兩個序列均從零開始,0之前的未定義,隨意加一個判斷條件 { result[n]+=f[m]*h[n-m]; } } printf("%d ",result[n]); //打印出來結果 } return 0; }