1

forループとパワースペクトル密度に関するいくつかのMATLABコードについて少し助けが必要です。

私は信号を分析しており、30秒ごとの各セグメントの平均電力を測定できる必要があります。行列の各列に30秒相当のデータが存在するように、関数'buffer'を使用して信号を分割しましたが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 に答える