平均、標準偏差を求めようとすると-infと返される
23 views (last 30 days)
Show older comments
平素よりお世話になっております。
よろしくお願いいたします。
マイクで収録した音を、下記のコードで音圧に変換しました。
サンプリンぐ周波数192000Hzで、180秒間のデータになります。
この時、dBの平均と標準偏差を求めようと思ったのですが、mean関数を使用して、z=mean(dB);と入力しても-infと出てきます。
-infの意味は、matlabでは無限大という意味みたいですが、なぜ平均を求めようとして、-infと返されるのか意味がよくわかりません。
どうすれば、平均、標準偏差を計算できるかご指導いただけると幸いです。
data_e= abs(data)/sqrt(2);%電圧の実効値
v=data_e; %//アンプの出力電圧[V]
amp=100; %//アンプゲイン[倍]
m=4*10^(-3);% //マイク感度[V/Pa]
a= 20*10^(-6);% //基準音圧[μPa]
dB=20*log10(v/amp/m/a);% //音圧レベル[dB]
4 Comments
stozaki
on 24 Sep 2020
Edited: stozaki
on 24 Sep 2020
Wataru Tarumi様
配列dBの中に -Inf を幾つか含んでいるので、平均をとっても -Inf になってしまっているようです。
% 配列dBの値が-Infとなるインデックス取得
>> ret = find(dB == -inf)
ret =
115199
133978
290639
315151
318797
361094
.
.
.
34430673
34432999
34496378
>> dB(ret(1))
ans =
-Inf
dBを計算する過程に問題があるか、"data" の中に解析に不要な範囲が含まれているのではないでしょうか?
Answers (0)
See Also
Categories
Find more on Pulsed Waveforms 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!