Module: ISO_1996::Withdrawn::Part_3_1987
- Includes:
- Constants
- Defined in:
- lib/iso_1996/withdrawn/part_3_1987.rb
Overview
ISO 1996-3:1987 Application to Noise Limits
Module implementing calculations defined in ISO 1996-3:1987: “Acoustics - Description, measurement and assessment of environmental noise - Part 3: Application to noise limits”
Defined Under Namespace
Modules: Constants
Class Method Summary collapse
-
.assessment_level(l_aeq_t, k_t, k_i) ⇒ Float
Calculate assessment level (L_r) as defined in Section 8.
-
.compliance_evaluation(l_r, noise_limit, measurement_uncertainty) ⇒ Boolean
Evaluate compliance with noise limits as defined in Section 9.
-
.impulsive_adjustment_factor(l_cpeak, is_highly_annoying: false) ⇒ Float
Determine impulsive adjustment factor (K_I) as defined in Section 7.2.
-
.time_period_conversion(period_levels, total_period: Constants::STANDARD_24H_PERIOD) ⇒ Float
Convert sound levels between time periods as defined in Annex A.
-
.tonal_adjustment_factor(delta_l) ⇒ Float
Determine tonal adjustment factor (K_T) as defined in Section 6 and Table 1.
Class Method Details
.assessment_level(l_aeq_t, k_t, k_i) ⇒ Float
Calculate assessment level (L_r) as defined in Section 8
78 79 80 |
# File 'lib/iso_1996/withdrawn/part_3_1987.rb', line 78 def self.assessment_level(l_aeq_t, k_t, k_i) l_aeq_t + k_t + k_i end |
.compliance_evaluation(l_r, noise_limit, measurement_uncertainty) ⇒ Boolean
Evaluate compliance with noise limits as defined in Section 9
90 91 92 |
# File 'lib/iso_1996/withdrawn/part_3_1987.rb', line 90 def self.compliance_evaluation(l_r, noise_limit, measurement_uncertainty) l_r > noise_limit + measurement_uncertainty end |
.impulsive_adjustment_factor(l_cpeak, is_highly_annoying: false) ⇒ Float
Returns 6 dB if L_Cpeak ≥ 130 dB OR noise is highly annoying, otherwise 0 dB
Determine impulsive adjustment factor (K_I) as defined in Section 7.2
64 65 66 |
# File 'lib/iso_1996/withdrawn/part_3_1987.rb', line 64 def self.impulsive_adjustment_factor(l_cpeak, is_highly_annoying: false) (l_cpeak >= Constants::IMPULSE_CORRECTION_THRESHOLD || ) ? 6.0 : 0.0 end |
.time_period_conversion(period_levels, total_period: Constants::STANDARD_24H_PERIOD) ⇒ Float
Convert sound levels between time periods as defined in Annex A
110 111 112 113 |
# File 'lib/iso_1996/withdrawn/part_3_1987.rb', line 110 def self.time_period_conversion(period_levels, total_period: Constants::STANDARD_24H_PERIOD) energy_sum = period_levels.sum { |period| period[:duration] * (10 ** (period[:level] / 10.0)) } 10 * Math.log10(energy_sum / total_period) end |
.tonal_adjustment_factor(delta_l) ⇒ Float
According to Table 1: - ΔL ≥ 15 dB → 6 dB - 10 ≤ ΔL ≤ 14 dB → 5 dB - 5 ≤ ΔL ≤ 9 dB → 2 dB - ΔL < 5 dB → 0 dB
Determine tonal adjustment factor (K_T) as defined in Section 6 and Table 1
46 47 48 49 50 51 52 53 |
# File 'lib/iso_1996/withdrawn/part_3_1987.rb', line 46 def self.tonal_adjustment_factor(delta_l) case delta_l when 15..Float::INFINITY then 6.0 when 10..14 then 5.0 when 5..9 then 2.0 else 0.0 end end |