我在信号分析中遇到了一些问题。我在脚本 (x) 中加载了一个形状为 x(68, 815) 的数组。68 代表阵列中的信号数量。所以我想对它执行PSD和CSD。CSD:x[0] 和 x[1] .... x[0] 和 x[67] 以及以下... x[1] 和 x[1] .... x[1] 和 x[67 ] 等等
但不知何故,计算值符合我的预期,在进一步计算中使用它们会导致令人不安的结果。谁能找到我的错误?我完全迷路了。只见林不见树。
x = np.load('/home/daniel/Dropbox/[...]')
nfft = 512
n_freqs = nfft/2+1
n_epochs = len(x) # in this case there are 68 channels, does not want to change the variable name
sfreq = 1000
def compute_mean_psd_csd(x, n_epochs, nfft, sfreq):
'''Computes mean of PSD and CSD for signals.'''
Rxy = np.zeros((n_epochs, n_epochs, n_freqs), dtype=complex)
Rxx = np.zeros((n_epochs, n_epochs, n_freqs), dtype=complex)
Ryy = np.zeros((n_epochs, n_epochs, n_freqs), dtype=complex)
for i in range(n_epochs):
for j in range(n_epochs):
Rxy[i,j], freqs = mlab.csd(x[i], x[j], NFFT=nfft, Fs=sfreq)
Rxx[i,j], _____ = mlab.psd(x[i], NFFT=nfft, Fs=sfreq)
Ryy[i,j], _____ = mlab.psd(x[i], NFFT=nfft, Fs=sfreq)