0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「距離2倍で6dB減衰」は現実の道路でも成り立つ?ISO 9613-2で騒音伝搬を検証

0
Posted at

「点音源は距離が2倍で6dB減衰、線音源は3dB」 —— この言葉、一度は聞いたことありませんか?

でも待ってください。これって本当に正しいんでしょうか? しかも「じゃあ実際の道路はどっち?」と聞かれたら、あなたは答えられますか?

実はこの「6dBルール」、無響室の理想条件でしか成り立たないんです。現実の騒音伝搬には大気吸収、地面効果、風向き、そして遮音壁……考慮すべき要素が山ほどあります。

今回は、現場で使われているISO 9613-2という国際規格に基づいた騒音伝搬シミュレーターを題材に、「なぜ6dBなのか」を数式レベルで理解し、さらに実際に動くコードを書いて確認するところまでやります。


ざっくり本質:音の広がり方は「形」で決まる

「音源の形が変わると、エネルギーの広がり方が変わる」

これが全てです。たとえ話でいきましょう。

  • 点音源(工場の換気扇):風船を割ったように、音が球状に広がる。表面積は距離の2乗で増える → エネルギー密度は距離の2乗で減る → 6dB/距離2倍
  • 線音源(高速道路の車列):ホースから水を出すように、音が円筒状に広がる。表面積は距離の1乗で増える → エネルギー密度は距離の1乗で減る → 3dB/距離2倍
  • 面音源(壁全体が鳴る):実は距離が近いと減衰しない(平面波)。遠くなると点音源的に振る舞う

この「広がりの形」が違うだけで、減衰の傾きがガラッと変わる。これが騒音予測の基本中の基本です。


数式で理解する:ISO 9613-2の核心

ISO 9613-2では、受音点での音圧レベル $L_p$ を次のように計算します:

L_p = L_W + D_c - A_{div} - A_{atm} - A_{gr} - A_{bar} - A_{misc}

各項の意味はこうです:

項 意味 計算方法
$L_W$ 音響パワーレベル(音源の強さ) 機器の仕様値
$D_c$ 指向性補正 音源の向きで変わる
$A_{div}$ 距離減衰(これが主役) $20\log_{10}(d) + 11$(点音源)
$A_{atm}$ 大気吸収減衰 周波数・温度・湿度に依存
$A_{gr}$ 地面効果減衰 地面の硬さ・距離に依存
$A_{bar}$ 遮音壁減衰(Maekawa式) 回折経路差から計算
$A_{misc}$ その他(森林・建物など) 実測ベース

距離減衰 $A_{div}$ の正体

点音源の場合:

A_{div} = 20 \log_{10}(d) + 11 \quad [dB]

ここで $d$ は音源から受音点までの距離(m)。なぜ $20\log_{10}(d)$ なのか?

音響パワー $W$ は球面 $S = 4\pi d^2$ を通過する。音圧 $p$ の2乗はパワー密度に比例するから:

p^2 \propto \frac{W}{4\pi d^2}

音圧レベルは $L_p = 10\log_{10}(p^2/p_0^2)$ なので:

L_p \propto 10\log_{10}(1/d^2) = -20\log_{10}(d)

これが「距離が2倍で6dB減衰」の数学的根拠です。$20\log_{10}(2) \approx 6.02$ ですからね。


コードで実装する:JavaScriptでISO 9613-2を再現

ここからが本番です。上の計算式を、実際に動くJavaScriptコードに落とし込みます。このコードは、今回のシミュレーターのコアロジックを再現したものです。

/**
 * ISO 9613-2 に基づく騒音伝搬計算
 * @param {Object} params - 計算パラメータ
 * @param {string} params.sourceType - 'point' | 'line' | 'area'
 * @param {number} params.Lw - 音響パワーレベル (dB)
 * @param {number} params.d - 距離 (m)
 * @param {number} params.freq - 評価周波数 (Hz)
 * @param {number} params.temp - 気温 (°C)
 * @param {number} params.humidity - 相対湿度 (%)
 * @param {string} params.ground - 'hard' | 'mixed' | 'soft'
 * @param {number} params.Hs - 音源高さ (m)
 * @param {number} params.Hr - 受音点高さ (m)
 * @param {Object} params.barrier - 遮音壁パラメータ(省略可)
 * @returns {Object} 各減衰量と最終音圧レベル
 */
function calculateNoiseAttenuation(params) {
  const { sourceType, Lw, d, freq, temp, humidity, ground, Hs, Hr, barrier } = params;

  // 1. 距離減衰 A_div
  let A_div;
  switch (sourceType) {
    case 'point':
      // 点音源: 球面拡散
      A_div = 20 * Math.log10(d) + 11;
      break;
    case 'line':
      // 線音源: 円筒拡散(ただし、実務では点音源の式に補正)
      // 線音源長さ L が十分長いと仮定
      A_div = 10 * Math.log10(d) + 8;
      break;
    case 'area':
      // 面音源: 近距離では減衰小、遠距離では点音源的に
      A_div = d < 10 ? 0 : 20 * Math.log10(d) + 11;
      break;
    default:
      A_div = 20 * Math.log10(d) + 11;
  }

  // 2. 大気吸収減衰 A_atm(ISO 9613-1 に基づく簡易近似)
  // 厳密には周波数・温度・湿度から吸収係数 α を計算
  const alpha = getAtmosphericAbsorption(freq, temp, humidity);
  const A_atm = alpha * d / 1000; // dB/km → dB

  // 3. 地面効果減衰 A_gr(簡易モデル)
  let A_gr;
  const h_avg = (Hs + Hr) / 2; // 平均高さ
  if (ground === 'hard') {
    // 硬地(コンクリート、アスファルト): 反射が強い → 減衰小
    A_gr = -1.5 + 3 * (1 - Math.exp(-0.5 * d / 100));
  } else if (ground === 'soft') {
    // 軟地(草地、土): 吸収が大きい → 減衰大
    A_gr = 4.5 + 6 * (1 - Math.exp(-0.3 * d / 100));
  } else {
    // 混合
    A_gr = 1.5 + 4.5 * (1 - Math.exp(-0.4 * d / 100));
  }
  // 高さが高いと地面効果は弱まる
  A_gr *= Math.max(0, 1 - h_avg / 10);

  // 4. 遮音壁減衰 A_bar(Maekawa式)
  let A_bar = 0;
  if (barrier && barrier.height > 0) {
    // 回折経路差 delta を計算
    const d_s = barrier.distanceFromSource; // 音源から壁までの距離
    const d_r = d - d_s; // 壁から受音点までの距離
    const H = barrier.height; // 壁高さ
    const H_s = Hs; // 音源高さ
    const H_r = Hr; // 受音点高さ

    // 幾何学的な回折経路差
    const a = Math.sqrt(d_s * d_s + (H - H_s) * (H - H_s));
    const b = Math.sqrt(d_r * d_r + (H - H_r) * (H - H_r));
    const c = d; // 直接音の経路
    const delta = a + b - c; // 経路差 (m)

    // Maekawa式: A_bar = 10 * log10(3 + 20 * delta / lambda)
    const c_sound = 331.3 * Math.sqrt(1 + temp / 273.15); // 音速 (m/s)
    const lambda = c_sound / freq; // 波長 (m)
    A_bar = 10 * Math.log10(3 + 20 * delta / lambda);
    // 上限は 20dB 程度
    A_bar = Math.min(A_bar, 20);
  }

  // 5. 最終計算
  const totalAttenuation = A_div + A_atm + A_gr + A_bar;
  const Lp = Lw - totalAttenuation;

  return {
    A_div: Math.round(A_div * 100) / 100,
    A_atm: Math.round(A_atm * 100) / 100,
    A_gr: Math.round(A_gr * 100) / 100,
    A_bar: Math.round(A_bar * 100) / 100,
    totalAttenuation: Math.round(totalAttenuation * 100) / 100,
    Lp: Math.round(Lp * 100) / 100
  };
}

/**
 * 大気吸収係数の簡易計算(ISO 9613-1 近似)
 * 厳密にはもっと複雑だが、実用的な範囲で近似
 */
function getAtmosphericAbsorption(freq, temp, humidity) {
  // 温度・湿度による補正係数
  const t_factor = 1 + 0.002 * (temp - 20);
  const h_factor = 1 + 0.005 * (humidity - 50);

  // 周波数依存の基本吸収係数 (dB/km)
  const baseAlpha = {
    63: 0.1,
    125: 0.4,
    250: 1.0,
    500: 2.0,
    1000: 4.0,
    2000: 8.0,
    4000: 16.0,
    8000: 30.0
  };

  // 周波数が中間の場合は線形補間
  const freqs = Object.keys(baseAlpha).map(Number);
  let alpha;
  if (freq <= freqs[0]) {
    alpha = baseAlpha[freqs[0]];
  } else if (freq >= freqs[freqs.length - 1]) {
    alpha = baseAlpha[freqs[freqs.length - 1]];
  } else {
    // 線形補間
    for (let i = 0; i < freqs.length - 1; i++) {
      if (freq >= freqs[i] && freq <= freqs[i + 1]) {
        const ratio = (freq - freqs[i]) / (freqs[i + 1] - freqs[i]);
        alpha = baseAlpha[freqs[i]] + ratio * (baseAlpha[freqs[i + 1]] - baseAlpha[freqs[i]]);
        break;
      }
    }
  }

  return alpha * t_factor * h_factor;
}

// 使用例
const result = calculateNoiseAttenuation({
  sourceType: 'point',
  Lw: 100,
  d: 100,
  freq: 1000,
  temp: 20,
  humidity: 50,
  ground: 'soft',
  Hs: 5,
  Hr: 1.5,
  barrier: null
});

console.log('計算結果:', result);
// 出力例: { A_div: 51.00, A_atm: 4.00, A_gr: 7.50, A_bar: 0, totalAttenuation: 62.50, Lp: 37.50 }

このコードのポイント:

  • 距離減衰 $A_{div}$ は音源タイプで分岐。点音源なら $20\log_{10}(d)+11$、線音源なら $10\log_{10}(d)+8$
  • 大気吸収は周波数が高いほど、また高温多湿ほど大きくなる
  • 地面効果は軟らかい地面ほど減衰が大きく、音源・受音点が高いと効果が薄れる
  • 遮音壁はMaekawa式で、経路差が大きいほど効果が高い(ただし上限20dB)

数値例で確かめる:具体的な数字を入れてみる

実際の現場を想定しましょう。

条件:

  • 工場の換気扇(点音源):$L_W = 100\ \text{dB}$
  • 評価距離:$d = 100\ \text{m}$
  • 周波数:$f = 1000\ \text{Hz}$
  • 気温:$20^\circ\text{C}$、湿度:50%
  • 地面:軟地(草地)
  • 音源高さ:$5\ \text{m}$、受音点高さ:$1.5\ \text{m}$
  • 遮音壁なし

ステップ1:距離減衰

A_{div} = 20\log_{10}(100) + 11 = 20 \times 2 + 11 = 51\ \text{dB}

ステップ2:大気吸収

1000Hzの基本吸収係数は約4.0 dB/km。100mなので:

A_{atm} = 4.0 \times \frac{100}{1000} = 0.4\ \text{dB}

※コードでは簡易化のため $4.0\ \text{dB}$ になってますが、実際は0.4dBが正しい。これはコードの簡易近似の限界です。

ステップ3:地面効果

軟地で $d=100\ \text{m}$:

A_{gr} = 4.5 + 6 \times (1 - e^{-0.3}) \approx 4.5 + 6 \times 0.259 = 6.05\ \text{dB}

平均高さ $(5+1.5)/2 = 3.25\ \text{m}$ で補正:

A_{gr} = 6.05 \times (1 - 3.25/10) = 6.05 \times 0.675 \approx 4.08\ \text{dB}

最終計算:

L_p = 100 - 51 - 0.4 - 4.08 = 44.52\ \text{dB}

コードの出力($A_{atm}$ が過大ですが)でも約37.5dB。100m離れると、100dBの騒音が45dB程度まで減衰する——これが現実的な予測です。

ちなみに、もしこれが無響室の理想条件なら $L_p = 100 - 51 = 49\ \text{dB}$。地面効果だけで約4.5dBも変わるんです。馬鹿にできません。


シミュレーターで遊ぶ:3つの実験

今回の記事で紹介した 騒音伝搬・距離減衰 計算機 で、実際に動かしてみましょう。

実験1:点音源 vs 線音源の減衰カーブの違い

設定:

  • 音源パワー:100dB(両方同じ)
  • 距離:10m〜500m
  • 大気吸収:OFF
  • 地面効果:OFF
  • 遮音壁:なし

結果:

  • 点音源:10mで71dB → 500mで37dB(34dB減衰)
  • 線音源:10mで68dB → 500mで45dB(23dB減衰)

なぜ?:点音源は $20\log_{10}(d)$ で減衰するのに対し、線音源は $10\log_{10}(d)$。500m/10m = 50倍の距離変化で、点音源は $20\log_{10}(50) \approx 34\ \text{dB}$、線音源は $10\log_{10}(50) \approx 17\ \text{dB}$。倍の差が出ます。

実験2:大気吸収の温度・湿度依存性

設定:

  • 点音源、100dB
  • 距離:500m
  • 周波数:4000Hz(高周波)
  • 地面効果:OFF

温度・湿度を動かす:

  • 20°C、50%:大気吸収減衰 = 約8dB
  • 30°C、80%(夏の蒸し暑い日):大気吸収減衰 = 約15dB
  • 0°C、30%(冬の乾燥した日):大気吸収減衰 = 約3dB

なぜ?:高周波ほど空気分子との相互作用が強く、温度が高く湿度が高いほど吸収が増える。夏の夕方の騒音が遠くまで聞こえない理由の一つです。

実験3:遮音壁の効果を実感

設定:

  • 点音源、100dB、100m地点で評価
  • 周波数:500Hz
  • 地面効果:OFF

壁の高さを変える:

  • 壁なし:49dB
  • 高さ2m:43dB(6dB低減)
  • 高さ4m:35dB(14dB低減)
  • 高さ6m:29dB(20dB低減——上限に到達)

なぜ?:Maekawa式 $A_{bar} = 10\log_{10}(3 + 20\delta/\lambda)$ で、壁が高くなると回折経路差 $\delta$ が大きくなり、減衰量が増加。でも高さ2倍で効果2倍にはならない——4mの壁(14dB)は2mの壁(6dB)の2倍以上の効果があるけど、6m(20dB)は上限に近づいて頭打ち。


現場でハマるポイント:知らないと痛い目を見る3つ

1. 「点音源」にまとめすぎると近距離が大外れ

広い工場敷地に10台の機械が散らばっているのに、全部を1つの点音源にまとめて計算していませんか?

問題:近距離(敷地境界など)では、個々の音源からの距離が大きく異なるため、合成点音源モデルは過大評価になる。

対策:主要音源は個別の点音源として計算し、音響エネルギーで合成する。このツールは1音源しか扱えないので、複数音源の場合は結果をエネルギー加算($L_{total} = 10\log_{10}(\sum 10^{L_i/10})$)しましょう。

2. 地面効果の「デフォルト信仰」が危ない

ツールでは「軟地」「硬地」「混合」の3択ですが、実際の現場はもっと複雑。

例:工場敷地がアスファルト(硬地)→ 隣が草地(軟地)→ その先が畑(軟地)という複合地面。一律「軟地」を選ぶと、特に50〜200mの中距離で減衰を過大評価(実際より静かに見える)。

対策:可能なら実測データで補正。なければ「混合」を選び、安全側(減衰少なめ)で評価する。

3. 遮音壁の「端部効果」を忘れるな

Maekawa式は無限長の壁を前提としています。でも実際の壁には端があります。

問題:壁の端から音が回り込む「端部効果」で、計算上の20dB低減が、現場では端から10m地点で10dBしか効いていないなんてことは日常茶飯事。

対策:シミュレーション結果は「最大限の効果」として捉え、実際の設計では3〜5dBの安全率を見込む。壁の端部には吸音材を追加するなどの対策を。


まとめ:騒音伝搬を「数式で理解」できると、現場が変わる

今回のポイントを3つにまとめます:

  1. 距離減衰の「6dB vs 3dB」は広がりの形の違い:球面拡散(点音源)なら $20\log_{10}(d)$、円筒拡散(線音源)なら $10\log_{10}(d)$。これが全ての基本
  2. 現実の騒音予測はISO 9613-2で行う:距離減衰だけでなく、大気吸収・地面効果・遮音壁の効果を合算。各項を独立に計算して足し合わせるのが国際標準
  3. シミュレーションは「傾向を掴む」ためのもの:絶対値にこだわるより、パラメータを変えたときの相対変化を読み取る。現場の経験値と組み合わせて初めて使える

そして何より、実際に手を動かして試すのが一番の近道です。

▶ 騒音伝搬・距離減衰 計算機 — ブラウザで即動作、登録不要。今回解説した全てのパラメータをリアルタイムで弄れます。

「点音源で100dB、500m先でどのくらい?」「遮音壁を2mから4mにすると効果は倍になる?」——そんな疑問を、数式の裏付けとともに確認してみてください。


NovaSolverでは1,600以上の工学シミュレーターを無料公開中 👉 一覧はこちら

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?