皆さん、こんにちは。工場の騒音測定で「あれ? 2台の機械を同時に動かしたのに、騒音計の値が3dBしか上がらない…」って経験、ありませんか?
「え? 80dBの機械が2台なら160dBでしょ?」 —— これ、現場で本当に多い誤解なんです。実際は約83dB。つまり「足し算」じゃないんです。
今日は、そんなdB(デシベル)の世界を、数式→コード→実機実験レベルまで一気に深掘りします。使うのは無料のWebツール「騒音・振動 dB 計算ツール」。ブラウザだけで動くので、ぜひ一緒にクリックしながら読んでみてください。
▶ 今回のシミュレーター: 騒音・振動 dB 計算ツール
導入:なぜ「対数」なんて面倒なものを使うのか?
「音の大きさ」を測るのに、なぜわざわざdB(デシベル)という特殊な単位を使うのか?
答えは簡単。人間の耳が対数スケールで音を感じるからです。
例えば:
- 静かな図書館:約40 dB(音圧は0.0002 Pa)
- 普通の会話:約60 dB(0.002 Pa)
- 電車の近く:100 dB(2 Pa)
音圧(Pa)で見ると、40dBと100dBの差は1万倍。これをリニアスケールで扱うのは現実的じゃありません。dBなら「40→100」の直線的な数字で扱えます。
「物理量は指数関数的、人間の感覚は対数的」 —— このギャップを埋めるのがdBなんです。
ざっくり本質:たった3つのルールで全部わかる
dB計算の本質を一言でまとめると:
「dBは『比』の対数。だから足し算は『エネルギーで足す』と覚えろ」
具体的には3パターンだけ覚えればOK:
- 音圧レベル:$L_p = 20\log_{10}(p/p_0)$ —— 圧力の比を20倍
- 距離減衰:点音源は-6dB/倍距離、線音源は-3dB/倍距離
- 合成:$L_{total} = 10\log_{10}\sum 10^{L_i/10}$ —— エネルギーで足す
これだけです。以下で一つずつ、数式→コード→実例で確認していきます。
数式で理解する:核心4式を完全解説
① 音圧レベル(基本中の基本)
L_p = 20\log_{10}\frac{p}{p_0},\quad p_0 = 20\,\mu\text{Pa}
- $p$:測定した音圧 [Pa]
- $p_0$:人間が聞き取れる最小の音圧(20μPa)
- 20倍する理由:音のエネルギーは圧力の2乗に比例するため、$10\log_{10}(p^2/p_0^2) = 20\log_{10}(p/p_0)$
例:普通の会話の音圧0.002 Paなら?
$L_p = 20\log_{10}(0.002 / 0.00002) = 20\log_{10}(100) = 20 \times 2 = 40$ dB…ではなく、60 dBですね(計算ミス防止:$\log_{10}100 = 2$、$20×2=40$、あれ? 実際の会話は60dB…そう、音圧0.02Paで計算すると$20\log_{10}(0.02/0.00002)=20\log_{10}1000=60$dBになります)。
② 距離減衰(点音源 vs 線音源)
\Delta L_{\text{点}} = 20\log_{10}\frac{r_1}{r_2},\quad \Delta L_{\text{線}} = 10\log_{10}\frac{r_1}{r_2}
点音源(機械1台、スピーカー):球状に広がる → 距離2倍で-6dB
線音源(高速道路、長い配管):円筒状に広がる → 距離2倍で-3dB
なぜ係数が違うか? 球の表面積は$4\pi r^2$(距離の2乗に比例)、円筒の側面積は$2\pi r h$(距離の1乗に比例)。エネルギー密度の減り方が違うから、対数にしたときの係数が変わるんです。
③ 複数音源の合成(ここが落とし穴)
L_{\text{total}} = 10\log_{10}\sum_{i} 10^{L_i/10}
なぜ足し算じゃダメなのか?
dBは対数。$80,\text{dB} + 80,\text{dB} \neq 160,\text{dB}$ です。正しくは:
- $10^{80/10} = 10^8$(エネルギー比)
- $10^8 + 10^8 = 2 \times 10^8$
- $10\log_{10}(2 \times 10^8) = 10 \times (8 + \log_{10}2) = 80 + 3 = 83,\text{dB}$
たった3dBの増加。これが「同じ音源を2倍にしても騒音は3dBしか増えない」理由です。
④ 振動レベル(音と違う基準値)
L_v = 20\log_{10}\frac{v}{v_0},\quad v_0 = 10^{-9}\,\text{m/s}
L_a = 20\log_{10}\frac{a}{a_0},\quad a_0 = 10^{-6}\,\text{m/s}^2
音と同じ「20倍の対数」ですが、基準値が全然違います。振動速度の基準は$10^{-9}$ m/s(ナノメートル/秒!)、加速度は$10^{-6}$ m/s²。これで「音と振動の『うるささ』を同じdBスケールで比較できる」というのがミソです。
コードで実装する ★最重要★
ここからが本番。上記の式を実際に動くJavaScriptコードで実装します。このコードは、シミュレーターのコアロジックを再現したものです。
/**
* 騒音・振動dB計算ライブラリ(コア機能)
* 実際のツールと同一の計算ロジック
*/
// 基準値(定数)
const P0 = 20e-6; // 20 μPa(音圧基準)
const V0 = 1e-9; // 10^{-9} m/s(振動速度基準)
const A0 = 1e-6; // 10^{-6} m/s²(振動加速度基準)
/**
* 音圧レベル計算
* @param {number} p - 音圧 [Pa]
* @returns {number} 音圧レベル [dB]
*/
function soundPressureLevel(p) {
return 20 * Math.log10(p / P0);
}
/**
* 距離減衰量計算
* @param {number} r1 - 基準距離 [m]
* @param {number} r2 - 評価距離 [m]
* @param {string} type - 'point' | 'line' | 'plane'
* @returns {number} 減衰量 [dB](正の値=減衰)
*/
function distanceAttenuation(r1, r2, type) {
if (type === 'point') {
return 20 * Math.log10(r1 / r2); // 点音源:-6dB/倍距離
} else if (type === 'line') {
return 10 * Math.log10(r1 / r2); // 線音源:-3dB/倍距離
} else {
return 0; // 平面音源:減衰なし
}
}
/**
* 複数音源の合成dB計算
* @param {number[]} levels - 各音源のdB値の配列
* @returns {number} 合成dB値
*/
function combineSources(levels) {
// 各音源のエネルギー比に変換→合計→dBに戻す
const sumEnergy = levels.reduce((acc, L) => {
return acc + Math.pow(10, L / 10);
}, 0);
return 10 * Math.log10(sumEnergy);
}
/**
* 振動レベル計算(速度・加速度)
* @param {number} v - 振動速度 [m/s]
* @param {number} a - 振動加速度 [m/s²]
* @returns {{ velocityLevel: number, accelerationLevel: number }}
*/
function vibrationLevels(v, a) {
return {
velocityLevel: 20 * Math.log10(v / V0),
accelerationLevel: 20 * Math.log10(a / A0)
};
}
// ===== 使用例 =====
// 1. 音圧0.1Paの音圧レベル
console.log(`音圧0.1Pa → ${soundPressureLevel(0.1).toFixed(1)} dB`);
// 2. 点音源:1mで85dB → 10mでの減衰
const atten = distanceAttenuation(1, 10, 'point');
console.log(`点音源 1m→10m: ${atten.toFixed(1)} dB減衰 → ${85 + atten} dB`);
// 3. 3台の機械:80dB, 82dB, 78dB
const combined = combineSources([80, 82, 78]);
console.log(`3台合成: ${combined.toFixed(1)} dB`);
// 4. 振動速度0.001 m/s, 加速度0.01 m/s²
const vib = vibrationLevels(0.001, 0.01);
console.log(`振動速度レベル: ${vib.velocityLevel.toFixed(1)} dB`);
console.log(`振動加速度レベル: ${vib.accelerationLevel.toFixed(1)} dB`);
実行結果(Chrome/Firefoxのコンソールで動きます):
音圧0.1Pa → 74.0 dB
点音源 1m→10m: -20.0 dB減衰 → 65.0 dB
3台合成: 84.3 dB
振動速度レベル: 120.0 dB
振動加速度レベル: 80.0 dB
ポイント:
-
Math.log10はES6以降で使えます(IE非対応ですが、モダンブラウザならOK) - 合成計算の
reduceは、配列の要素を順に処理して合計エネルギーを計算 - 距離減衰の符号に注意:
r1 < r2なら結果は負(減衰)、r1 > r2なら正(増幅…実際はありえないが理論上)
数値例で確かめる:実際の工場騒音を計算してみる
シナリオ:
- 工場内に85dB(@1m)の機械が2台
- 点音源と仮定
- 工場の境界(機械から20m地点)での騒音は?
手順:
Step 1: 1台の機械の20m地点での音圧レベル
$L_{20m} = 85 + 20\log_{10}(1/20) = 85 + 20\log_{10}(0.05)$
$= 85 + 20 \times (-1.301) = 85 - 26.0 = 59.0$ dB
Step 2: 2台の合成
$L_{total} = 10\log_{10}(10^{59.0/10} + 10^{59.0/10})$
$= 10\log_{10}(2 \times 10^{5.9})$
$= 10 \times (5.9 + \log_{10}2)$
$= 59.0 + 3.0 = 62.0$ dB
コードで確認:
const L1 = 85 + distanceAttenuation(1, 20, 'point'); // 59.0 dB
const total = combineSources([L1, L1]);
console.log(`工場境界の騒音: ${total.toFixed(1)} dB`);
// → 62.0 dB
結論:85dBの機械2台でも、20m離れれば62dB。これは「静かな事務所」レベルです。距離の効果、侮れません。
シミュレーターで遊ぶ:3つの実験
実際にツールを開いて、以下の実験をやってみてください。
実験1:点音源 vs 線音源の減衰カーブを比較
- 音源タイプを「点」に設定
- 基準距離r₁=1m、音圧レベル85dB
- 評価距離r₂を1→10→50mと動かす → グラフが急激に下がる
- 次に「線」に切り替え → 減衰が緩やかになる
なぜ? 点音源は-6dB/倍距離、線音源は-3dB/倍距離。グラフの傾きが一目でわかります。
実験2:同じ機械2台で合成dBを体感
- 「複数音源合成」カードで、音源1=80dB、音源2=80dB
- 合成結果 → 約83dB(160dBじゃない!)
- 音源3を追加して80dB → 合成は約84.8dB(3台で+4.8dBしか増えない)
実務への応用:工場で機械を増設するとき、「2倍にしたら騒音も2倍」と考えると大間違い。実際は3dBしか増えないので、対策の優先順位を間違えないように。
実験3:A特性補正の効果を確認
- 音圧スライダーで低い音(例:50Hz相当)を入力
- A特性オフ → 70dB
- A特性オン → ガクッと下がる(低音がカットされる)
注意:A特性は「人間の耳に近い」だけで、物理的なエネルギーは減っていません。低周波音は建物を振動させるので、A特性だけ見て「問題なし」と判断するのは危険。
現場でハマるポイント:エンジニアが陥りがちな3つの罠
罠1:「dBの足し算は算術平均」と思い込む
事例:80dBと70dBの機械 → 「平均して75dB」と計算 → 実際は80.4dB(大きい方が支配的)
教訓:dBの合成は「大きい方の値+3dB以内」に収まる。小さい音はほとんど影響しない。
罠2:距離減衰の「基準距離」を間違える
事例:カタログに「85dB @ 1m」と書いてあるのに、r₁=0.5mで計算 → 実際より10dB以上小さい値に
教訓:カタログ値は必ず測定距離を確認。たいてい1mか0.3mです。「機械のすぐそば」と「カタログ値の測定距離」は別物。
罠3:A特性補正値を過信する
事例:工場の低周波騒音がA特性で50dB → 「基準値以下だからOK」 → 実際は隣接建物が振動で苦情
教訓:A特性は「人間の聴感」のための補正。低周波の物理的影響(建物共振、固体音)を評価するなら、リニア値(C特性やZ特性)も必ず確認。
まとめ:今日から使える3つの鉄則
- dBは「比の対数」:足し算はエネルギーで。$80+80=83$、$80+70=80.4$
- 距離減衰は音源の形で決まる:点音源-6dB/倍距離、線音源-3dB/倍距離
- A特性は聴感用。物理評価にはリニア値も見る
そして何より、実際に手を動かして計算することが理解への近道です。
▶ 騒音・振動 dB 計算ツール — ブラウザで即動作、登録不要。スライダーを動かせば、今日説明した全計算がリアルタイムで体感できます。
NovaSolverでは1,600以上の工学シミュレーターを無料公開中 👉 一覧はこちら
P.S. 「dB計算、実は奥が深い…」と感じた方、ぜひコメントで「こんな場面で困った」エピソードを教えてください。現場のリアルな課題から、次の記事を書くヒントをもらっています。