Estoy de acuerdo en que el método de diseño del filtro de ventanas ya no es uno de los métodos de diseño más importantes, y de hecho podría ser el caso de que esté sobrerrepresentado en los libros de texto tradicionales, probablemente debido a razones históricas.
Sin embargo, creo que su uso puede justificarse en ciertas situaciones. No estoy de acuerdo en que la complejidad computacional ya no sea un problema. Esto depende de la plataforma. Sentados en nuestra computadora de escritorio y diseñando un filtro, no tenemos que preocuparnos por la complejidad. Sin embargo, en plataformas específicas y en situaciones donde el diseño debe hacerse en tiempo casi real, la complejidad computacional es un problema, y se preferirá una técnica de diseño subóptima simple sobre una técnica óptima que sea mucho más compleja. Como ejemplo, una vez trabajé en un sistema para la formación de haces donde el filtro (formador de haces) necesitaría ser rediseñado sobre la marcha, por lo que la complejidad computacional fue realmente un problema.
También estoy convencido de que en muchas situaciones prácticas no necesitamos preocuparnos por la diferencia entre el diseño óptimo y el subóptimo. Esto se vuelve aún más cierto si necesitamos usar aritmética de punto fijo con coeficientes cuantificados y resultados cuantificados de operaciones aritméticas.
Otro problema es la estabilidad numérica de los métodos óptimos de diseño de filtros y sus implementaciones. Me he encontrado con varios casos en los que el algoritmo de Parks-McClellan (debería decir, la implementación que utilicé) simplemente no convergió. Esto sucederá si la especificación no tiene mucho sentido, pero también puede suceder con especificaciones totalmente razonables. Lo mismo es cierto para el método de diseño de mínimos cuadrados donde se necesita resolver un sistema de ecuaciones lineales, que puede convertirse en un problema mal condicionado. En estas circunstancias, el método de ventanas nunca te decepcionará.
Una observación sobre su comparación entre el método de ventana y el diseño de mínimos cuadrados: no creo que esta comparación muestre ninguna superioridad general del método de mínimos cuadrados sobre el método de ventanas. Primero, parece observar la atenuación de la banda de detención, que no es un objetivo de diseño para ninguno de los dos métodos. El método de ventanas no es óptimo en ningún sentido, y el diseño de mínimos cuadrados minimiza la energía de la banda de detención, y no le importa en absoluto el tamaño de la ondulación de la banda de detención. Lo que se puede ver es que el borde de la banda de paso del diseño de la ventana es más grande que el del diseño de mínimos cuadrados, mientras que el borde de la banda de detención es más pequeño. En consecuencia, el ancho de banda de transición del filtro diseñado por la ventana es menor, lo que dará como resultado ondas de banda de parada más altas. La diferencia en el ancho de banda de transición puede ser pequeña, pero las propiedades del filtro son muy sensibles a este parámetro. No hay duda de que el filtro de mínimos cuadrados supera al otro filtro cuando se trata de detener la energía de la banda, pero eso no es tan fácil de ver como el tamaño de ondulación. Y la pregunta sigue siendo si esa diferencia realmente haría una diferencia en una aplicación práctica.
Permítame mostrarle que a menudo se pueden hacer tales comparaciones para que se vean como uno quisiera que se vean. En la figura siguiente, comparo un filtro de paso bajo óptimo de mínimos cuadrados diseñado con la función Matlab / Octave firls.m
(azul) con un filtro de paso bajo diseñado con el método de ventana usando una ventana de Kaiser (rojo).
A partir de la figura, incluso se podría concluir que el filtro diseñado por ventanas es ligeramente mejor que el filtro óptimo de mínimos cuadrados. Por supuesto, esto no tiene sentido porque ni siquiera definimos "mejor", y el filtro de mínimos cuadrados debe tener un error de aproximación al cuadrado medio más pequeño. Sin embargo, no se ve eso directamente en la figura. De todos modos, esto es solo para apoyar mi afirmación de que uno debe ser muy cuidadoso y claro al hacer tales comparaciones.
En resumen, además de ser útil para aprender para estudiantes de DSP por razones puramente didácticas, creo que a pesar de los avances tecnológicos desde la década de 1970, el uso del método de ventanas puede justificarse en ciertos escenarios prácticos, y no creo que eso lo haga cambiar muy pronto
firpm()
y afirls()
.