rpmfreqmap​のサンプル数が大きい​理由が理解できません

1 visualización (últimos 30 días)
Genki Uebayashi
Genki Uebayashi el 25 de Ag. de 2022
Comentada: Genki Uebayashi el 30 de Ag. de 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秒間隔になると考えていました。予想と異なる結果で、理由が理解できません。これは何が起きているのでしょうか?

Respuesta aceptada

Hernia Baby
Hernia Baby el 26 de Ag. de 2022
おそらく 不確定性原理 によるものだと思います。
  6 comentarios
Hernia Baby
Hernia Baby el 29 de Ag. de 2022
Editada: Hernia Baby el 29 de Ag. de 2022
不確定性において窓関数の影響を考慮してないためだと思います。
rpmfreqmapのデフォルトはハン窓( hann )です。
箱型ウィンドウをオプションに設定して見てみましょう。
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);
ここで rectwin の設定をします。
[~,~,~,time,~] = rpmfreqmap(x,fs,rpm, 1, 'OverlapPercent', 0,'Window','rectwin')
time = 5×1
0.5000 1.5000 2.5000 3.5000 4.5000
ここでtimeは切り取った時間の中心をとります。
差分をとり、時間を足していきましょう。
times = cumsum([1;diff(time)])'
times = 1×5
1 2 3 4 5
@Genki Uebayashiさんの考えているものになりました。
Genki Uebayashi
Genki Uebayashi el 30 de Ag. de 2022
ありがとうございます。考えていた通りの動きです。
> 不確定性において窓関数の影響を考慮してないためだと思います。
理解できない原因はこれのようです。窓関数について勉強不足ということがわかりました。自分でどここが理解できていないのかも分かっていなかったのでとても助かりました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 振動解析 en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!