rpmfreqmapのサンプル数が大きい理由が理解できません
조회 수: 1 (최근 30일)
이전 댓글 표시
rpmfreqmapの設定を周波数分解能を1Hz、オーバーラップを0%にして使用してみたところ、予想よりもサンプル数の時間長さが1.5倍大きくなっていました。1Hzなので1秒になると考えていたのですが、1.5秒取り出してFFTしているように見えます。
fs = 600;
t1 = 5;
t = 0:1/fs:t1;
f0 = 10;
f1 = 40;
rpm = 60*linspace(f0,f1,length(t));
o1 = 1;
o2 = 0.5;
o3 = 4;
o4 = 6;
ph = 2*pi*cumtrapz(rpm/60)/fs;
x = [1 1 2 1]*cos([o1 o2 o3 o4]'*ph);
rpmfreqmap(x,fs,rpm, 1, 'OverlapPercent', 0)
[map,freq,rpm,time,res] = rpmfreqmap(x,fs,rpm, 1, 'OverlapPercent', 0);
ヘルプに記載の5秒間の波形データを分析したものです。実行するとtimeの要素数が3個でおよそ1.5秒間隔になっています。
5秒間のデータなので、timeの要素数が5個で1秒間隔になると考えていました。予想と異なる結果で、理由が理解できません。これは何が起きているのでしょうか?
댓글 수: 0
채택된 답변
Hernia Baby
2022년 8월 26일
댓글 수: 6
Hernia Baby
2022년 8월 29일
편집: Hernia Baby
2022년 8월 29일
不確定性において窓関数の影響を考慮してないためだと思います。
箱型ウィンドウをオプションに設定して見てみましょう。
fs = 600; t1 = 5; t = 0:1/fs:t1;
f0 = 10; f1 = 40;
rpm = 60*linspace(f0,f1,length(t));
o1 = 1; o2 = 0.5; o3 = 4; o4 = 6;
ph = 2*pi*cumtrapz(rpm/60)/fs;
x = [1 1 2 1]*cos([o1 o2 o3 o4]'*ph);
[~,~,~,time,~] = rpmfreqmap(x,fs,rpm, 1, 'OverlapPercent', 0,'Window','rectwin')
ここでtimeは切り取った時間の中心をとります。
差分をとり、時間を足していきましょう。
times = cumsum([1;diff(time)])'
@Genki Uebayashiさんの考えているものになりました。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 振動解析에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!