Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python np.correlate()和signal.fftconvolve()给出了不同的答案_Python - Fatal编程技术网

Python np.correlate()和signal.fftconvolve()给出了不同的答案

Python np.correlate()和signal.fftconvolve()给出了不同的答案,python,Python,我在SigI中有10帧WCDMA复杂样本,带有置乱码——Matlab黄金码(1,1),变量为“sc”。correlate()提供了下面代码中预期的清晰的相关性峰值,但速度非常慢。尝试在同一代码中使用fftconvolve(),它未检测到任何峰值。fftconvolve()速度很快,希望它能正常工作。请告诉我为什么它不起作用 mat=scipy.io.loadmat('011.mat') SCR=mat['sc'] O1 = np.correlate(SigI,SCR,mode='valid')

我在SigI中有10帧WCDMA复杂样本,带有置乱码——Matlab黄金码(1,1),变量为“sc”。correlate()提供了下面代码中预期的清晰的相关性峰值,但速度非常慢。尝试在同一代码中使用fftconvolve(),它未检测到任何峰值。fftconvolve()速度很快,希望它能正常工作。请告诉我为什么它不起作用

mat=scipy.io.loadmat('011.mat')
SCR=mat['sc']
O1 = np.correlate(SigI,SCR,mode='valid')
# O1=signal.fftconvolve(SigI,SCR,mode='valid')
plot(abs(O1))
CC=max(abs(O1))    
print ' Max Peak = ', CC

找到了答案。如果使用SCR的共轭,则np.correlation()和signal.fftconvolve()将给出相同的答案。但是我不明白原因是什么

 SCR=np.conjugate(SCR[0,:])    
 O1=signal.fftconvolve(SigI,SCR[::-1],mode='valid')
给出了与以下相同的答案:

 SCR=SCR[0,:]
 O1=np.correlate(SigI,SCR,mode='valid')

至少,我的问题解决了。

因为相关性和卷积不是一回事。通过其中一个输入的共轭,相关和卷积之间的关系是一个标准的数学性质。不过,在信号处理网站上解决这个问题可能会更好。