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

时间:2015-04-14 22:07:33

标签: python

我在SigI中有10帧WCDMA复杂样本,带有扰码 - Matlab Gold code(1,1)和" sc"是变量。 np.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

1 个答案:

答案 0 :(得分:2)

找到答案。如果使用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')

至少,我的问题已经解决了。