音圧レベルの指数減衰計算
この指数減衰計算機は、指定時間が経過した後に残る音圧レベルを求めます。初期レベルをデシベル、減衰率を1秒当たりのデシベル、経過時間を秒で入力してください。対応する音圧の指数的な低下を適用し、最終レベル、総低下量、残存音圧比を返します。音響学の演習、残響の概算、オーディオ包絡線の設計、テストデータ作成、一定のdB減衰率を仮定する簡易モデルにご利用いただけます。
無料で実行
指数的な音圧減衰がデシベルでは直線になる理由
音圧レベルは音圧そのものではなく、対数で表す量です。そのため、音圧振幅が指数的に減少すると、単位時間ごとに一定のデシベルが減る形で表されます。初期レベルをL0、減衰率を毎秒rデシベル、経過時間をt秒とすると、結果はL(t) = L0 - r × tです。対応する振幅比は10^(-r × t / 20)です。この比は初期値に対して残っている音圧を示し、final_level_dbは入力と同じ基準における最終音圧レベルを示します。総低下量が20 dBなら初期音圧振幅の10分の1が残り、6 dBなら約半分が残ります。本計算機は最終レベルとともにlevel_drop_dbとpressure_ratioを返すため、同じ指数過程を二つの観点から確認できます。丸めた中間値を繰り返し減算せず、全経過区間を直接評価しますので、丸め誤差が累積せず、常に再現可能な結果になります。
3項目の入力方法と結果の読み方
initial_level_dbには、お使いのデータと同じ基準尺度による有限のデシベル値を入力してください。一般的なSPLでは空気中の20マイクロパスカルを基準とするdBが用いられますが、この式はレベル差を扱うため、一貫した別の基準でも計算できます。decay_rate_db_per_secondには0以上の値を入力してください。0は減衰なしを意味し、大きい値ほど速く低下します。time_secondsも0以上である必要があり、0なら初期レベルは変わりません。出力にはfinal_level_db、level_drop_db、pressure_ratioのほか、各入力と式が含まれます。デシベルは基準に対する比なので、負の最終値も有効です。項目の欠落、数値文字列、NaN、無限大、負の時間、負の減衰率、有限でない演算結果を生む値は、不正な入力として拒否されます。暗黙の型変換や切り詰めは行いません。
前提条件、適した用途、モデルの限界
減衰を毎秒一定のデシベル率で適切に表せる場合にご利用ください。これは指数的な振幅包絡線の簡潔なモデルであり、授業の問題、簡易な室内音響の概算、音声フェード、シミュレーション用データ、警報レベルの予測、実験値の確認に適しています。録音から減衰率を推定したり、周波数別の吸収、反射、背景雑音を計算したりするものではありません。実際の音場には、複数の減衰勾配、室内モード、空気吸収、音源の指向性、測定機器の限界が含まれる場合があります。信号がノイズフロアに近づくと、測定レベルは理想的な直線から外れることがあります。結果は明示した数学モデルの値として扱い、校正済み測定や完全な残響解析の代用にはしないでください。レベルと減衰率の重み付け、帯域幅、基準条件が一致していることもご確認ください。有効な同一入力からは常に同一出力が得られます。ブラウザー計算は無料で、自動APIリクエストは1回$0.002です。
活用例
警報音レベルの推移を予測
警報の包絡線が毎秒一定のdB率で減衰するとき、数秒後の理想的なSPLを見積もれます。
音声の振幅包絡線を設計
デシベルの直線勾配を最終レベルと残存音圧振幅比へ変換し、再現可能なフェードを設計できます。
音響学の演習結果を確認
対数関係を手作業で組み合わせずに、最終レベル、総損失、指数的な音圧比を検算できます。
よくある質問
どの計算式を使用しますか?
最終レベル = 初期レベル - 減衰率 × 時間を使用します。音圧比は10の-(減衰率 × 時間) / 20乗です。
デシベルが直線的に下がるのに、なぜ指数減衰なのですか?
物理的な音圧振幅は指数的に減少します。デシベルは対数尺度なので、その変化が一定率の直線的な低下として表れます。
最終音圧レベルが負でも問題ありませんか?
はい。負の値は、音圧が選択した基準レベルを下回ることを示し、それ自体は計算エラーではありません。
負の減衰率や時間を入力できますか?
いいえ。本機能は0以上の経過時間における減衰を扱います。レベル増加には別のモデルをご利用ください。
API計算の料金はいくらですか?
成功したAPIリクエスト1回につき$0.002です。同じ決定論的計算をブラウザーでは無料で実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/optics/sound-level-exponential-decay \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"initial_level_db":90,"decay_rate_db_per_second":6,"time_seconds":3}'const res = await fetch("https://api.kit.forhosting.com/optics/sound-level-exponential-decay", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"initial_level_db": 90,
"decay_rate_db_per_second": 6,
"time_seconds": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/sound-level-exponential-decay",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"initial_level_db": 90,
"decay_rate_db_per_second": 6,
"time_seconds": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/sound-level-exponential-decay", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"initial_level_db":90,"decay_rate_db_per_second":6,"time_seconds":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"initial_level_db":90,"decay_rate_db_per_second":6,"time_seconds":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/sound-level-exponential-decay", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"initial_level_db": 90,
"decay_rate_db_per_second": 6,
"time_seconds": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.sound_level_exponential_decay",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |