FFT を使用したパワースペクトル密度推定(PSD)について
Show older comments
現在、立っている状態での重心動揺の信号におけるPSDを算出するためにFFTの解析をかけております。
指定した周波数帯域のPSDを取得するためにはどうすればよろしいでしょうか?指定する周波数帯域は、0-0.3Hz, 0.3-1.0Hz, 1.0-3.0Hzです。
現在のコードでは、0-0.3Hz帯域でとても大きい値が出てしまっており、原因が分からず質問させていただきました。
下記がコードとなります。
fs = 1000.00;
N = length(time);
fft_COP_X = fft(filt_COP_X);
fft_COP_Y = fft(filt_COP_Y);
fft_COP_X = fft_COP_X(1:N/2+1);
p_fft_COP_X = (1/(fs*N)) * abs(fft_COP_X).^2;
p_fft_COP_X(2:end-1) = 2*p_fft_COP_X(2:end-1);
freq = 0:fs/length(time):fs/2;
fft_COP_Y = fft_COP_Y(1:N/2+1);
p_fft_COP_Y = (1/(fs*N)) * abs(fft_COP_Y).^2;
p_fft_COP_Y(2:end-1) = 2*p_fft_COP_Y(2:end-1);
freq = 0:fs/length(time):fs/2;
Plow_fft_COP_X = sum(p_fft_COP_X(1:10));%0-0.3Hz 低周波数帯域 Power
Pmedium_fft_COP_X = sum(p_fft_COP_X(10:32));%0.3-1.0Hz 中周波数帯域 Power
Phigh_fft_COP_X = sum(p_fft_COP_X(32:92));%1.0-3.0Hz 高周波数帯域 Power
Plow_fft_COP_Y = sum(p_fft_COP_Y(1:10));%0-0.3Hz 低周波数帯域 Power
Pmedium_fft_COP_Y = sum(p_fft_COP_Y(10:32));%0.3-1.0Hz 中周波数帯域 Power
Phigh_fft_COP_Y = sum(p_fft_COP_Y(32:92));%1.0-3.0Hz 高周波数帯域 Power
ご教示いただけると幸いです。宜しくお願い致します。
Accepted Answer
More Answers (0)
Categories
Find more on パラメトリック スペクトル推定 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!