1

我需要一些关于 for 循环和功率谱密度的 matlab 代码的帮助。

我正在分析一个信号,需要能够测量每 30 秒段的平均功率。我已经用函数“缓冲区”分割了信号,因此矩阵的每一列中有 30 秒的数据,segment_mat但我希望能够使用 for 循环将功率谱密度的结果存储在矩阵中以循环数据,并将每个段的平均功率存储在一个向量avpow中。有什么想法我可能会出错吗?

for j=1:120
    Hs=spectrum.periodogram({'Hamming'});
    Power=psd(Hs,segment_mat(:,j)',fs',fs);
    avpow=mean(Power(j))';
end
4

1 回答 1

1

您的问题是您在for循环的每次迭代中都覆盖了结果。

只需修改您的代码:

Power(j) = ...
avpow(j) = ...

您将存储计算结果。如果速度是一个问题,请考虑预先分配。

于 2012-12-05T17:53:40.457 回答