c語(yǔ)言快速卷積庫(kù)函數(shù) c語(yǔ)言實(shí)現(xiàn)卷積運(yùn)算

離散卷積和循環(huán)卷積的計(jì)算機(jī)C語(yǔ)言計(jì)算

卷積可以將 兩個(gè)數(shù)列分別做FFT 在對(duì)應(yīng)相乘 ,在做IFFT 。

目前累計(jì)服務(wù)客戶成百上千家,積累了豐富的產(chǎn)品開(kāi)發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹(shù)立企業(yè)形象,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺(jué)傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

好像一般軟件沒(méi)有相應(yīng)的函數(shù),直接用FFT 和IFFT 也挺方便的 。你簡(jiǎn)單組合一下就行了

如何用C語(yǔ)言實(shí)現(xiàn)數(shù)組的卷積過(guò)程~~~

積分為線性卷積,和圓形卷積。而題目是線性卷積,然后是所求的結(jié)果個(gè)數(shù)是上面兩個(gè)數(shù)組 個(gè)數(shù)的和減去1

比如上面h數(shù)組里面單元是5 而x數(shù)組 是4

所以肯定一點(diǎn)是結(jié)果是等于8個(gè)數(shù)的

result[(sizeof(h) + sizeof(x)) / sizeof(double) - 1];這個(gè)就可以說(shuō)明了

第二個(gè)知識(shí)點(diǎn)是卷積是怎么求的。第一步肯定是判斷兩個(gè)數(shù)組 那個(gè)長(zhǎng)度長(zhǎng)

conv(x, h, sizeof(x) / sizeof(x[0]), sizeof(h) / sizeof(h[0]), result); 就是實(shí)現(xiàn)這個(gè)目標(biāo)的。

然后是長(zhǎng)度長(zhǎng)的放前面

好吧 我換個(gè) 數(shù)字來(lái)就把

x【】=

h【】=

然后卷積 一個(gè)是 x0*h0=1;實(shí)現(xiàn)語(yǔ)句 是第一個(gè)

for (int i = 0; i lenH; i++)

{

for (int j = 0; j = i; j++)

result[i] += x[j] * h[i - j];

}

此時(shí) 已經(jīng)要轉(zhuǎn)入第二步驟了:

for (int m = lenH; m lenX; m++){

for (int j = 0; j lenH; j++)

result[m] += x[m - j] * h[j];

}

第二部 應(yīng)該是 x*h+x1*h(1-1)= 這里得h1 用0代替 但程序里 不是這樣 而是 用x*h=

好吧 我可能設(shè)置的h數(shù)組不夠長(zhǎng) 加入 h有兩個(gè)。x有

那么 結(jié)果 應(yīng)該是x2*y1+x1*y0;

然后是第三部

是說(shuō) 在要求的 結(jié)果 最后幾個(gè)數(shù)字時(shí)候 比如原題里面 應(yīng)該是有8個(gè)的。但到第二個(gè)循環(huán)才求到X得長(zhǎng)度5個(gè)。

所以 后面應(yīng)該是resual記住 數(shù)組下標(biāo) 比實(shí)際小1. 所以

是這樣的

用 for (int n = lenX; n lenX + lenH - 1; n++){

for (int j = i - lenX + 1; j lenH; j++)

result[n] += x[n - j] * h[j];

}里面的i 要改成n

for (int n = lenX; n lenX + lenH - 1; n++){

for (int j = n - lenX + 1; j lenH; j++)

result[n] += x[n - j] * h[j];

}

然后 是這樣分析的

結(jié)果等于=x(0)h(5-0)+x(1)h(5-1)+x(2)h(5-2)+x(3)h(5-3)=x(0)h(5)+x(1)h(4)+x(2)h(3)+x(3)h(2) 記住 數(shù)組不夠的地方 用0代替

copy(result, result[8], ostream_iteratordouble(cout, " ")); 這個(gè)函數(shù) 就不想說(shuō)了 自己去看stl 算法吧

另外,虛機(jī)團(tuán)上產(chǎn)品團(tuán)購(gòu),超級(jí)便宜

C語(yǔ)言用子函數(shù)實(shí)現(xiàn)卷積

conv(int?u[],int?v[],int?w[],?int?m,?int?n)

{

int?i,?j;

int?k?=?m+n-1;

for(i=0;?ik;?i++)

for(j=max(0,i+1-n);?j=min(i,m-1);?j++)

{???

w[i]?+=?u[j]*v[i-j];

}?

}

u[],v[]為原始數(shù)組,m,n分別為數(shù)組長(zhǎng)度,w[]為卷積結(jié)果(w[]需初始化為0),其長(zhǎng)度為m+n-1

當(dāng)前文章:c語(yǔ)言快速卷積庫(kù)函數(shù) c語(yǔ)言實(shí)現(xiàn)卷積運(yùn)算
分享鏈接:http://muchs.cn/article12/dophggc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站網(wǎng)站營(yíng)銷(xiāo)、建站公司靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)