【问题标题】:Absolute/averaged spectral power of 128 channel EEG signal128通道脑电信号的绝对/平均频谱功率
【发布时间】:2017-10-22 16:22:21
【问题描述】:

我有一个 128 个通道和 500 个样本作为 128*500 矩阵的 EEG 信号。我知道我们可以使用 matlab 中的 pmcov 或 pwelch 计算任何离散时间信号的功率谱密度。但是有什么方法可以计算整个信号的绝对或平均频谱功率?所以我在 y 轴上只有一个绝对功率,在 x 轴上只有一个对应的频率可以用来表示整个信号?

非常感谢您的帮助!

【问题讨论】:

  • pwelch 计算整个信号的功率。您需要跨渠道的平均功率吗?
  • 是的,我正在尝试找出所有通道的平均功率,可以用来表示整个 128*500 信号。

标签: matlab signal-processing spectral-density


【解决方案1】:

你可以这样做:

% assume x is 500-by-128 matrix
pxx = pwelch(x);

% convert to dB
pxx = 10*log10(pxx);

% take average across channels
avgPwr = mean(pxx, 2);

请注意,我假设 x 为 500×128,因为 pwelch 计算的是按列计算的幂。

【讨论】:

  • 感谢您的回答。我有一个问题,为什么我们要将 pxx 值转换为 dB 以及 pxx 的原始单位是什么?
  • 通常功率值的范围很大,取对数有助于压缩范围。如果您绘制pxx10*log10(pxx),您将能够体会到差异。
  • 所以这是 128 个信号的平均频带功率,在频率上平均。有没有一种方法可以计算整个 128 通道 EEG 信号的绝对功率?
  • 这将给出 128 个通道的平均功率。它将给出一个功率矢量作为频率的函数。如果您希望获得跨频率的平均值,请使用mean(avgPwr)。这应该可以正常工作,但取这样的平均值并不是一个好主意,因为您会洗掉很多信息。
  • 我的采样率为 1000,我尝试将 Nfft 用作 1000。所以,pxx=pwelch(x,[],[],1000,1000);这给了我 pxx 作为 501*128 矩阵。这里 501 是频率样本,128 是 128 个通道的功率。所以,mean(pxx,1) 给出了一个 1*128 矩阵,它是 128 个信号在所有频率上的平均功率。??我说对了吗?
猜你喜欢
  • 2013-06-23
  • 2015-05-24
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多