缩放是否会影响两个信号之间的互相关?

问题描述

据我了解,翻译和缩放不会影响两个系列之间的相关性。但是,我使用的是scipy python库中的相关函数和sklearn库中的MinMaxScaler,在将2个序列缩放到[-1,1]之前和之后,我得到了完全不同的结果。可以在所附图像上看到两个不同互相关的图!

enter image description here

我的假设是缩放不会影响相关性吗?

谢谢!

解决方法

MinMaxScaler(min,max)之间映射数据,这可以更改信号的 DC偏移和(因此)极性(但不能更改频率) ;互相关对这两个特征有很强的响应。举例说明,正弦上升:

import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as sig
from sklearn.preprocessing import MinMaxScaler

#%%##########################################################
x = np.linspace(0,5,60)  # [0,0.084,0.169,...,4.91,5]
x = x.reshape(-1,1)       # (samples,features) = (60,1)
y = x + np.sin(x)          # rising sine above x-axis
y_scaled = MinMaxScaler((-1,1)).fit_transform(y)

#%%##########################################################
plt.plot(y)
plt.plot(y_scaled)
plt.axhline(0,color='k',linestyle='--')
plt.show()
#%%#####################################
plt.plot(sig.correlate(x,y))
plt.plot(sig.correlate(x,y_scaled))
plt.show()

我确实说“可以”; 改变互相关形状的条件是在变换之间既不改变极性也不改变DC偏移-即可以仅通过缩放来获得变换。例如。 sin(x)/ 2-> sin(x)。

我推荐this textbook的第6和第7章,它们对卷积以及互相关提供了极好的直观解释。还有一个interactive插图。