运行CUDA5.0自带的simpleCUFFT错误(经改动)

我定义了一个float型的二维数据和float型的二维滤波器,利用CUDA5.0自带的simpleCUFFT代码进行32次的卷积,循环32次
float a[32][50];(已经初始化)
float b[32][11];(已经初始化)
将CUDA5.0自带的simpleCUFFT中的代码改动如下:
加了一个32次的循环,将数组中的float型数据赋给信号和滤波器
for (unsigned int pp=0;pp<32;pp++)
{
Complex *h_signal = (Complex *)malloc(sizeof(Complex) * SIGNAL_SIZE);
for (unsigned int s=0;s<SIGNAL_SIZE; ++s)
{
h_signal[s].x =a[pp][s];
h_signal[s].y =0;
}

Complex h_filter_kernel = (Complex)malloc(sizeof(Complex) * FILTER_KERNEL_SIZE);

for (unsigned int ss=0;ss<FILTER_KERNEL_SIZE; ++ss)
{
h_filter_kernel[ss].x = b[pp][ss];
h_filter_kernel[ss].y = 0;
}


后面代码完全一样,每次循环都释放空间!
但是出现了如下类型错误:错误都是出现在PadData函数和Conlove函数处;
error:argument of type “Complex *” is incompatible with parameter of type “const float *”
error:argument of type “Complex **” is incompatible with parameter of type “float **”
error:…

LZ大部分帖子内容都被删除线划掉了,不知是何用意。

根据下面的错误信息,是参数类型不正确,请LZ检查下调用函数的参数类型要求和您使用的参数的类型是否匹配。

祝您好运~

版主不好意思,因为我复制粘贴完之后出现了这样的结果。
还有一个小问题,这个例子中我频域相乘在逆FFT之后需要对数组分配多大的空间,总是报错!
signal_size+fileter_size/2吗?

LZ您好,以后发代码建议使用“代码模式”,这样可以避免一些字符被处理为转义字符,造成显示混乱。

主语您问的FFT分配多少空间的问题,这个我不清楚,我基本不用该库,无法回答了,留待其他人补充。

祝您编码顺利~