「騒音マップって、ただ音源から遠くなるほど色が青くなるだけじゃないの?」
そう思ったあなた。実は全然違います。
コンクリートの上を歩く足音と、芝生の上を歩く足音。同じ「歩く」という動作でも、聞こえ方がまったく違いますよね。騒音マップも同じ。地面の種類ひとつで、音の届く範囲が劇的に変わるんです。
しかも、遮音壁の高さをたった1m変えるだけで、壁の裏側の騒音レベルが5dB以上変わる — これは音のエネルギーに換算すると約3倍の差。工場の騒音対策で「壁を高くするか、音源を静かにするか」の判断を間違えると、何百万円もの投資が無駄になる可能性だってあります。
今日は、ISO 9613-2という国際規格に準拠した無料の騒音マップシミュレーターを題材に、「音がどう減衰するか」を数式レベルで理解し、実際にコードで再現するところまで突き詰めます。
ざっくり本質:音は「広がる」「吸われる」「曲がる」
「音の減衰 = 距離で広がる分 + 空気に吸われる分 + 地面に吸われる分 + 壁で曲がる分」
たったこれだけです。でも、この「地面に吸われる分」が曲者で、周波数によって効き方が違うんです。
例えば、工場の低い「ゴー」という音(低周波)は草地でもあまり減衰しませんが、鳥の「チュンチュン」(高周波)は草地でガクッと小さくなります。つまり、「どの周波数の音がうるさいか」で、地面の選び方が変わるわけです。
数式で理解する:ISO 9613-2の核心
ISO 9613-2では、ある地点での音圧レベル $L_{AT}$ は次のように計算されます:
L_{AT} = L_w + D_c - A_{div} - A_{atm} - A_{gr} - A_{bar} - A_{misc}
各項の意味はこうです:
| 項 | 意味 | 直感的イメージ |
|---|---|---|
| $L_w$ | 音源のパワーレベル(dB) | 音源そのものの強さ |
| $D_c$ | 指向性補正(dB) | 音が特定方向に強く出る場合 |
| $A_{div}$ | 幾何減衰(距離減衰) | 球状に広がって弱くなる |
| $A_{atm}$ | 大気吸収 | 空気分子に吸収される |
| $A_{gr}$ | 地面減衰 | 地面で吸収・反射される |
| $A_{bar}$ | 遮音壁減衰 | 壁を回り込むときに減衰 |
| $A_{misc}$ | その他(森林など) | 今回は省略 |
この中で、最も直感的で、かつ実務で効くのが $A_{gr}$(地面減衰) です。
地面減衰の計算(ISO 9613-2準拠)
地面減衰は、音源と受音点の高さ、そして地面の音響的硬さで決まります。地面のパラメータ $G_m$ は:
- 硬地面(道路・コンクリート): $G_m = 0$
- 混合地面: $G_m = 0.5$
- 軟地面(草地・農地): $G_m = 1$
そして、地面減衰 $A_{gr}$ は次のように計算されます(簡単化した式):
A_{gr} = 4.8 - \frac{2h_m}{d} \left( 17 + \frac{300}{f} \right) \quad \text{(dB)}
ここで:
- $h_m$ = 音源と受音点の平均高さ (m)
- $d$ = 音源-受音点間の距離 (m)
- $f$ = 周波数 (Hz)
ポイント: $G_m$ が大きい(軟らかい地面)ほど、この式の値が大きくなり、減衰が効くんです。
コードで実装する ★最重要★
では、実際にJavaScriptで実装してみましょう。このツールの計算ロジックを再現します。
/**
* ISO 9613-2 に基づく騒音伝搬計算
* @param {number} Lw - 音源のパワーレベル (dB)
* @param {number} d - 音源から受音点までの距離 (m)
* @param {number} hm - 音源と受音点の平均高さ (m)
* @param {number} Gm - 地面係数 (0:硬, 0.5:混合, 1:軟)
* @param {number} f - 周波数 (Hz), デフォルトは500Hz
* @param {number} Hw - 遮音壁の高さ (m), 0なら壁なし
* @param {number} dw - 音源から壁までの距離 (m)
* @returns {number} 受音点での音圧レベル (dB)
*/
function calculateNoiseLevel(Lw, d, hm, Gm, f = 500, Hw = 0, dw = 0) {
// 1. 幾何減衰 (点音源: 距離が2倍で-6dB)
const Adiv = 20 * Math.log10(d) + 11;
// 2. 大気吸収 (500Hz, 20℃, 50%RH の場合の簡易値)
const Aatm = 0.001 * f * d / 100;
// 3. 地面減衰 (ISO 9613-2 簡易式)
// Gm=0(硬地面) なら減衰小, Gm=1(軟地面) なら減衰大
const Agr = Gm * (4.8 - (2 * hm / d) * (17 + 300 / f));
// 負にならないようにクリップ
const Agr_clipped = Math.max(0, Agr);
// 4. 遮音壁減衰 (前川式: 簡易版)
let Abar = 0;
if (Hw > 0 && dw > 0) {
// 回折経路差 δ を計算 (音源→壁頂点→受音点の経路 - 直接経路)
const h_src = 1; // 音源高さ (仮定)
const h_rec = 1.5; // 受音点高さ (仮定)
const d_rec = d - dw; // 壁から受音点までの距離
const path_direct = d;
const path_diffracted = Math.sqrt(dw**2 + (Hw - h_src)**2)
+ Math.sqrt(d_rec**2 + (Hw - h_rec)**2);
const delta = path_diffracted - path_direct;
// 前川式: Abar = 10*log10(3 + 40*δ/λ) (λ: 波長)
const lambda = 340 / f; // 音速340m/s
if (delta > 0) {
Abar = 10 * Math.log10(3 + 40 * delta / lambda);
}
}
// 5. 最終的な音圧レベル
const Lp = Lw - Adiv - Aatm - Agr_clipped - Abar;
return Math.round(Lp * 10) / 10; // 小数点第1位まで
}
// 使用例
console.log("=== 騒音伝搬計算デモ ===");
console.log("条件: Lw=90dB, 距離50m, 高さ1m, 草地(Gm=1)");
console.log("結果:", calculateNoiseLevel(90, 50, 1, 1), "dB");
console.log("条件: Lw=90dB, 距離50m, 高さ1m, コンクリート(Gm=0)");
console.log("結果:", calculateNoiseLevel(90, 50, 1, 0), "dB");
このコードのポイント:
- 地面減衰 $A_{gr}$ は $G_m$ に比例して効く
- 遮音壁は回折経路差 $\delta$ を計算し、前川式で減衰量を算出
- すべての減衰項をdBで足し合わせる(エネルギーの対数和)
数値例で確かめる
実際の数値を入れてみましょう。
条件:
- 工場の換気扇: $L_w = 95$ dB
- 距離: $d = 100$ m
- 平均高さ: $h_m = 2$ m
- 地面: 草地 ($G_m = 1$)
- 周波数: $f = 500$ Hz
- 遮音壁: なし ($H_w = 0$)
計算:
-
幾何減衰:
$A_{div} = 20 \log_{10}(100) + 11 = 20 \times 2 + 11 = 51$ dB -
大気吸収:
$A_{atm} = 0.001 \times 500 \times 100 / 100 = 0.5$ dB -
地面減衰:
$A_{gr} = 1 \times (4.8 - \frac{2 \times 2}{100} \times (17 + \frac{300}{500}))$
$= 4.8 - 0.04 \times (17 + 0.6)$
$= 4.8 - 0.04 \times 17.6$
$= 4.8 - 0.704 = 4.096$ dB -
最終値:
$L_p = 95 - 51 - 0.5 - 4.1 = 39.4$ dB
コードで確認:
console.log(calculateNoiseLevel(95, 100, 2, 1, 500, 0, 0));
// → 39.4 dB
もしこれがコンクリート地面 ($G_m = 0$) だったら?
$A_{gr} = 0$ なので、$L_p = 95 - 51 - 0.5 - 0 = 43.5$ dB
差は4.1dB — これは音のエネルギーで約2.6倍の差です。草地のほうが「静か」になるわけです。
シミュレーターで遊ぶ
さて、ここからが本番。実際のツールで実験してみましょう。
実験1: 地面の種類を変えてみる
- ツールを開く → 騒音マップ作成 シミュレーター
- 音源を1つ配置(デフォルトでOK)
- 左パネルの「地面種別」を硬地面(Gm=0) に設定
- マップの色の広がり方を観察
- 次に軟地面(草地・農地)Gm=1 に変更
何が起きる?: 軟地面にすると、等音線(同じ音量の線)がぐっと音源の近くに縮まります。特に高周波成分が効いて、マップの色が全体的に青く(静かに)なります。
実験2: 遮音壁の効果を体感
- 地面を「混合地面(Gm=0.5)」に設定
- 遮音壁の高さ $H_w$ を 0m → 2m → 5m と変えてみる
- 遮音壁の位置 $d_w$ は音源から 5m に固定
何が起きる?: $H_w=0$ では音源の後ろまで音が回り込んでいますが、$H_w=5m$ では壁の真後ろに青い「音影領域」 がくっきり現れます。これは壁を回折する際の経路差 $\delta$ が大きくなり、減衰量 $A_{bar}$ が増えたからです。
数値で見ると:
- $H_w=0$: 壁なし → 減衰0dB
- $H_w=2m$: 経路差 $\delta \approx 0.3m$ → $A_{bar} \approx 5$dB
- $H_w=5m$: 経路差 $\delta \approx 2.1m$ → $A_{bar} \approx 15$dB
5dBの差は、音のエネルギーで約3倍。壁の高さを3m上げるだけで、壁の裏側の騒音が1/3になる計算です。
実験3: 夜間割増でLdenを計算
- 音源を2つ配置(工場A: 80dB, 工場B: 75dB)
- 工場Bの「夜間割増」を夜間(+10dB) に設定
- マップがどう変わるか観察
何が起きる?: 昼間は工場Aが支配的だったマップが、夜間モードでは工場Bの影響範囲が拡大。+10dBは音のエネルギーで10倍なので、夜間は小さな音源でも大きな影響を与えることが可視化されます。
現場でハマるポイント
1. 「絶対的な予測値」ではない
このツールはISO 9613-2に基づく「標準計算」を行いますが、実際の現場では風向きや温度勾配、地形の凹凸が大きく影響します。
例えば、計算上は「草地」で設定しても、雨で濡れていれば吸音特性は変わります。また、風上と風下では音の伝わり方が10dB以上違うことも。あくまで「初期検討用の指標」として使いましょう。
2. 点音源近似の限界
このツールは音源を「点」として扱います。しかし、実在する大型ファンや変圧器は「面音源」 です。
目安として、音源のサイズの2倍以上離れた地点での予測に使いましょう。例えば、一辺が3mの機械なら、少なくとも6m以上離れた地点での計算が信頼できます。近すぎると、点音源近似の誤差が大きくなります。
3. パラメータの「効き方」を理解する
初学者にありがちなのが、「遮音壁の高さを変える」と「音源のパワーを変える」の効果を混同すること。
- 音源のパワー $L_w$ を80dB→85dB(+5dB): 音のエネルギーが約3倍に
- 遮音壁の高さ $H_w$ を1m→2m: 減衰量が数dB増える程度
つまり、遮音壁で5dB稼ぐより、音源そのものを5dB下げる方が確実で効果的なケースが多いんです。「まず音源を静かにできないか」を検討してから、遮音壁の設計に入るのが鉄則です。
まとめ
- 騒音マップは「幾何減衰 + 大気吸収 + 地面減衰 + 遮音壁減衰」の足し算でできている。地面の種類($G_m$)ひとつで数dB変わる
- 遮音壁の効果は「回折経路差」で決まる。高さを少し変えるだけで効果が激変するが、音源そのものを静かにする方が効率的な場合も多い
- このツールは「比較評価」に最適。絶対値ではなく、対策前後の変化や、複数案の比較に使おう
実際に動かして確かめてみてください:
▶ 騒音マップ作成 シミュレーター — ブラウザで即動作、登録不要
NovaSolverでは1,600以上の工学シミュレーターを無料公開中 👉 一覧はこちら