我想在一组信号上使用 pwelch,我有一些问题。
首先,假设我们有 32 个(EEG)信号,持续时间为 30 秒。采样频率是fs=256
样本/秒,因此每个信号的长度为 7680。我想用pwelch
它来估计这些信号的功率谱密度(PSD)。
问题 1:
根据pwelch
的文档,
pxx = pwelch(x) 返回使用 Welch 的重叠段平均估计器找到的输入信号 x 的功率谱密度 (PSD) 估计值 pxx。当 x 是向量时,它被视为单个通道。当 x 为矩阵时,每列独立计算 PSD,并将其存储在 pxx 的对应列中。
但是,如果调用pwelch
如下
% ch_signals: 7680x32; one channel signal per each column
[pxx,f] = pwelch(ch_signals);
结果pxx
是 size 1025x1
,而不是1025x32
我所期望的,因为文档指出,如果 x 是矩阵,则 PSD 会为每一列独立计算并存储在 pxx 的相应列中。
问题 2:
假设我克服了这个问题,并且我独立计算了每个信号的 PSD(通过应用于pwelch
的每一列ch_signals
),我想知道这样做的最佳方法是什么。假设该信号是一个 30 秒的信号,具有采样频率fs=256
,我应该如何调用pwelch
(使用什么参数?)以使 PSD 有意义?
问题 3:如果我需要将 32 个信号中的每一个拆分为窗口并将 pwech 应用于每个窗口,那么最好的方法是什么?假设我想将每个 30 秒的信号分成 3 秒的窗口,重叠 2 秒。我应该如何调用pwelch
这些窗口中的每一个?