我的信号分析遇到了一些问题。我在脚本(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)