我正在处理MEG信号,为了解决空间泄漏问题,我想对时间序列进行正交化。 为了更好地理解,我开始使用正弦信号。 我用python编写了一段代码,为了实现正交化,我在[spectral python][1]模块中使用了一个函数。 如果您运行以下代码并绘制信号,您将发现如所附图片所示的内容。我认为正交化信号也应该看起来像原始信号。它不应该急剧改变。 请让我知道是否有更好的方法正交信号。 [在此处输入图像描述][2] 这是我的密码:
import matplotlib.pyplot as plt
import spectral
from scipy import signal
from scipy.signal import hilbert
#Computing Sine wave#
t = np.linspace(-0.02, 0.05, 1000)
sig = 325 * np.sin(2*np.pi*50*t)
sig1 = 200 * np.sin(2*np.pi*50*t)
signal = np.zeros((2, 1000))
signal[0] = sig
signal[1] = sig1
#Orthogonalisation
ortho = spectral.orthogonalize(signal)
#Plotting
plt.figure()
plt.plot(signal[0], 'Blue')
plt.plot(signal[1], 'Green')
plt.title('Signal')
plt.figure()
plt.plot(ortho[0], 'Red')
plt.plot(ortho[1], 'Black')
plt.title('Ortho')```
[1]: https://www.spectralpython.net/class_func_ref.html#orthogonalize
[2]: https://i.stack.imgur.com/GKVZ9.png
问题是
sig1
只是sig
的标量倍数,因此两个信号之间没有正交分量。由于机器精度/舍入,正在绘制的黑色正交分量只是噪声。请尝试以下方法:结果如下所示,两个信号是正交的:
相关问题 更多 >
编程相关推荐