バンドパスフィルター後の音圧測定について
Show older comments
特定の周波数帯域のみの音圧を測定するために,バンドパスフィルターをかけ,音圧(RMS値)を算出しています.
以下に,コードを記します.
--------------------------------------------
[y, fs] = audioread('demo.wav');
cal = 176.8; %絶対音圧に補正するためのキャリブレーション値
calin = 10.^(abs(cal)/20); %絶対音圧に補正するための式
data_row = y*calin; %絶対音圧に補正
bandpass(data_row, [80000 120000], fs); %作図
[p, f] = bandpass(data_row, [80000 120000], fs);
pdata_bp = abs(p).^2;
RMS_bp = 10*log10(sum(pdata_bp)/length(pdata_bp));
table(RMS_bp)
--------------------------------------------
〈ご質問〉
bandpass関数を用いた作図の音圧(60 dB程度)と,RMSの音圧(RMS_bp)(82.9 dB)の値が大きく異なってしまいます.
解析に用いた音データと,作図の結果を添付いたします.
なぜこのような違いが生じてしまうのか,ご存じの方がいらっしゃいましたら,ご教示いただけますと幸いです.
また,どこをどのように修正するべきか,ご教示いただきたく存じます.
よろしくお願いいたします.
Accepted Answer
More Answers (0)
Categories
Find more on Audio Processing Algorithm Design 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!

