<!-- canonical: https://docs.jmrp.io/phonometry/es/devices/electroacoustics/induction-loops/ -->
Source: https://docs.jmrp.io/phonometry/es/devices/electroacoustics/induction-loops/

Un audífono en la posición de **telebobina** capta un campo magnético en lugar
del sonido: la voz de quien habla, llevada a un amplificador que hace circular
una corriente por un bucle de hilo tendido en el suelo, llega al oyente sin la
reverberación ni el ruido de la sala por medio. Dos normas IEC se reparten el
trabajo. **IEC 60118-4** dice qué campo tiene que producir el sistema
instalado, dónde y con qué poco ruido, y cómo demuestra el instalador que lo
produce. **IEC 62489-1** dice cómo mide y declara el fabricante de cada
componente, el amplificador, el bucle como carga y el bucle de cuello, lo que
hace. Esta guía sigue a las dos: el nivel de referencia y sus unidades, el
campo que produce un bucle, el bucle como la carga que excita un amplificador,
las señales de ensayo y el medidor, los veredictos sobre una sala, un refugio y
un mostrador, el ensayo de sobrecarga de la Modificación 1, y el amplificador y
el bucle de cuello.

## 1. La referencia y el nivel (IEC 60118-4 3.1, 4.3, E.2, E.6)

Todo nivel de la norma se refiere a una intensidad del campo magnético de
**400 mA/m**, 0 dB: $L = 20\lg(H / 0{,}4\ \mathrm{A/m})$. La referencia está
elegida para que un promedio a largo plazo de −12 dB, 100 mA/m, dé al audífono
la misma salida acústica que un nivel de presión acústica de 70 dB en su
micrófono (4.3), mientras que los 0 dB son la intensidad de campo máxima de
8.2.7, leída con una sinusoide de 1 kHz o la señal combi en el medidor de valor
eficaz verdadero. La intensidad de campo se expresa en amperios por
metro porque es proporcional a la corriente del bucle y cae con la distancia al
conductor; en el aire la densidad de flujo es $B = \mu_0 H$, así que 400 mA/m
son unos 0,5 µT (E.6).

Una telebobina es una bobina pequeña sobre una varilla de ferrita, y responde a
la componente del campo a lo largo de su eje: $20\lg|\cos\theta|$, 3 dB menos
a 45° y 9,3 dB menos a 70° (E.2, figura E.6). La telebobina de un audífono que
se lleva erguido queda vertical, y por eso toda medición de IEC 60118-4 se hace
con la bobina de captación vertical salvo que los usuarios estén arrodillados o
tumbados (8.1), y por eso el bucle horizontal en el suelo es el diseño
habitual.

```python

from phonometry import electroacoustics

print(electroacoustics.field_strength_level([0.4, 0.1]).round(2))    # [  0.   -12.04]
print(electroacoustics.field_strength([-3.0, 3.0]).round(3))         # [0.283 0.565] A/m
print(round(float(electroacoustics.magnetic_flux_density(0.4)) * 1e6, 3))  # 0.503 µT
print(electroacoustics.telecoil_response([45.0, 70.0]).round(2))     # [-3.01 -9.32]
```

La ventana de ±3 dB de 10.2 modificado se imprime como «283 mA/m a 566 mA/m»:
son $400/\sqrt{2}$ y $400\sqrt{2}$, un factor $\sqrt{2}$ leído como 3 dB;
±3 dB exactos son 283 mA/m a 565 mA/m. E.6 imprime la densidad de flujo de
1 A/m como 1,256 µT, donde $4\pi \times 10^{-7}$ se redondea a 1,257 µT, un
desliz que recoge el [registro de erratas](/phonometry/es/reference/errata/).

## 2. El campo de un bucle (IEC 60118-4 Anexo E, IEC 62489-1 5.4.10)

Una corriente $I$ por un bucle de $N$ espiras produce en todas partes un campo
proporcional a $NI$. IEC 60118-4 E.1 da la única forma cerrada que usa, el
campo en el centro de un bucle cuadrado de una espira y lado $d$, en su plano:

$$
H = \frac{2\sqrt{2}\,I}{\pi d},
$$

y la extiende a un rectángulo tomando $d = \sqrt{d_1 d_2}$, «siempre que los
lados $d_1$, $d_2$ de un bucle rectangular no sean extremadamente diferentes», en
la redacción de la UNE. Todo lo demás sobre el campo es una
figura en la norma. `rectangular_loop_field` lo calcula: cada uno de los cuatro
lados es un filamento recto cuyo campo de Biot-Savart se cierra exactamente,
así que el campo en cualquier punto y en cualquier componente no arrastra
ninguna discretización. En el centro de un cuadrado es la fórmula de E.1 con
precisión de máquina; para un rectángulo, la aproximación $\sqrt{d_1 d_2}$ se
queda corta en $\sqrt{(d_1^2 + d_2^2)/(2 d_1 d_2)}$, 0,35 dB con una relación
de aspecto de 1,5.

IEC 62489-1 5.4.10.2 fija dónde se declara el campo de un amplificador: **a
1,4 m sobre el centro de un bucle cuadrado horizontal** cuya resistencia e
inductancia igualan la carga asignada. `loop_current` invierte el campo exacto
sobre el eje para dar la corriente que necesita un bucle, y `loop_dimensions`
responde a 5.4.11 al revés: el mayor bucle cuadrado, y el bucle de relación de
aspecto 3:1, cuyo centro alcanza 400 mA/m a 1,4 m con la corriente del
amplificador.

```python
current = electroacoustics.loop_current(10.0, 14.0, height_m=1.2)
print(round(current, 2))                      # 5.41 A para 400 mA/m sobre el centro
x = np.linspace(-8.0, 8.0, 641)               # un recorrido a través del lado de 10 m, y = 0
field = electroacoustics.rectangular_loop_field(current, 10.0, 14.0, x, 0.0, 1.2)
level = field.level_db("z")
print(x[np.abs(level) <= 3.0][[0, -1]])       # [-4.75  4.75] m dentro de ±3 dB

print(round(electroacoustics.loop_centre_field(1.0, 10.0, width_m=14.0), 4))  # 0.0761 A/m (E.1)
exact = electroacoustics.rectangular_loop_field(1.0, 10.0, 14.0, 0.0, 0.0, 0.0)
print(round(float(exact.h_z_a_per_m), 4))                                   # 0.0782 A/m

print([round(v, 1) for v in electroacoustics.loop_dimensions(5.0)])                    # [10.3, 10.3] m
print([round(v, 1) for v in electroacoustics.loop_dimensions(5.0, aspect_ratio=3.0)])  # [7.4, 22.1] m

print([round(electroacoustics.loop_current(10.0 * r, 10.0), 2) for r in (1, 1.5, 2, 3, 5)])
# [4.88, 5.63, 6.04, 6.41, 6.64] A: la figura H.1 con un lado menor de 10 m
```

Dos de las figuras de la norma se reproducen punto por punto. Las corrientes de
la figura H.1, para 400 mA/m a 1,4 m sobre el centro de un bucle frente a su
lado menor y su relación de aspecto, salen dentro del grosor de la línea
impresa, unos 0,01 A en el extremo de 10 m de cada curva. Las dos curvas de la
figura E.2 b), las componentes vertical y horizontal a 1,2 unidades sobre un
bucle de 15 por 10, salen dentro de medio decibelio aproximadamente a través
de las 10 unidades de anchura del bucle, que es el recorrido que describe E.1
(«la distribución de la componente vertical a través de un bucle»). El panel a)
de la propia figura traza en cambio la línea del campo vertical a lo largo de
las 15 unidades, donde la componente vertical marcaría unos 2 dB más cerca del
conductor; lo recoge el [registro de erratas](/phonometry/es/reference/errata/).

*El campo vertical a través del bucle a la altura de escucha. Dentro, se
mantiene en ±3 dB hasta 4,75 m de los 5 m de semianchura; justo encima de cada
conductor el campo se vuelve horizontal y la componente vertical que lee una
telebobina se anula, y fuera del bucle vuelve con el signo contrario. Ese es el
desbordamiento que oye una sala vecina, y la razón de que el volumen útil se
quede antes de las paredes.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python

x = np.linspace(-8.0, 8.0, 641)
field = electroacoustics.rectangular_loop_field(current, 10.0, 14.0, x, 0.0, 1.2)
ax = field.plot(language="es")
ax.set_ylim(-30.0, 8.0)
plt.show()
```

</details>

## 3. El bucle como carga (IEC 62489-1 Anexo B, IEC 60118-4 E.3)

El bucle es una resistencia en serie con una inductancia (IEC 62489-1 5.4.3.2,
B.2). La resistencia es $R = \rho N l / a$ para un conductor de longitud $l$ y
sección $a$, con la resistividad del cobre recocido patrón, 1/58 Ω·mm²/m a
20 °C y 0,00393 por grado (IEC 60028). La inductancia de un rectángulo de hilo
redondo es la fórmula (58) de Grover; para $N$ espiras se multiplica por $N^2$,
el acoplamiento perfecto que supone la tabla B.1. El módulo de la impedancia,
$|Z| = \sqrt{R^2 + (2\pi f L)^2}$, vale $\sqrt{2}$ veces la resistencia a la
frecuencia de corte $R/(2\pi L)$, «1,4 veces» en IEC 60118-4 E.3, y la tensión
que tiene que dar el amplificador para una corriente $I$ es $U = I|Z|$.

La tabla B.1 de IEC 62489-1 es el oráculo. Todas sus resistencias salen de la
resistividad a 20 °C con el perímetro de cada bucle, y cuatro de sus seis
inductancias salen de la fórmula (58) sin el término del flujo dentro del hilo:

| Bucle | Tamaño [m] | Espiras | Sección [mm²] | $R$ impresa / calculada [Ω] | $L$ impresa / calculada [µH] | $\|Z\|$ a 2 kHz, 5 kHz [Ω] |
| :--- | :--- | ---: | ---: | :--- | :--- | :--- |
| Bucle de cuello | 0,22 de diámetro | 10 | 0,5 | 0,24 / 0,238 | 85 / no reproducida | 1,09, 2,67 / 1,09, 2,68 |
| Bucle de mostrador | 0,35 × 0,45 | 10 | 0,75 | 0,37 / 0,368 | 189 / 189,4 | 2,41, 5,96 / 2,40, 5,95 |
| Bucle doméstico | 3 × 4 | 1 | 1,0 | 0,24 / 0,241 | 22 / 22,2 | 0,37, 0,74 / 0,37, 0,73 |
| Sala pequeña | 6 × 8 | 1 | 1,5 | 0,32 / 0,322 | 47 / 47,2 | 0,67, 1,52 / 0,67, 1,51 |
| Lugar de culto típico | 10 × 20 | 1 | 1,5 | 0,69 / 0,690 | 109 / 109,2 | 1,54, 3,50 / 1,53, 3,49 |
| Lugar de culto grande | 15 × 40 | 1 | 2,5 | 0,76 / 0,759 | 218 / no reproducida | 2,85, 6,89 / 2,84, 6,89 |

Las impedancias se calculan a partir de las $R$ y $L$ impresas. La resistencia
del bucle de mostrador necesita los 1,6 m que dan sus lados, no los 1,5 m que
la tabla imprime como perímetro, lo que es una errata. La tabla B.1 no dice qué
fórmula usó para la inductancia, y ninguna lectura del calibre del hilo alcanza
los 85 µH del bucle de cuello ni los 218 µH del bucle grande, así que esos dos
no se reivindican. `rectangular_loop_inductance` conserva por defecto el
término interno, entre un 2,7 % y un 4,2 % más en estos cuatro bucles, porque a
frecuencias de audio la
profundidad de penetración en el cobre (2 mm a 1 kHz) supera el radio de todos
los conductores de la tabla: se pasa `internal_inductance=False` para
reproducir la tabla B.1. IEC 60118-4 E.3 ofrece una regla práctica para un
bucle cuadrado de una espira y lado $d$ de más de un metro cuadrado,
$L = 8d$ µH, y se queda alta: para hilo de 1,5 mm² la fórmula (58) da
$6{,}7d$ µH para un cuadrado de 5 m y $7{,}8d$ µH para uno de 20 m.

```python
r = electroacoustics.loop_resistance(60.0, 1.5)                  # lugar de culto típico
l = electroacoustics.rectangular_loop_inductance(10.0, 20.0, 1.5, internal_inductance=False)
z = electroacoustics.loop_impedance(r, l)
print(round(r, 3), round(l * 1e6, 1))            # 0.69 ohmios 109.2 µH
print(round(z.corner_frequency_hz))              # 1005 Hz
print(z.at([2000.0, 5000.0]).round(2))           # [1.54 3.5 ] ohmios
print(round(electroacoustics.rectangular_loop_inductance(10.0, 20.0, 1.5) * 1e6, 1))  # 112.2 µH
print(round(electroacoustics.loop_resistance(60.0, 1.5, conductor_temperature_c=40.0), 3))  # 0.744 ohmios
```

Por encima de su frecuencia de corte la impedancia del bucle sube 6 dB por
octava, así que un bucle excitado por tensión pierde los agudos. El remedio
habitual es un **amplificador de activación de corriente**, como lo llama la
UNE, cuya resistencia de salida, unas diez veces la del bucle, mantiene la
corriente constante aunque la impedancia varíe (E.3); el precio es tensión, y
el ensayo de sobrecarga de la sección 7 es donde se paga.

## 4. Señales de ensayo y medidor (IEC 60118-4 6.1, 6.4, 6.6)

El medidor de intensidad de campo es un sonómetro con una bobina de captación
magnética en lugar del micrófono, ecualizado plano en ±1 dB de 50 Hz a 10 kHz,
con un detector de valor eficaz verdadero y el promediado de 125 ms de su modo
«F» (6.1.3); el medidor de pico (PPM) de 6.1.4 es la alternativa, y en caso de
duda la lectura de valor eficaz verdadero es la definitiva (6.1.1).
`field_strength_meter` lee un registro plano o con ponderación A, esta última
para las mediciones de ruido del capítulo 7 y de 10.4.

El **ruido rosa** de 6.4 está limitado en banda por filtros Butterworth de
tercer orden a 75 Hz y 6,5 kHz y tiene una relación pico a pico sobre valor
eficaz de al menos 18 dB, un factor de cresta de 4; IEC 62489-1 5.4.8.2 b)
pide a la misma señal 18 dB ±2 dB. El ruido gaussiano alcanza unas 5,5 veces
su valor eficaz en un minuto a 48 kHz, 21 dB pico a pico, que cumple lo primero
y no lo segundo, así que `loop_test_noise` recorta a 4 veces el valor eficaz y
reescala, lo que cumple las dos. La **señal combi** de 6.6 y la tabla 2 alterna
ráfagas de tono de 1 kHz de al menos 1 s, con rampas de 5 ms, con al menos el
cuádruple de ese ruido 6 dB más bajo: los picos de la sinusoide quedan 3 dB por debajo
de los del ruido, y el amplificador se calienta menos que con una sinusoide continua
mientras el nivel todavía se lee en las ráfagas.

```python
fs = 48000
print(electroacoustics.band_limit_response([100.0, 5000.0]).round(2))  # [-0.71 -0.82] dB
noise = electroacoustics.loop_test_noise(fs, 30.0, seed=7)
print(round(20 * np.log10(np.ptp(noise) / np.sqrt(np.mean(noise**2))), 2))  # 18.06 dB

combi = 0.4 * electroacoustics.combi_signal(fs, cycles=2, seed=7)  # ráfagas de sinusoide a 400 mA/m
reading = electroacoustics.field_strength_meter(combi, fs)
print(round(reading.maximum_db, 2), round(reading.equivalent_db, 2))  # 0.0 -3.98 dB
```

La NOTA 2 de 6.4, y la NOTA 3 de 5.4.8.2 de IEC 62489-1, imprimen las
respuestas teóricas de los filtros de limitación de banda como −0,8 dB a
100 Hz y −0,7 dB a 5 kHz. Los dos filtros dan −0,71 dB y −0,82 dB, al revés;
la planitud de ±1 dB que explica la nota se cumple de cualquier modo. El propio
apartado pide en inglés filtros «at least one-third-order», un desliz por el
tercer orden que nombran su B.2.3, su propia NOTA 2 e IEC 62489-1, y que la UNE
ya traduce «de tercer orden»; los dos están en el registro de erratas.

*El medidor con la señal combi. Las ráfagas leen 0 dB, el ruido 6 dB menos, y
la indicación máxima, la que lee 8.2.7, es la de la sinusoide; el nivel del registro
completo queda 4 dB por debajo, que es lo que ahorra al amplificador.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python
ax = reading.plot(language="es")
ax.set_ylim(-16.0, 4.0)
plt.show()
```

</details>

## 5. Cómo se hace la medida (IEC 60118-4 capítulos 7 a 10)

1. **Primero el lugar, con el bucle apagado** (7.1). Todo lo demás que se usa
   normalmente está encendido y la iluminación regulable a media intensidad;
   el ruido magnético de fondo se lee con ponderación A en suficientes puntos
   del volumen previsto, a 1,2 m para oyentes sentados y 1,7 m para oyentes de
   pie, y conviene también escucharlo, porque su espectro decide cuánto
   molesta.
2. **Ajustar el nivel** (8.2). Con una sinusoide de 1 kHz, o la señal combi, y el
   medidor de valor eficaz verdadero, los controles del amplificador se ajustan
   para que el campo alcance 400 mA/m; con voz o ruido rosa el objetivo es la
   lectura que declara el fabricante para 400 mA/m (la tabla 3 da −6 dB para
   el ruido rosa en el medidor de valor eficaz). Antes van 10 min de
   calentamiento, y tras cada cambio del nivel de entrada se espera el tiempo
   de liberación del AGC.
3. **Recorrer el campo y la respuesta** (8.3, 8.4). El nivel en los puntos
   elegidos del volumen útil, y la respuesta en frecuencia al menos a 100 Hz,
   1 kHz y 5 kHz, empezando por 5 kHz, donde el metal del edificio se nota
   antes.
4. **El ruido con el sistema encendido** (10.4), con todas las entradas
   silenciadas, con ponderación A en los mismos puntos que el ruido de fondo,
   para poder compararlos punto a punto.
5. **El ensayo de sobrecarga** (10.3) a la frecuencia que da la tabla 4 para
   el programa, y después la puesta en servicio con las fuentes sonoras en su
   sitio y, si es posible, algunos usuarios de audífonos presentes (10.1).

## 6. El lugar y el sistema instalado (IEC 60118-4 7.2, 8.3.7, 8.4.3, 10.4.7)

La diferencia entre la referencia de 0 dB y el ruido de fondo con ponderación A
es la **relación señal-ruido de referencia** de 7.2. Por encima de 47 dB es lo
ideal, para teatros y dondequiera que importe el valor estético de la voz;
32 dB es el mínimo recomendado, y una relación menor «debe comunicarse y
acordarse con el operador del sistema»; hasta 22 dB puede tolerarse por
periodos cortos, cuando el ruido «no tiene calidad tonal indeseable
significativa o está principalmente a bajas frecuencias». Son recomendaciones, y
`assess_background_noise` clasifica el lugar en su punto más ruidoso sin
convertir la clase en un veredicto; `noise_is_tonal=True`, ahí y en
`verify_induction_loop_system`, niega la tolerancia de 22 dB a un ruido con una
calidad tonal indeseable.

Los requisitos del sistema instalado son cuatro. El valor máximo del campo es
**400 mA/m en un punto, al menos,** del volumen útil (8.2.1, 8.2.7), y cada
punto elegido queda a **±3 dB** de ese nivel especificado (8.4.3); la respuesta
en frecuencia queda a **±3 dB de la respuesta a 1 kHz de 100 Hz a 5 kHz** en
cada punto (8.3.7); y el ruido con el sistema encendido queda **por debajo de
−47 dB** donde la relación del lugar supera 47 dB y, si no, **como mucho 1 dB
por encima del nivel con el bucle apagado** en el mismo punto (10.4.7
modificado, que era el 10.2.7). Las dos frases de 10.4.7 dicen «es mayor de
47 dB» y «es menor de 47 dB», así que una relación de 47 dB justos no cae en
ninguna; ahí se aplica la regla de 1 dB, y el hueco está en el registro de
erratas. `verify_induction_loop_system` juzga cada requisito que recibe sobre
todos los valores que cubre y devuelve un único objeto de veredicto.

```python
current = electroacoustics.loop_current(10.0, 20.0, height_m=1.2)   # el lugar de culto típico
x, y = np.meshgrid([-3.5, 0.0, 3.5], [-8.0, -4.0, 0.0, 4.0, 8.0])     # quince asientos
levels = np.stack([
    electroacoustics.rectangular_loop_field(current, 10.0, 20.0, x, y, height).level_db("z")
    for height in (1.2, 1.7)
])
first = electroacoustics.verify_induction_loop_system(levels)
print(first.passes, first.failed)                                     # False ('field_strength',)
print(round(first.requirement("field_strength").worst_margin_db, 2))  # -1.41 dB, +4,41 en las esquinas

levels = levels - 2.0          # 2 dB menos, para que la dispersión quede centrada en 0 dB
off = [-38.5, -36.0, -40.2, -37.1, -35.4]   # bucle apagado, ponderación A, dB ref. 400 mA/m
on = [-38.1, -35.6, -39.9, -36.6, -35.0]    # sistema encendido, entradas silenciadas
verdict = electroacoustics.verify_induction_loop_system(
    levels,
    frequencies_hz=[100.0, 1000.0, 5000.0],
    response_db=[[-0.4, 0.0, -1.8], [-0.3, 0.0, -2.4], [-0.6, 0.0, -3.4]],
    background_noise_levels_db=off,
    system_noise_levels_db=on,
)
site = verdict.background_noise
print(round(site.reference_signal_to_noise_ratio_db, 1), site.category)  # 35.4 acceptable
print(verdict.passes, verdict.failed)                                    # False ('frequency_response',)
for requirement in verdict.requirements:
    print(requirement.name, round(requirement.worst_margin_db, 2))
# field_strength 0.56 / field_strength_reached 2.41
# frequency_response -0.4 / system_noise 0.5
```

El primer veredicto es otra vez la lección de la sección 2: con 400 mA/m
ajustados sobre el centro, los asientos cerca de los conductores van 4,4 dB
altos, y el remedio es ajustar el nivel sobre la dispersión, no sobre un punto.
Con 2 dB menos, el asiento más intenso sigue 2,4 dB por encima de la
referencia, que es lo que pide 8.2.7: el campo máximo alcanza 400 mA/m en algún
punto del volumen. Una dispersión ajustada entera por debajo de la referencia,
todos los asientos entre −3 dB y −0,1 dB, cumpliría la ventana de 8.4.3 y no
cumpliría 8.2.7. El segundo falla en el asiento lejano a 5 kHz, 3,4 dB por debajo: la pérdida
metálica del Anexo F, para la que la norma no da ningún modelo. Su corrección
es la respuesta que el instalador mide y ecualiza, y el ensayo de sobrecarga de
la sección 7 es lo que comprueba que el amplificador puede permitirse la
subida.

*El lugar es aceptable pero no ideal, así que el ruido con el sistema encendido
se juzga con la regla de 1 dB, que cumple por medio decibelio. El campo cumple
su ventana una vez ajustado el nivel sobre la dispersión; la respuesta no, en
un asiento y una frecuencia, y eso basta para que el sistema no cumpla.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python
fig, (ax_site, ax_verdict) = plt.subplots(1, 2, figsize=(13.5, 5.6))
verdict.background_noise.plot(ax_site, language="es")
verdict.plot(ax_verdict, language="es")
plt.show()
```

</details>

### 6.1 Un refugio, un punto de llamada y un mostrador (capítulo 9 modificado)

Un sistema pequeño se juzga en puntos fijos en lugar de sobre un volumen útil.
La Modificación 1 reescribe el capítulo 9: seis puntos para un refugio de
discapacitados o un punto de llamada, sobre la perpendicular y a ±45° a 300 mm
y 500 mm del punto de referencia (figura 2 a), o en dos filas de 424 mm y
700 mm de ancho para una fuente mayor (figura 2 b), a 1,2 m y 1,7 m; tres
puntos para un mostrador, sobre un semicírculo de 300 mm de radio en su fondo y
a 150 mm a cada lado (figura 3), a 1,2 m, 1,45 m y 1,7 m, la altura intermedia
porque una instalación mal diseñada puede tener un nulo ahí. En cada punto el
nivel queda a **±6 dB** de 400 mA/m y cumple 8.3.7, en un punto al menos
alcanza **0 dB**, y en ninguna parte donde se espera que la gente se sitúe,
que la figura 3 pone fuera del semicírculo de puntos, queda **por encima de
+8 dB** (9.5).

```python
points = electroacoustics.small_volume_measurement_points("counter")
print(points.shape, points[0, :, :2].round(3).tolist())
# (3, 3, 3) [[-0.15, 0.26], [0.0, 0.3], [0.15, 0.26]]  x, y en m; z la altura

counter = electroacoustics.verify_small_volume_system(
    [[5.1, 4.2, 5.3], [2.0, 1.1, 2.2], [-2.9, -3.8, -2.7]],   # filas a 1,2 m, 1,45 m y 1,7 m
    layout="counter",
    standing_area_levels_db=[6.5, 7.9, 9.2],   # la zona de pie junto al semicírculo
)
print(counter.passes, counter.failed)                                    # False ('standing_area',)
print(round(counter.requirement("standing_area").worst_margin_db, 2))    # -1.2 dB
```

Las filas de `field_strength_levels_db` siguen las alturas de
`small_volume_measurement_points`, de la más baja a la más alta, así que el
mostrador de arriba es más intenso a 1,2 m y más débil a 1,7 m. El Anexo A.4,
informativo, permite «hasta, pero no mayor que, +12 dB» a 1,45 m en un mostrador
y llama «menos estricto» al requisito del mostrador que al del refugio; 9.5
aplica los mismos límites a los dos a todas las alturas, y 9.5 es lo que se
aplica. La Modificación 1 corrige además la leyenda de la figura 2 a), cuyo
radio exterior la edición de 2014 daba como 200 mm.

Por acuerdo contractual, un volumen de campo magnético útil con puntos de
medición representativos elegidos por el instalador puede sustituir a los
puntos de 9.2 o 9.3 (9.4). En cada punto rigen los mismos límites de 9.5, y
«como mínimo, los requisitos deben cumplirse para al menos una posición en cada
una de las alturas» del apartado al que sustituye: 1,2 m y 1,7 m en un refugio,
1,2 m, 1,45 m y 1,7 m en un mostrador. Las disposiciones
`"refuge_useful_volume"` y `"counter_useful_volume"` reciben la altura de cada
punto y rechazan un conjunto de puntos que deje fuera una de esas alturas.

```python
volume = electroacoustics.verify_small_volume_system(
    [4.6, 3.9, 1.8, 0.7, -2.4, -3.1],
    layout="counter_useful_volume",
    heights_m=[1.2, 1.2, 1.45, 1.45, 1.7, 1.7],
)
print(volume.passes)                  # True
```

*Un bucle de mostrador que cumple su ventana en los nueve puntos y aun así no
cumple, porque un cliente de pie junto al semicírculo, cerca de la cara del
mostrador, lee 9,2 dB. Un bucle vertical en la cara del mostrador produce por construcción un campo intenso cerca de ella, y
de eso tratan el techo de +8 dB y la NOTA 1 de 9.5.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python
fig, (ax_area, ax_verdict) = plt.subplots(1, 2, figsize=(13.5, 5.6))
counter.requirement("standing_area").plot(ax_area, language="es")
counter.plot(ax_verdict, language="es")
plt.show()
```

</details>

## 7. Puesta en servicio y ensayo de sobrecarga (IEC 60118-4 10.2, 10.3 modificados)

La Modificación 1 sustituye el ensayo de sobrecarga a 1,6 kHz por uno ligado al
programa. Con una sinusoide de 1 kHz ajustada **7 dB por debajo** del campo requerido
en un punto, se mide la tensión en el bucle y se sube la frecuencia con la misma
entrada hasta que esa tensión **se duplica** o se alcanza la frecuencia de la
**tabla 4**, la que sea más alta (10.3.2), y no debe aparecer recorte a la
frecuencia de la tabla 4 y a ese nivel (10.3.3):

| Programa | Límite superior del ancho de banda de potencia máxima | Frecuencia de ensayo |
| :--- | ---: | ---: |
| Voz de uso transitorio, por ejemplo sistemas de volumen pequeño | 1,25 kHz | 2,5 kHz |
| Voz (por defecto) | 1,6 kHz | 3,15 kHz |
| Música | 2,0 kHz | 4,0 kHz |

La frecuencia de ensayo es cerca del doble del límite superior porque una sinusoide
en el propio límite sacaría de la fuente de alimentación una corriente
irrealmente alta; el nivel reducido al doble de frecuencia la carga como lo
hace el programa real (10.3.1). De las tres maneras que da la modificación de
detectar el recorte, la segunda compara la tensión del bucle con la **tensión
de cumplimiento** del amplificador según IEC 62489-1 («voltaje de
cumplimiento» en la UNE), y esa se puede calcular con la impedancia del bucle y
la corriente que el amplificador le entrega. El veredicto se toma a la
frecuencia de la tabla 4, donde 10.3.3 pone el requisito; cuando la tensión se
duplica solo por encima de esa frecuencia, el barrido sigue hasta la
duplicación, y el resto se dibuja y su tensión más alta se guarda en
`max_voltage_v`, pero no se juzga. Aquí el amplificador sube su corriente por
encima de 1 kHz para compensar la pérdida metálica de la sección 6:

```python
lift = electroacoustics.amplifier_frequency_response(
    [100.0, 1000.0, 2000.0, 3150.0, 4000.0, 5000.0, 8000.0],
    [2.0, 2.0, 2.4, 2.9, 3.2, 3.5, 3.6],       # corriente de salida, A
)
print(lift.response_db.round(2))                # [0.   0.   1.58 3.23 4.08 4.86 5.11] dB ref. 1 kHz
speech = electroacoustics.verify_amplifier_overload(current, z, 11.0, current_response=lift)
print(round(speech.test_current_a, 2), round(speech.doubling_frequency_hz))  # 2.65 A 2091 Hz
print(round(speech.end_frequency_hz), round(speech.test_frequency_voltage_v, 2), speech.passes)  # 3150 8.71 True
music = electroacoustics.verify_amplifier_overload(
    current, z, 11.0, programme="music", current_response=lift
)
print(round(music.test_frequency_voltage_v, 2), round(music.headroom_db, 2), music.passes)  # 11.99 -0.75 False
```

La tensión se duplica a 2,1 kHz, por debajo de la frecuencia de la tabla 4 en
los dos casos, así que el barrido sigue hasta 3,15 kHz para la voz y hasta
4 kHz para la música. El amplificador que sirve a la voz con 2 dB de margen
recorta con la música: a 4 kHz el bucle pide 12 V y el amplificador tiene
11 V. Ese es el precio de la ecualización de la sección 6, y por eso la
corrección de la pérdida metálica se decide junto con el amplificador y no
después.

*El bucle como carga y el barrido de sobrecarga para música. La subida de la
impedancia por encima del corte y la subida de la corriente se multiplican, y
el cruce con la tensión de cumplimiento cae justo dentro del barrido.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python
fig, (ax_z, ax_sweep) = plt.subplots(1, 2, figsize=(13.5, 5.6))
z.plot(ax_z, language="es")
music.plot(ax_sweep, language="es")
plt.show()
```

</details>

## 8. El amplificador (IEC 62489-1 capítulo 5)

IEC 62489-1 enumera lo que declara la especificación de un amplificador. Las
condiciones asignadas (5.4.1 a 5.4.6) se declaran, no se miden; las condiciones
normales de medida ponen la corriente de salida 10 dB por debajo de la asignada
(5.2.2). Las características medidas que son cálculos son estas:

- **Corriente de salida máxima (limitada por la distorsión)** (5.4.7): desde
  las condiciones normales de medida se sube la corriente de 1 kHz en la carga
  hasta que la distorsión armónica total en la parte resistiva de la carga
  alcanza el valor asignado, y la corriente es la tensión total en esa
  resistencia dividida por su valor. Tiene que poder entregarse durante al
  menos 10 s, una condición de la medida y no un cálculo.
- **Tensión de cumplimiento** (5.4.8): las tensiones de pico máximas positiva y
  negativa en la carga asignada, durante al menos 60 s del ruido rosa
  especificado con el AGC en pleno funcionamiento, promediadas y divididas por
  $\sqrt{2}$: la tensión eficaz de la sinusoide con los mismos picos.
- **Ruido** (5.4.9): la tensión de ruido equivalente a la entrada
  $U_\mathrm{n} = U I_\mathrm{n} / I$, la entrada de 1 kHz que da la misma
  corriente que el ruido, o la relación señal-ruido
  $S = 10\lg(I_\mathrm{r}^2 / I_\mathrm{n}^2)$ dB.
- **Respuesta en frecuencia** (5.4.12): la corriente en la carga en las
  frecuencias centrales de tercio de octava de al menos 50 Hz a 8 kHz, 0 dB a
  1 kHz.
- **Control automático de ganancia** (5.4.13): la corriente de salida en
  régimen permanente frente a la f.e.m. de la fuente; la Modificación 1 añade
  la recomendación de un rango de entrada de al menos **32 dB para un cambio de
  salida de 3 dB como máximo** (5.4.13.4).
- **Error de fase en cuadratura** (5.4.14): dos bucles contiguos alimentados
  a unos 90° producen un campo giratorio en lugar de nulos; la característica
  es la desviación máxima respecto a 90° de 100 Hz a 5 kHz.

```python
steps = electroacoustics.maximum_output_current(
    [2.0, 3.0, 4.0, 4.5, 5.0],            # V en los 0,69 ohmios de la carga asignada
    [0.05, 0.08, 0.3, 1.2, 4.0],          # THD ahí, %
    load_resistance_ohm=0.69,
    rated_thd_percent=1.0,
)
print(round(steps.maximum_current_a, 2))  # 6.36 A donde la THD llega al 1 %

load = np.clip(4.5 * electroacoustics.loop_test_noise(fs, 60.0, seed=3), -14.0, 14.0)
print(round(electroacoustics.compliance_voltage(load), 2))    # 9.9 V: recorte a ±14 V
print(round(electroacoustics.equivalent_input_noise_voltage(0.1, 1.6, 0.00032) * 1e6, 1))  # 20.0 µV
print(round(electroacoustics.amplifier_signal_to_noise_ratio(5.0, 0.00032), 1))            # 83.9 dB

emf = np.arange(-60.0, 1.0, 5.0)                                   # f.e.m. de la fuente, dB
output = np.where(emf < -40.0, emf + 30.0, -10.0 + 2.5 * (emf + 40.0) / 40.0)
agc = electroacoustics.agc_characteristic(emf, output)
print(round(agc.agc_range_db, 1), agc.recommended_range_db)        # 40.5 32.0 dB

f = np.array([100.0, 125, 160, 200, 250, 315, 400, 500, 630, 800, 1000]
             + [1250, 1600, 2000, 2500, 3150, 4000, 5000])
phase = 90.0 - 4.0 * np.log2(f / 700.0) ** 2 / 3.0                 # grados entre las corrientes
quadrature = electroacoustics.quadrature_phase_error(f, phase)
print(round(quadrature.max_deviation_deg, 2), quadrature.max_deviation_frequency_hz)  # 10.73 5000.0
print(round(quadrature.level_increase_db, 2), round(quadrature.level_decrease_db, 2))  # 1.48 -1.79 dB
```

Una desviación $\delta$ respecto a 90° deja una componente en fase $\sin\delta$
de un campo frente al otro, que sube el nivel $20\lg(1 + \sin\delta)$ donde los
dos se suman y lo baja $20\lg(1 - \sin\delta)$ donde se restan. 5.4.14.1 pone
el ejemplo de 85°, una parte en fase de 0,087, e imprime el cambio como
«aumentado o disminuido en 0,72 dB»; la subida es 0,72 dB y la caída 0,79 dB.

*El AGC del amplificador mantiene su salida en 3 dB sobre 40,5 dB de entrada,
8,5 dB más de lo que recomienda 5.4.13.4; la red en cuadratura queda a menos de
11° de la cuadratura en la banda de la voz, una subida de 1,5 dB y una caída de
1,8 dB donde se encuentran los campos de los dos bucles.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python
fig, (ax_agc, ax_phase) = plt.subplots(1, 2, figsize=(13.5, 5.6))
agc.plot(ax_agc, language="es")
quadrature.plot(ax_phase, language="es")
plt.show()
```

</details>

## 9. El bucle de cuello (IEC 62489-1 capítulo 9 y el borrador de la Modificación 2)

Un bucle de cuello es un bucle pequeño, a menudo de unos 230 mm, que se lleva
alrededor del cuello y se alimenta desde un teléfono, un reproductor de música
o un equipo mayor. El capítulo 9, añadido por la Modificación 1, lo especifica
sobre el maniquí no metálico del Anexo E, con el campo medido en la posición de
la telebobina por un inductor pequeño de unos 3 mm por 10 mm, el tamaño de una
telebobina retroauricular: la tensión de entrada que produce 400 mA/m a 1 kHz
(9.1), el menor módulo de la impedancia de entrada de 100 Hz a 5 kHz redondeado
al ohmio (9.2.1), y la respuesta en frecuencia, declarada en texto como las
frecuencias donde difiere 3 dB de la de 1 kHz (9.3.3). Un bucle pasivo es
lineal, así que la tensión para 400 mA/m se deduce de un nivel medido con
cualquier tensión.

El borrador de la Modificación 2 (prEN 62489-1:2010/prA2:2017, un borrador en
consulta y citado como tal) sustituye el Anexo D por dos especificaciones de
ejemplo: el **tipo 1**, «Suitable for audio sources powered by two primary
1,5 V cells and higher voltage supplies», para fuentes de audio alimentadas por
dos pilas primarias de 1,5 V o por tensiones mayores, con una resistencia en
continua de 32 Ω ±5 %, y el **tipo 2**, «Neck loops with transformer or
amplifier», con una resistencia de entrada en continua de al menos 32 Ω; los
dos alcanzan 400 mA/m en el maniquí con **1,06 V como máximo** en la entrada.

```python
f = np.array([100.0, 200, 500, 1000, 2000, 5000, 8000, 10000])
z_in = np.abs(32.2 + 2j * np.pi * f * 0.53e-3)     # 32,2 ohmios y 0,53 mH, unas 25 espiras
level = -6.0 + 20 * np.log10(z_in[3] / z_in)       # -6 dB a 1 kHz con 0,5 V aplicados
neck = electroacoustics.neck_loop_characteristics(f, level, z_in, input_voltage_v=0.5)
print(round(neck.reference_input_voltage_v, 3), neck.minimum_impedance_ohm)  # 0.998 V 32.0 ohmios
print([round(v) for v in neck.frequencies_3db_hz])                           # [9723] Hz
draft = electroacoustics.verify_neck_loop(32.4, neck.reference_input_voltage_v, neck_loop_type=1)
print(draft.passes, draft.resistance_passes, draft.voltage_passes)           # True True True
```

La tabla D.1 del borrador, el campo que alcanza un bucle tipo 1 con una pila de
3 V y otra de 9 V, descansa en un modelo de la fuente que no da, y no se
reproduce.

*La inductancia del bucle, no su campo, fija la respuesta de un bucle de cuello
excitado por tensión: 0,53 mH frente a 32 Ω ponen el corte cerca de 9,7 kHz,
muy por encima de los 5 kHz de los requisitos del sistema.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python
fig, (ax_response, ax_verdict) = plt.subplots(1, 2, figsize=(13.5, 5.6))
neck.plot(ax_response, language="es")
draft.plot(ax_verdict, language="es")
plt.show()
```

</details>

## Qué cubre esta guía

IEC 60118-4:2014 con su Modificación 1:2017: la referencia de 400 mA/m y sus
niveles (3.1, 4.3), la densidad de flujo y la ley del coseno de la telebobina
(E.6, E.2), el medidor de valor eficaz verdadero plano o con ponderación A
(6.1.3), el ruido rosa limitado en banda con su factor de cresta (6.4) y la
señal combi (6.6, tabla 2), las clases de ruido de fondo de 7.2, el veredicto
sobre un sistema en su volumen de campo magnético útil (8.2.7, 8.3.7, 8.4.3,
10.4.7), los puntos de medición y el veredicto de un refugio, un punto de
llamada o un mostrador tal como la modificación escribe el capítulo 9, en los
puntos de las figuras 2 y 3 o en los de un volumen útil que cubra sus alturas
(9.4, 9.5), y el ensayo de sobrecarga de 10.3 con la tabla 4, juzgado sobre la
tensión de cumplimiento a la frecuencia de la tabla 4 (10.3.3). El campo del
bucle por Biot-Savart en cualquier punto, que reproduce la fórmula del centro
de E.1 y las curvas de la figura E.2 b), y la corriente y el tamaño de bucle de
IEC 62489-1 5.4.10 y 5.4.11, que reproducen las corrientes de la figura H.1. El
bucle como carga (IEC 62489-1 Anexo B): la resistencia con la resistividad de
IEC 60028 y la inductancia por la fórmula (58) de Grover, que reproducen la
tabla B.1 como se muestra. La corriente de salida máxima, la tensión de
cumplimiento, el ruido, la respuesta en frecuencia, el rango del AGC y el error
de fase en cuadratura del amplificador (5.4.7, 5.4.8, 5.4.9, 5.4.12, 5.4.13,
5.4.14), y las características del bucle de cuello (capítulo 9) con los dos
tipos del borrador de la Modificación 2, citado como borrador.

El efecto del metal del edificio (Anexo F) no tiene modelo en la norma ni aquí:
es la respuesta en frecuencia que mide el instalador. El medidor de pico de
6.1.4, las señales de voz de 6.3 (ISTS, ITU-T P.50) y la puesta en servicio
subjetiva de 10.1 no son cálculos. El receptor de bucle y el dispositivo de
ayuda auditiva del Anexo F de IEC 62489-1, y los dispositivos de monitorización,
se especifican con valores únicos que hay que cumplir; la tabla D.1 del
borrador descansa en un modelo de la fuente que no da. Las inductancias del
bucle de cuello y del bucle grande de la tabla B.1 no las reproduce ninguna
fórmula probada. Los perfiles de campo de las figuras E.3 a E.5 y A.1 son de la
clase que calcula `rectangular_loop_field` y no se comprueban punto por punto.
Los 10 s durante los que 5.4.7 pide mantener la corriente máxima son una
condición de la medida. La exposición electromagnética de IEC 62489-2 queda
fuera de esta biblioteca.

## Véase también

- [Electroacústica](/phonometry/es/devices/electroacoustics/electroacoustics/):
  las mediciones de distorsión de IEC 60268-3 y los estimadores de respuesta
  en frecuencia H1/H2 detrás de la respuesta medida de un amplificador.
- [Caracterización de micrófonos (IEC 60268-4)](/phonometry/es/devices/electroacoustics/microphones/):
  el micrófono que alimenta al amplificador del bucle, y por qué se elige
  direccional.
- [Índice de transmisión del habla (STI)](/phonometry/es/perception/speech/speech-transmission/):
  la sala que el bucle salta, medida como un índice de transmisión.
- [Ponderación frecuencial (A, C, Z)](/phonometry/es/signals/levels/weighting/):
  la ponderación A de IEC 61672-1 que usan las mediciones de ruido del
  capítulo 7 y de 10.4.
- Referencia de la API: [`electroacoustics.induction_loop`](/phonometry/es/reference/api/electroacoustics/induction-loop/)
  y [`electroacoustics.induction_loop_components`](/phonometry/es/reference/api/electroacoustics/induction-loop-components/).
