Calculate strength factor (G) for theaters and big audience intended places. Reference: Christensen, C. L.; Rindel, J. H. APPLYING IN-SITU RECALIBRATION FOR SOUND STRENGTH MEASUREMENTS IN AUDITORIA.
(Lpe, Lpe_revCh, V_revCh, T_revCh, Lps_revCh, Lps_inSitu)
| 220 | |
| 221 | |
| 222 | def strength_factor(Lpe, Lpe_revCh, V_revCh, T_revCh, Lps_revCh, Lps_inSitu): |
| 223 | """ |
| 224 | Calculate strength factor (G) for theaters and big audience intended places. |
| 225 | |
| 226 | Reference: |
| 227 | Christensen, C. L.; Rindel, J. H. APPLYING IN-SITU RECALIBRATION FOR |
| 228 | SOUND STRENGTH MEASUREMENTS IN AUDITORIA. |
| 229 | """ |
| 230 | # TO DO: docs |
| 231 | S0 = 1 # [m2] |
| 232 | |
| 233 | bands = T_revCh.bands |
| 234 | nthOct = T_revCh.nthOct |
| 235 | terms = [] |
| 236 | for bandData in T_revCh.data: |
| 237 | if bandData == 0: |
| 238 | terms.append(0) |
| 239 | else: |
| 240 | term = (V_revCh * 0.16) / (bandData * S0) |
| 241 | terms.append(term) |
| 242 | terms = [10*np.log10(term) if term != 0 else 0 for term in terms] |
| 243 | |
| 244 | revChTerm = Analysis(anType='mixed', nthOct=nthOct, minBand=float(bands[0]), |
| 245 | maxBand=float(bands[-1]), data=terms) |
| 246 | Lpe.anType = 'mixed' |
| 247 | Lpe_revCh.anType = 'mixed' |
| 248 | Lps_revCh.anType = 'mixed' |
| 249 | Lps_inSitu.anType = 'mixed' |
| 250 | G = Lpe - Lpe_revCh - revChTerm + 37 \ |
| 251 | + Lps_revCh - Lps_inSitu |
| 252 | G.anType = 'G' |
| 253 | return G |
| 254 | |
| 255 | def analyse(obj, *params, |
| 256 | bypassLundeby=False, |