rpmfreqmapのサンプル数が大きい理由が理解できません
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Genki Uebayashi
le 25 Août 2022
Commenté : Genki Uebayashi
le 30 Août 2022
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 commentaires
Réponse acceptée
Hernia Baby
le 26 Août 2022
6 commentaires
Hernia Baby
le 29 Août 2022
Modifié(e) : Hernia Baby
le 29 Août 2022
不確定性において窓関数の影響を考慮してないためだと思います。
箱型ウィンドウをオプションに設定して見てみましょう。
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さんの考えているものになりました。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 振動解析 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!