1 / n octava suavizado

8

Dada una respuesta de frecuencia obtenida con FFT, me gustaría aplicar un suavizado de 1 / n octava. ¿Qué filtro debo usar y cómo? Tal vez alguien podría señalar una buena referencia (un documento o libro sobre el tema).

Psirus
fuente
¿Está buscando un filtro de pinking , que atenúa la frecuenciaf a la amplitud 1/f? ¿O realmente quieres algo que atenúe la frecuencia?f a la amplitud 1/(lg2f)?
Wandering Logic
1
No quiero atenuar ninguna frecuencia. Quiero que los datos se suavicen, con un ancho de banda variable, es decir, 1 octava, 1/3 de octava, etc.
Psirus
1
Las respuestas de frecuencia de los altavoces generalmente se suavizan, ya sea para hacer que el gráfico sea más fácil de interpretar, pero aún así es bastante preciso (suavizado de 1/20 de octava), o un suavizado muy alto (1/3 de octava), por ejemplo, en marketing. Esto es lo que he leído en numerosas ocasiones, lo que significa exactamente que estoy tratando de averiguar aquí.
Psirus
1
Entonces, su pregunta no se trata de cambiar una señal, per se, se trata de cómo mostrar gráficamente la respuesta de frecuencia de un dispositivo. ¿Está bien?
Jim Clay
1
Creo que este artículo contiene información valiosa. Sin embargo, desafortunadamente, no es gratis. El enfoque fundamental también se describe en este .
appleoup

Respuestas:

8

Por lo general, "suavizado" significa "reemplazar el valor actual con el promedio sobre los vecinos". El más común es el suavizado de energía, donde el suavizado da como resultado el promedio de energía durante el intervalo de suavizado y la información de fase se pierde. El suavizado complejo también se puede hacer, pero es un asunto complicado debido al ajuste de fase.

El suavizado de energía se puede expresar como

Y(k)=1Ni=0N1X(i)X(i)Wk(i)

dónde Wk(i)Es una función de ventana adecuada. En el caso de, digamos, suavizado de tercera octava, esto podría derivarse como la magnitud al cuadrado de la función de transferencia de un filtro de paso de banda de tercera octava alrededor de la frecuencia k. Esto también significa que, por ejemplo, para una FFT de 1024 puntos, debe diseñar 1024 filtros de paso de banda diferentes, por lo que es bastante trabajo.

Las cosas se pueden simplificar si la forma exacta del filtro de suavizado es flexible. El alisado rectangular se puede hacer como

Y(k)=1ba+1i=abX(i)X(i)

dónde

a=round(k212n),b=round(k212n)

son simplemente los índices de los bordes de la banda para nth suavizado de octava.

Hay algunos métodos más que están en el medio en la ventana arbitraria y la rectangular en términos de complejidad.

Hilmar
fuente
Estoy tratando de implementar esto en el código C, y me temo que me pierdo un poco en la notación. Me cuesta entender cómo, por ejemplo, funciona la suma de i corriendo de a a b. Cualquier ayuda apreciada.
Andrew Smith
Dos pulgares, pero por desgracia solo un voto, arriba. Esta pregunta adicional pregunta cómo se realiza el suavizado complejo 1 / n, incluido el complicado negocio del ajuste de fase.
SpeedCoder5