Diseñe un filtro que permita que las frecuencias inferiores a 5 kHz pasen libremente, pero todas las frecuencias superiores a 5.2 kHz deben ser indetectables

12

Mi mayor desafío con esta pregunta es su velocidad de caída ridículamente empinada.

Supongo que la señal es indetectable si su ganancia es de -20 dB. Esto significa que, dentro de la banda de transición de 200 Hz, la intensidad de la señal debe disminuir en 20 dB.

Si mis cálculos son correctos, este filtro requiere una tasa de caída de 1200 dB / dec. Eso requiere 60 polos, lo que obviamente no es factible.

Me gustaría usar un filtro activo analógico con ondulación mínima en la banda de paso. Un gran cambio de fase no es demasiado importante.

Una posible solución es usar un filtro de muesca a 5.2 kHz. Sin embargo, las frecuencias por encima del ancho de banda del filtro de muesca todavía no están suficientemente filtradas.

Señale cualquier falla en mi lógica y proponga posibles soluciones. Gracias.

Tamir Shklaz
fuente
16
Llamar a -20dB indetectable es bastante
difícil
1
@WhatRoughBeast ??? Me doy cuenta de que dividió 4500 por 20 para obtener 225 polos; Lo que estoy desafiando es cómo consiguió el 4500 en primer lugar.
Dave Tweed
77
¿Qué tipo de respuesta esperas Tamir? Analógico pasivo / activo? Digital IIR / FIR? ¿Filtro digital de onda? FFT + Eliminar cosas no deseadas + IFFT?
Harry Svensson
44
¿Cuánta ondulación de banda de paso es aceptable?
Bruce Abbott
1
"con ondulación mínima en la banda de paso": 'mínimo' no es una especificación.
Bruce Abbott

Respuestas:

21

Ha asumido una reducción de 20 dB / dec por orden de filtro para su filtro. Esto no es cierto para todos los tipos de filtro.

Sea y f s t o p = 5.2 k H z . Entonces f s t o pf0=5kHzfstop=5.2kHz

fstopf0=1.04.

Eche un vistazo a este filtro elíptico de cuarto orden tomado del artículo de Wikipedia . elíptico

Aunque no cumple con sus requisitos, puede ver que es factible. Un filtro elíptico de orden superior puede lograr lo que busca.

Debe tener en cuenta que los filtros elípticos pueden hacer cosas perturbadoras en la fase de la señal. Como no mencionó nada sobre sus restricciones de fase, supuse que un filtro elíptico es adecuado.

usuario110971
fuente
Esa no es una mala idea. El LPF elíptico de sexto orden tiene una pendiente de transición lo suficientemente empinada si la ondulación de la banda de paso de 3dB y máx. Se permite una fuga de -20 dB a 5200Hz y superior. El resultado se obtuvo con una calculadora de filtro, solo ingresé diferentes órdenes y límites hasta que apareció una respuesta de frecuencia adecuada. Sexto orden significa solo tres bloques de segundo orden en cascada. No tengo idea, será realizable en la práctica con tolerancias de componentes habituales como un filtro opamp analógico. Eso necesita más simulaciones.
user287001
Hola y gracias por una buena respuesta. Solo una curiosidad, cuando miro wikipedia los polos parecen estar en puntos suspensivos, ¿es de ahí de donde proviene el nombre o es una coincidencia?
mathreadler
1
@mathreadler Creo que el nombre proviene de la función racional elíptica que aparece en la función de transferencia del filtro elíptico. Los polos de los filtros elípticos son una función de la función coseno elíptica de Jacobi. Por lo tanto, se encuentran en una elipse.
user110971
21

Este tipo de caída brusca requiere un filtro digital. Ni siquiera pienses en lo analógico. Necesita convolucionar la entrada con una función sinc. El ancho de la función sinc (el número de puntos del núcleo) define la atenuación de la banda de detención.

No he hecho los cálculos, pero algunos cálculos muy rápidos (podría ser incorrecto, tu trabajo es correcto) dicen que probablemente necesites unos 100 puntos si tomas muestras a 20 kHz. 200 puntos a 20 kHz significa una velocidad MAC de 4 MHz. Eso es factible, de hecho muy por debajo de lo que los DSP modernos pueden hacer con bastante facilidad. Eso significa que su problema es bastante manejable. Algo así como un dsPIC de la serie E puede hacer esto, y eso es bastante bajo si solo está buscando capacidad DSP.

Olin Lathrop
fuente
3
Esto es en realidad un filtro FIR. Una simulación rápida mostró que 128 filtros de grifo con ventanas rectangulares son suficientes. Los coeficientes se toman de la respuesta de impulso sinc del LPF ideal de 5100Hz. El primer lóbulo lateral tiene solo -20dB a aprox. 5250Hz (visto desde una calculadora de filtro)
usuario287001
2
@usuario: OK, eso significa que en realidad es un poco más fácil que mi estimación aproximada anterior. Probablemente haría el kernel un poco más ancho, solo para tener un margen, especialmente porque todavía está dentro de la capacidad de un DSP modesto.
Olin Lathrop
Hay algunos recursos realmente buenos para el filtro y qué función de ventana usar: personalmente me gusta dspguide.com
Peter Smith
4

Si permite un retraso considerable o procesa una señal grabada, simplemente puede hacer FFT, eliminar componentes no deseados e invertir la transformación. Debe truncar el fft con la función de ventana adecuada para que el timbre sea aceptable.

usuario287001
fuente
8
Creo que para una banda de transición tan estrecha, necesita decir mucho más sobre cómo seleccionar la función de ventana para que esta respuesta sea útil para resolver el problema.
The Photon
4

Elegiría un chip de códec de audio (ADC + DAC), enrutaría la salida digital ADC a la entrada DAC y establecería la frecuencia de muestreo en 10 kHz.

Estos chips ya incluyen el motor de filtro digital que necesita. Una comprobación rápida de la hoja de datos parece confirmar que obtendrá el rendimiento del filtro que necesita.

peufeu
fuente
¿Estás seguro de eso?
user253751
No estoy 100% seguro, pero no veo ninguna razón por la que no funcionaría con un códec sigma delta, algunos pueden probar hasta 8 kHz ...
peufeu
Pero quiero decir, ¿por qué crees que rechazará las frecuencias no deseadas, en lugar de suavizarlas?
user253751
El ADC de audio habitual es un sigma delta con un enorme factor de sobremuestreo seguido de un filtro digital nítido. La mayoría de estos se ejecutarán desde Fs = 8k a 96-192k. El alias se evita mediante un simple paso bajo de primer orden antes del ADC, y el sobremuestreo se encarga de ello. Deberían funcionar bien alrededor de Fs = 10kHz con la frecuencia de reloj correcta.
peufeu
4

Ya tiene muchas respuestas agradables con buenas soluciones tradicionales, filtros elípticos, (tiempo corto) FFT, etc., por lo que estaba pensando que podría agregar algo del mundo de codificación de subbandas / transformación de wavelet.

La codificación de subbandas significa subdividir el espectro de frecuencia en "contenedores", cada uno de estos contenedores tiene su propio filtro asociado. Las bandas más ajustadas, los filtros más amplios en el dominio del tiempo (naturalmente), pero en áreas donde no necesitamos bandas muy apretadas, podemos escapar con filtros realmente cortos y baratos de calcular.

Las wavelets son funciones que son el resultado de un tipo específico de filtros de subbandas que se generan mediante filtrado iterado seguido de submuestreo.

La idea sería encontrar las subbandas de interés que nos permitirían exprimir más los cálculos, pero aún así obtener una buena granularidad en la banda de interés.

Ejemplo de una descomposición de paquetes de Daubechies 12 tap en tres niveles (Wikipedia):

Ingrese la descripción de la imagen aquí

Luego podemos resumirlos selectivamente para obtener la respuesta que queremos. Y los que no queremos agregar, ¡ni siquiera tenemos que calcular! Necesitaremos unos más delgados más cercanos a la banda de 5-5.2 kHz para poder tener un comportamiento lo suficientemente pronunciado. Pero, por otro lado, lejos de la banda de 5-5.2 kHz, podemos escapar con solo unas pocas subdivisiones.

mathreadler
fuente
Esto es más un anuncio que una respuesta.
Harry Svensson
@HarrySvensson Puedo tratar de ser más específico, pero actualmente no tengo tanto tiempo libre como solía tener que mejorar las respuestas.
mathreadler
3

Si puede GARANTIZAR una entrada sinusoidal, puede ser suficiente una monoestable de una sola vez (74121). O el reactivable 122/123.

Use un comparador antes del 74121/122/123

Algunas MCU incluyen comparadores analógicos como sus periféricos; una vez convertido a onda cuadrada, puede usar temporizadores, etc. para detectar por encima / por debajo de 5,000Hz, si la MCU tiene un reloj estabilizado por XTAL. No es necesario un monoestable sensible a la temperatura.

analogsystemsrf
fuente
3
Interesante, pero ¿qué te hace pensar que la entrada podría ser sinusoidal? Parece bastante utópico hacer esa suposición sin ninguna razón en particular.
Leftaroundabout
1
Creo que al mencionar las primeras 4 palabras de su respuesta "si puede GARANTIZAR", esta es una solución novedosa.
Techydude
Utilicé este enfoque (el 74123 retriggerable) para detectar el bloqueo de las ruedas en un sistema antideslizante; cuando se agotó el tiempo de espera del 74123, el cilindro hidráulico fue accionado desde 2N3055 para accionar los frenos. Solo obtuvimos alrededor de 2 pulsos por segundo, debido a la constante del tiempo hidráulico.
analogsystemsrf