Verificación de clase de filtros (IEC 61260-1)
Normas aplicables: IEC 61260ANSI S1.11
Un banco de filtros solo se convierte en instrumento de medida cuando sus bandas se han demostrado frente a una especificación. IEC 61260-1:2014 escribe esa especificación como una máscara de aceptación: un corredor de atenuación relativa alrededor de cada frecuencia central, estrecho en la banda de paso y convertido en una exigencia de atenuación mínima lejos de la banda, con un corredor por cada clase de prestaciones. Un banco «es clase 1» cuando todas sus bandas se mantienen dentro del corredor de clase 1 en todas las frecuencias normalizadas, y el margen en decibelios dice por cuánto.
Esta página es la mitad de verificación del tema del filtrado en octavas: la máscara de 2014 y el veredicto por banda, la clase 0 más estricta que mantienen vivas las máscaras retiradas de IEC 61260:1995 y ANSI S1.11-2004, una lectura de lo que aporta de verdad una clase en una medición (error en la banda de paso, fuga en la banda atenuada, balance de incertidumbre) y la ficha acreditada de una página que convierte el veredicto en documento. La mitad de diseño, las matemáticas de banda y la referencia de parámetros, es Bancos de filtros, y las cinco arquitecturas con sus respuestas comparadas son la Galería de arquitecturas de filtro; la misma maquinaria aplicada a las ponderaciones frecuenciales es la sección 6 de Ponderación frecuencial.
1. Verificar la clase frente a IEC 61260-1:2014
Sección titulada «1. Verificar la clase frente a IEC 61260-1:2014»verify_filter_class comprueba cada banda de un banco contra los límites de
aceptación de IEC 61260-1:2014 (Tabla 1, con el mapeo de los puntos de
quiebre a cada fracción de octava y la interpolación logarítmica de la norma)
e informa de la clase por banda con su margen en dB:
from phonometry import filters
bank = filters.OctaveFilterBank(fs=48000, fraction=3, order=6)result = filters.verify_filter_class(bank)print(result["overall_class"]) # 1print(result["range_limited"]) # True en un banco diezmadoprint(result["bands"][0])# {'freq': 12.589254117941678, 'class': 1, 'checked_to_omega': 3.8127755266765493, 'margin_class1_db': 0.3999999999999595, 'margin_class2_db': 0.5999999999999595}Hasta dónde de la máscara llega realmente el veredicto.
checked_to_omega es la frecuencia normalizada más alta a la
que se evaluó esa banda, y en un banco multitasa es el propio Nyquist diezmado
de la banda, no el final de la máscara de la Tabla 1. En el banco de arriba va
de 3,81 a 1,20, así que el requisito de banda atenuada lejana — al menos 70 dB
para la clase 1 más allá de aproximadamente — no queda demostrado
sobre el filtro de banda en absoluto. Se da por satisfecho gracias al paso
bajo antialiasing que precede al diezmado, que eliminó esa energía antes de que
la banda llegara a verla. range_limited es el indicador de que se ha usado
ese argumento, y aquí vale True.
Conviene decirlo tal cual en un informe: el veredicto acredita la máscara hasta
checked_to_omega, y el resto es un argumento sobre la cadena de diezmado.
Cuando un documento exija la máscara completa sobre el propio filtro de banda,
diseña el mismo banco con design=filters.FilterDesign(resample=False): sus
bandas graves se evalúan entonces hasta del orden de en vez de
4. range_limited sigue valiendo True incluso así, porque el borde superior
de la banda más alta sigue acercándose a Nyquist; esa banda es la que el
indicador está advirtiendo una vez que el diezmado queda fuera de la escena.
Qué mide el margen. Es el mínimo, sobre todas las frecuencias normalizadas
en las que se evaluó la banda, de la distancia al límite más próximo de esa
clase: positivo cuando la respuesta se queda dentro del corredor en todas
partes, y negativo por exactamente la peor violación cuando no. La class que
se informa es la clase más estricta cuyo margen no es negativo.
Conviene saber qué restricción manda antes de intentar mejorar el número. Un
Butterworth de planitud máxima es plano en el centro de banda, donde el corredor
de clase 1 es de ±0,4 dB, así que su margen satura en +0,400 dB en cuanto la
banda atenuada deja de ser el factor limitante: medido sobre un banco de tercios
de octava a 48 kHz, el orden 2 falla de plano (clase None, peor margen de
clase 1 de −27,03 dB) y los órdenes 4, 6, 8 y 10 informan todos clase 1 con
exactamente +0,400 dB. Subir el orden ayuda, por tanto, solo mientras el margen
es negativo por un motivo de banda atenuada; una vez que un diseño cumple, el
margen queda acotado por la semianchura del corredor de banda de paso y ningún
orden lo moverá. Un margen de +0,400 dB no es un resultado mediocre que haya que
mejorar: es lo mejor que puede informar un diseño conforme frente a esta
máscara.
La propia máscara de aceptación de la Tabla 1 también es pública:
class_limits(fraction, filter_class, omega) devuelve los límites
mínimo/máximo de atenuación relativa en frecuencias normalizadas
,
los mismos límites que usan el verificador y la figura de abajo.
La respuesta del Butterworth de orden 6 (azul) serpentea entre las regiones prohibidas: debe atenuar al menos la máscara roja fuera de la banda y no más que la morada dentro de ella.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom scipy.signal import sosfreqzfrom phonometry import filters
fs = 48000bank = filters.OctaveFilterBank(fs, fraction=1, order=6, limits=[800, 1200])idx = int(np.argmin(np.abs(np.array(bank.freq) - 1000)))fm, fsd = bank.freq[idx], fs / bank.factor[idx]w, h = sosfreqz(bank.sos[idx], worN=2**15, fs=fsd)att = -20 * np.log10(np.abs(h) + 1e-12)delta_a = att - np.interp(fm, w, att) # atenuación relativa
grid = np.logspace(np.log10(0.05), np.log10(8), 2000)lo1, hi1 = filters.class_limits(1.0, 1, grid) # atenuación mín/máx de clase 1
fig, ax = plt.subplots(figsize=(9, 5.5))ax.fill_between(grid, -10, lo1, alpha=0.15, color="tab:red", label="Prohibido: atenuación insuficiente")finite = np.isfinite(hi1)ax.fill_between(grid[finite], hi1[finite], 90, alpha=0.15, color="tab:purple", label="Prohibido: atenuación excesiva")ax.plot(w / fm, delta_a, label="Butterworth de orden 6")ax.set(xscale="log", xlim=(0.08, 8), ylim=(-6, 90), xlabel="Frecuencia normalizada f / fm", ylabel="Atenuación relativa [dB]")ax.legend()plt.show()Con parámetros por defecto (orden 6), Butterworth cumple clase 1, y también
lo hace Chebyshev II: su valor por defecto de attenuation es ahora 72 dB,
superando el límite de clase 1 de 70 dB en la banda atenuada lejana (scipy fija
el suelo de rizado constante de cheby2 en exactamente attenuation, así que
cualquier valor cumple; el valor por defecto de 72 dB
mantiene el mismo margen de banda de paso de +0,400 dB que Butterworth).
Chebyshev I, elíptico y Bessel no cumplen
los límites de clase con orden 6: el rizado de banda de paso (cheby1/ellip) y la
caída lenta (bessel) violan la máscara. La clase 1 es el veredicto más estricto
que puede devolver esta edición; la clase 0, más estricta todavía, que el banco
por defecto también supera, pertenece a la máscara retirada de 1995 y es el
apartado 2.
2. Clase 0 (IEC 61260:1995 / ANSI S1.11-2004)
Sección titulada «2. Clase 0 (IEC 61260:1995 / ANSI S1.11-2004)»La clase de prestaciones más estricta, la clase 0, la definió la edición
anterior IEC 61260:1995 y su gemela estadounidense ANSI S1.11-2004
(ambas retiradas/sustituidas pero aún referenciadas para instrumentos de
laboratorio); IEC 61260-1:2014 la eliminó. Sus máscaras de clase 1/2 difieren
ligeramente de la edición de 2014, así que se selecciona con un conmutador edition en
lugar de mezclarse con la máscara de 2014:
from phonometry import filters
fs = 48000bank = filters.OctaveFilterBank(fs, fraction=1, order=6, limits=[800, 1200])
result = filters.verify_filter_class(bank, edition="1995") # clases 0, 1, 2print(result["overall_class"]) # 0 (el Butterworth por defecto la supera)print(result["bands"][0]["margin_class0_db"])El corredor de clase 0 (±0,15 dB en el centro de banda) es el más estrecho; la clase 1 (±0,3 dB) y la clase 2 (±0,5 dB) son progresivamente más anchas. El Butterworth de orden 6 serpentea dentro de la clase 0 en toda la banda de paso.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom scipy.signal import sosfreqzfrom phonometry import filters
fs = 48000bank = filters.OctaveFilterBank(fs, fraction=1, order=6, limits=[800, 1200])idx = int(np.argmin(np.abs(np.array(bank.freq) - 1000)))fm, fsd = bank.freq[idx], fs / bank.factor[idx]w, h = sosfreqz(bank.sos[idx], worN=2**15, fs=fsd)att = -20 * np.log10(np.abs(h) + 1e-12)delta_a = att - np.interp(fm, w, att)
# Solo banda de paso: fuera de los bordes el límite máximo es +inf.g = 10 ** (3 / 10)grid = np.linspace(g ** -0.5, g ** 0.5, 1500)pb = (w / fm >= g ** -0.5) & (w / fm <= g ** 0.5)
fig, ax = plt.subplots(figsize=(9, 5.5))for cls in (2, 1, 0): # corredores anidados, clase 0 el más estrecho lo, hi = filters.class_limits(1.0, cls, grid, edition="1995") ax.plot(grid, hi, label=f"Corredor de clase {cls}") ax.plot(grid, lo, color=ax.lines[-1].get_color())ax.plot(w[pb] / fm, delta_a[pb], "k", lw=2, label="Butterworth de orden 6")ax.set(xscale="log", xlim=(g ** -0.5, g ** 0.5), ylim=(-0.7, 6), xlabel="Frecuencia normalizada f / fm", ylabel="Atenuación relativa [dB]")ax.legend()plt.show()3. Qué significa físicamente una clase
Sección titulada «3. Qué significa físicamente una clase»Las máscaras son cotas de error en el peor caso de una medición, no valoraciones abstractas:
-
En la banda de paso el corredor acota cuánto puede desviarse la lectura del contenido dentro de banda: un banco de clase 1 lee un tono de centro de banda a ±0,4 dB de su nivel verdadero y uno de clase 2 a ±0,6 dB (Tabla 1 de IEC 61260-1:2014; las máscaras de la Tabla 1 de IEC 61260:1995, más estrictas, permitían ±0,3 dB para la clase 1, ±0,5 dB para la clase 2 y ±0,15 dB para la clase 0). Hacia los bordes el corredor se ensancha, lo que es la admisión honesta de que un tono situado exactamente en un borde es genuinamente ambiguo entre dos bandas (ambas lo leen unos 3 dB por debajo).
-
En la banda atenuada la máscara de atenuación mínima acota la fuga del resto del espectro: lejos de la banda, la clase 1 exige al menos 70 dB de atenuación relativa (la razón por la que el valor por defecto de
cheby2es 72 dB). En términos de energía, un tono fuera de banda tiene que ser unos 70 dB más fuerte que el contenido propio de la banda para duplicar su lectura de energía (+3 dB). La consecuencia práctica: al medir bandas muy por debajo de un tono dominante, la lectura toca fondo en la falda de fuga unos 70 dB por debajo, y una arquitectura más abrupta (o mayor orden) es la única forma de empujar ese suelo más abajo.Cómo se ve la última frase convertida en medida. Toda banda cuyo nivel se apoya en la falda está informando del rechazo del filtro al tono de 1 kHz, no del sonido presente en esa banda: la línea de puntos es lo que hay realmente. La comprobación no tiene ningún misterio en cuanto la buscas: sube el orden y las bandas que están midiendo el filtro se mueven, mientras que las bandas que están midiendo el sonido no.
-
Para el balance de incertidumbre, la clase es la contribución del filtro a la incertidumbre de la medición: un banco de clase 1 añade hasta unas décimas de dB a un nivel de banda, comparable a los demás términos de tolerancia de un sonómetro de clase 1, y por eso las cadenas con calidad de instrumento especifican la clase de cada etapa en lugar de una única cifra global.
¿Qué arquitectura alcanza qué clase? Bajo la edición de 2014, cuyas únicas
clases son la 1 y la 2, el banco Butterworth de orden 6 por defecto de la
biblioteca cumple la clase 1 con un margen vinculante de +0,400 dB: ese es
el techo, y el apartado 1 explica por qué. Frente a la máscara más estricta de
1995 / ANSI S1.11-2004 (edition="1995") ese mismo valor por defecto alcanza la
clase 0; la configuración que verifica la batería de conformidad a esa
clase es el banco de bandas de octava a 48 kHz, así que vuelve a ejecutar
verify_filter_class(bank, edition="1995") por tu cuenta antes de escribir
clase 0 en un documento para cualquier otra fracción o frecuencia de muestreo.
Escribir «clase 0 según IEC 61260-1:2014» es una afirmación contra una clase que
esa edición no define.
La tabla indica la mejor clase que alcanza cada arquitectura con orden 6 y fs 48 kHz bajo la máscara de 1995; las arquitecturas distintas de Butterworth se quedan por debajo porque cambian la máscara IEC por otra propiedad por construcción:
| Arquitectura | Mejor clase (orden 6, fs 48 kHz, edition="1995") | Por qué |
|---|---|---|
butter (por defecto) | 0 | Banda de paso máximamente plana, caída monótona; encaja en la máscara |
cheby2 | 1 | Banda de paso plana pero la relación de la máscara limita en clase 1 |
cheby1 | — | El rizado de banda de paso viola el límite de planitud |
ellip | — | Rizado en banda de paso y atenuada |
bessel | — | Retardo de grupo plano a costa de una caída lenta |
Bajo la edición de 2014 esa misma ordenación se lee 1 / 1 / — / — / —:
cheby2 se junta con Butterworth en lo más alto porque ya no existe la clase 0
para separarlos.
Los veredictos de la tabla, dibujados. Chebyshev I y el elíptico asoman por
encima del límite justo por dentro de los bordes de banda, donde vive su rizado;
Bessel se sale a lo largo de la falda, porque nunca cae lo bastante rápido. Las
muestras en rojo son las que verify_filter_class anotó en contra del diseño, y
esto es exactamente lo que dibuja filter_class_compliance(bank).plot() para un
banco tuyo. Ojo a un detalle: la gráfica sombrea el corredor de la clase a la
que más se acercó cada diseño, así que los tres paneles que fallan muestran el
corredor de clase 2.
Mostrar el código de esta figura
import matplotlib.pyplot as plt
# `filters` es el import de los fragmentos anteriores.fs = 48000fig, axes = plt.subplots(2, 2, figsize=(12, 8))for ax, ftype in zip(axes.ravel(), ("butter", "cheby1", "ellip", "bessel")): bank = filters.OctaveFilterBank( fs, fraction=1, order=6, limits=[800, 1200], design=filters.FilterDesign(filter_type=ftype)) result = filters.filter_class_compliance(bank) result.plot(ax=ax, language="es") ax.set_title(f"{ftype}: overall_class = {result.overall_class}")plt.tight_layout()plt.show()Así que el valor por defecto sensato es el habitual (Butterworth de orden 6),
mientras que las arquitecturas alternativas son opciones deliberadas cuyo
propósito (caída más abrupta, fase lineal) va en contra de la máscara de clase.
Fuera de estos ajustes (fraction muy alto o bandas cercanas a Nyquist), vuelve
a ejecutar verify_filter_class para confirmar la clase que necesitas.
3b. Verificar un instrumento, no un diseño
Sección titulada «3b. Verificar un instrumento, no un diseño»verify_filter_class responde a una pregunta sobre un diseño: si esta función
de transferencia cabe en la máscara. Un laboratorio responde a otra pregunta
distinta, sobre un equipo en una fecha, y los dos veredictos no son
intercambiables.
El recorrido completo de la Tabla 1 pertenece al ensayo de tipo (IEC 61260-2:2016), que un modelo de juego de filtros supera una sola vez. Lo que recibe de verdad un instrumento en servicio es el ensayo periódico de IEC 61260-3:2016, y es más estrecho a propósito: se mide la atenuación relativa en la frecuencia central exacta de cada filtro del juego, por la entrada eléctrica y en el rango de nivel de referencia, junto con la desviación del ancho de banda efectivo obtenida en un ensayo con barrido de frecuencia, el rango lineal de funcionamiento con su control de rango de nivel y su comportamiento ante sobrecarga, y el límite inferior de ese rango, todo bajo condiciones ambientales declaradas y con equipos de ensayo trazables. Por eso un certificado lleva una fecha, una temperatura y una lista de números de serie, y por eso no dice nada de las partes de la máscara que no recorrió.
Lo que sí se hereda merece constar en un informe: el veredicto de clase de esta página lo heredan todas las medidas hechas con los filtros de la biblioteca, y una cadena de hardware añade un veredicto propio. Nombra los dos. El régimen equivalente para los sonómetros — los ensayos periódicos de IEC 61672-3, y la IEC 60942 para el calibrador — está en Calibración y dBFS.
4. La ficha de conformidad (.report())
Sección titulada «4. La ficha de conformidad (.report())»filter_class_compliance(bank) envuelve la misma verificación en un objeto de
resultado que expone .plot() y .report(), de modo que el veredicto del
ensayo de tipo puede renderizarse como una ficha acreditada de una página. La
ficha lista la clase alcanzada por cada banda y su margen vinculante, superpone
la atenuación relativa medida de la banda de peor margen sobre el corredor de la
clase y encuadra el resultado global de conformidad. Pasa un required_class en
el ReportMetadata para añadir una fila de veredicto CUMPLE/NO CUMPLE (un banco
«cumple la clase N» cuando su clase alcanzada es al menos igual de estricta, es
decir, un índice de clase N o inferior). La ficha se genera en inglés por
defecto; pasa language="es" para una ficha en español (cadenas fijas
traducidas y coma como separador decimal), p. ej.
result.report("iec61260_es.pdf", language="es").
from phonometry import ( OctaveFilterBank, ReportMetadata, filter_class_compliance,)
bank = OctaveFilterBank(fs=48000, fraction=1, order=6, limits=[125, 4000])result = filter_class_compliance(bank) # overall_class == 1result.plot(language="es") # la banda de peor margen sobre su corredor de clase
result.report( "iec61260.pdf", metadata=ReportMetadata( specimen="Banco de filtros de octava (1/1)", measurement_standard="IEC 61260-1:2014", required_class=1, # se exige clase 1 (o más estricta) ),) # -> Class 1 - COMPLIES, PASSLa ficha de ejemplo se regenera con make reports y se mantiene renderizada en
el repositorio; pulsa la vista previa para abrir el PDF.

Ficha de conformidad de clase de filtro de una página: una cabecera de metadatos, una tabla de clasificación por bandas con la clase alcanzada y el margen vinculante de cada banda de octava, la atenuación relativa medida de la banda de peor margen superpuesta sobre el corredor de aceptación verde de clase 1, el resultado encuadrado Class 1 - COMPLIES (margin +0.40 dB) y un veredicto CUMPLE frente a la clase 1 exigida.
Pasar edition="1995" verifica contra la máscara más antigua de IEC 61260:1995 /
ANSI S1.11-2004, que conserva la clase 0 más estricta que la edición de 2014
eliminó, de modo que un banco de orden 6 puede certificarse a clase 0:
bank = OctaveFilterBank(fs=48000, fraction=1, order=6, limits=[250, 4000])result = filter_class_compliance(bank, edition="1995") # overall_class == 0result.plot(language="es") # el corredor de clase 0 de la edición de 1995result.report("iec61260_1995.pdf", metadata=ReportMetadata(measurement_standard="IEC 61260:1995", required_class=0)) # -> Class 0 - COMPLIES
Ficha de conformidad de clase de filtro de una página bajo la edición de 1995: una tabla de clasificación por bandas con cada banda de octava alcanzando la clase 0, la atenuación relativa medida superpuesta sobre el corredor de aceptación verde de clase 0, el resultado encuadrado Class 0 - COMPLIES (margin +0.15 dB) y un veredicto CUMPLE frente a la clase 0 exigida.
Qué cubre esta guía
Sección titulada «Qué cubre esta guía»Cubierto
Los límites de aceptación de clase 1 y clase 2 de la Tabla 1 de IEC 61260-1:2014 (con el mapeo de los puntos de quiebre a cada fracción de octava y la interpolación logarítmica de la norma), comprobados banda a banda por
verify_filter_classy publicados como máscara porclass_limits; la máscara de clase 0 de la edición retirada IEC 61260:1995 / ANSI S1.11-2004, accesible conedition="1995"; y la ficha acreditada de una página defilter_class_compliance().report(), con su veredicto opcional CUMPLE/NO CUMPLE frente arequired_class, en inglés y en español.No cubierto
Los ensayos de conformidad de IEC 61260-1 sobre el filtro físico (recuperación de sobrecarga, linealidad del filtro, influencias ambientales) se aplican a filtros analógicos y digitales de hardware y no están implementados:
verify_filter_classcomprueba la respuesta digital diseñada frente a la Tabla 1, no un instrumento. Esos ensayos pertenecen a la IEC 61260-2:2016 (ensayo de tipo) y a la IEC 61260-3:2016 (ensayos periódicos), que el apartado 3b resume y que esta página no ejecuta. Cerca de Nyquist la transformada bilineal deforma el eje de frecuencia y el banco no lo corrige, así que la máscara de banda atenuada más allá del Nyquist de procesado se informa comorange_limiteden lugar de verificarse: mantén el borde de banda superior holgadamente por debajo de Nyquist o subefs.
Véase también
Sección titulada «Véase también»- Bancos de filtros: las matemáticas de banda y las arquitecturas cuya clase se verifica aquí.
- Ponderación frecuencial: la verificación complementaria de las curvas A, C y Z frente a las tablas de tolerancia de IEC 61672-1, con las curvas G, B, D y AU tratadas en Ponderaciones especiales.
- Sonómetro: la cadena de instrumento a cuya etapa de espectro se aplica esta clase.
- Informe de conformidad: las configuraciones verificadas detrás de las afirmaciones de clase de esta página.
- Referencia de la API:
filters.compliance. - Teoría: Frecuencias de banda de octava: las definiciones de bordes de banda alrededor de las cuales se traza la máscara de IEC 61260-1.
Respuestas rápidas
Sección titulada «Respuestas rápidas»¿Qué arquitectura de filtro cumple la clase 1 de IEC 61260-1 con los ajustes por defecto?
Sección titulada «¿Qué arquitectura de filtro cumple la clase 1 de IEC 61260-1 con los ajustes por defecto?»Con el orden 6 por defecto, Butterworth cumple la clase 1 de los límites de
aceptación de la Tabla 1 de IEC 61260-1:2014, y también Chebyshev II: su
attenuation por defecto de 72 dB supera el límite de clase 1 de 70 dB en
la banda atenuada lejana. Chebyshev I, elíptico y Bessel no la cumplen: el rizado
de banda de paso (cheby1, ellip) y la caída lenta (bessel) violan la
máscara. verify_filter_class informa de la clase alcanzada por banda.
¿Qué es la clase 0 y qué norma la define?
Sección titulada «¿Qué es la clase 0 y qué norma la define?»La clase 0 es la clase de prestaciones más estricta, definida por IEC
61260:1995 y su gemela estadounidense ANSI S1.11-2004 y eliminada por IEC
61260-1:2014. Su corredor de banda de paso admite solo ±0,15 dB en el
centro de banda, frente a ±0,3 dB para la clase 1 en las máscaras de 1995.
Sigue accesible con edition="1995", y el banco Butterworth de orden 6 por
defecto cumple la clase 0 en la configuración que verifica el informe de
conformidad, el banco de bandas de octava a 48 kHz. Bajo IEC 61260-1:2014 ese
mismo banco es clase 1: la edición de 2014 no define ninguna clase 0, así que
una afirmación de clase 0 tiene que citar la máscara de 1995 / ANSI S1.11-2004
frente a la que se midió.
Referencias
Sección titulada «Referencias»- American National Standards Institute. (2004). Specification for octave-band and fractional-octave-band analog and digital filters (ANSI S1.11-2004). Acoustical Society of America. Sus límites de clase de la Tabla 1 son idénticos a los de IEC 61260:1995 y respaldan la misma máscara de clase 0.
- International Electrotechnical Commission. (1995). Electroacoustics — Octave-band and fractional-octave-band filters (IEC 61260:1995). La primera edición retirada cuya Tabla 1 aporta la máscara de clase 0 más estricta que ofrece edition='1995'.
- International Electrotechnical Commission. (2014). Electroacoustics — Octave-band and fractional-octave-band filters — Part 1: Specifications (IEC 61260-1:2014). Los límites de aceptación de clase 1 y clase 2 de la Tabla 1 verificados aquí, con el mapeo de los puntos de quiebre a cada fracción de octava y la interpolación logarítmica de la norma.
- International Electrotechnical Commission. (2016). Electroacoustics — Octave-band and fractional-octave-band filters — Part 2: Pattern-evaluation tests (IEC 61260-2:2016). El régimen de ensayo de tipo que un modelo de juego de filtros supera una sola vez: el recorrido completo de la máscara de la Tabla 1 sobre un equipo físico, que verify_filter_class no realiza.
- International Electrotechnical Commission. (2016). Electroacoustics — Octave-band and fractional-octave-band filters — Part 3: Periodic tests (IEC 61260-3:2016). Los ensayos periódicos que recibe un analizador en servicio: atenuación relativa en el centro de banda de todos los filtros, ancho de banda efectivo, rango lineal de funcionamiento y su límite inferior, bajo condiciones ambientales declaradas.