level op• 数据种类:无 → table(仅由参数决定的算子 —— 不接受图像或数据输入)
• 调用:import acoustics; acoustics.octave_bands(fraction=3, f_min=22.0, f_max=22050.0, base=10)(或 opsacoustics.get("octave_bands"))
由定义的构造给出 1/N 倍频程的中心频率与带边。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
The band system is a geometric progression through 1 kHz:
`f_c = 1000 * G**(x/b) for odd b and 1000 * G**((2x+1)/(2b))` for
even `b, with edges at f_c * G**(-+1/(2b)). base=10` uses
`G = 10**(3/10)` (the base-ten system, in which ten third-octaves span
almost exactly a decade); `base=2 uses G = 2` exactly. No published
table of centre frequencies is transcribed — the *exact* centres are
computed, which is why `centers` reads 1000.0, 1258.925, 1584.893 rather
than the 1000, 1250, 1600 a published series would give.
**The parity of `fraction` changes where 1 kHz sits, and this surprises
people.** With an odd `b` (1/1, 1/3) there is a band *centred* on exactly
1000.0 Hz. With an even `b` (1/2, 1/6, 1/12, 1/24) the offset in the
exponent means there is no 1 kHz band at all — instead 1000.0 Hz is
exactly a band *edge*, shared by two bands. Measured across
`fraction` = 1, 2, 3, 6, 12, 24: a centre lands on 1000.0 for 1 and 3, and
a lower edge lands on it for 2, 6, 12 and 24, in every case to within
`rtol=1e-12`. That is the defining construction, not an artefact, and it
matters when a level is quoted "at 1 kHz": in an even system that number
comes from one of two adjacent half-bands, not from a band on the tone.
`nominal` is the exact centre rounded to three significant figures, for
labelling only. It is a rounding, not the published nominal series, and
it differs from it: measured, the 1/1-octave centres round to 31.6, 63.1,
126.0, 251.0, 501.0, 1000.0, 2000.0, 3980.0, 7940.0, 15800.0, where the
published series has 125 and 250 where this has 126 and 251. Do arithmetic
with `centers` and supply your own labels if they have to match a report.
Returns a dict: `centers, lower, upper, nominal, fraction`,
`base, ratio (G**(1/b)), bandwidth (upper - lower`),
`index (the integer x`).
Exact identities, asserted in the tests: `upper/lower = G**(1/b)` for every
band, `center = sqrt(lower*upper)` (the centre is the geometric mean of its
edges, by construction), and successive centres are in the ratio `G**(1/b)`.
Measured for `fraction=3, base=10` over 22 Hz - 22.05 kHz (30 bands): the
band containing 1000 Hz has `lower = 891.250938, center = 1000.000000`,
`upper = 1122.018454; upper/lower - G**(1/3) = 2.2e-16`;
`|center - sqrt(lower*upper)| <= 1.8e-12` over all bands; and successive
centre ratios deviate from `G**(1/3) by at most 6.7e-16. With base=2`
the octave centres come out exactly 31.25, 62.5, 125, 250, 500, 1000, 2000,
4000, 8000, 16000 Hz.
Raises `ValueError: fraction not an int in [1, 24], base`
not 2 or 10, non-positive or non-finite `f_min / f_max`,
`f_min >= f_max, and a request for more than :data:MAX_BANDS` bands.
• acoustic_condition_monitoring 族使用指南
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者・年份)与用途见上面的族使用指南。
• acoustic_condition_monitoring — py -3.11 examples/acoustic_condition_monitoring.py
table 作为输入)level)octave_spectrum · weighting_response · apply_weighting · equivalent_level · percentile_level
*Provenance: acoustics.py — ACOUSTICS 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.