我知道复小波变换由 给出,其中 是信号, 是小波。 表示复共轭运算。
如果我有小波 ,它psi
在 MATLAB 中表示为,并且我想计算上面的积分。我应该使用哪个命令在 MATLAB 中进行计算?
conv(f,psi)
还是conv(f,conj(psi))
?
因为conj
计算向量的复共轭?提前致谢!
我知道复小波变换由 给出,其中 是信号, 是小波。 表示复共轭运算。
如果我有小波 ,它psi
在 MATLAB 中表示为,并且我想计算上面的积分。我应该使用哪个命令在 MATLAB 中进行计算?
conv(f,psi)
还是conv(f,conj(psi))
?
因为conj
计算向量的复共轭?提前致谢!
复共轭应用于频域,对应于在时域中向后翻转信号。当您有 $$f(x)\psi^*_{s,u}(x)$$ 时,这是频域中的乘法。乘法变成时域中的卷积。所以你应该使用
conv(f,fliplr(psi))
至少使用 MATLAB,您似乎可以简单地运行conv(signal, wavelet)
,它会为您“翻转”小波 - 比较xcorr()
。时间翻转是卷积定义的一部分(如先前的回复所述),因此在 MATLAB 的函数中实现。
所以对于时间上的实信号和小波,conv(signal, fliplr(wavelet)) == xcorr(signal, wavelet)
。然而,对于实信号和复小波,conv(signal, conj(fliplr(cwavelet))) == xcorr(signal, cwavelet)
。通过以这种方式比较卷积和互相关,翻转和复共轭的参与变得明显。
MATLAB自己这么说(循环卷积)cconv()
。