我需要一些关于for循环和功率谱密度的matlab代码的帮助。
我正在分析一个信号,需要能够测量每个30秒段的平均功率。我已经用函数'buffer'分割信号,因为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
答案 0 :(得分:1)
您的问题是,您在for
循环的每次迭代中都会覆盖结果。
只需修改您的代码:
Power(j) = ...
avpow(j) = ...
您将存储计算结果。如果速度是一个问题,请考虑预先分配。