Concordo que o método de design do filtro de janelas não é mais um dos métodos de design mais importantes, e pode realmente ser o caso de estar super-representado nos livros tradicionais, provavelmente devido a razões históricas.
No entanto, acho que seu uso pode ser justificado em determinadas situações. Não concordo que a complexidade computacional não seja mais um problema. Isso depende da plataforma. Sentados em nosso computador desktop e projetando um filtro, de fato não precisamos nos preocupar com a complexidade. No entanto, em plataformas específicas e em situações em que o design precisa ser realizado quase em tempo real, a complexidade computacional é um problema e uma técnica simples de design subótimo será preferida a uma técnica ideal que é muito mais complexa. Como exemplo, uma vez trabalhei em um sistema para formação de feixe em que o filtro (formador de feixe) precisaria ser redesenhado em tempo real, e, portanto, a complexidade computacional era realmente um problema.
Também estou convencido de que, em muitas situações práticas, não precisamos nos preocupar com a diferença entre o design ótimo e o subótimo. Isso se torna ainda mais verdadeiro se precisarmos usar aritmética de ponto fixo com coeficientes quantificados e resultados quantificados de operações aritméticas.
Outra questão é a estabilidade numérica dos métodos ideais de design de filtro e suas implementações. Já deparei com vários casos em que o algoritmo Parks-McClellan (devo dizer, a implementação que usei) simplesmente não converge. Isso acontecerá se a especificação não fizer muito sentido, mas também pode ocorrer com especificações totalmente razoáveis. O mesmo vale para o método de design dos mínimos quadrados, onde um sistema de equações lineares precisa ser resolvido, o que pode se tornar um problema mal condicionado. Nessas circunstâncias, o método de janelas nunca o decepcionará.
Uma observação sobre sua comparação entre o método da janela e o design dos mínimos quadrados: Eu não acho que essa comparação mostre qualquer superioridade geral do método dos mínimos quadrados sobre o método de janelas. Primeiro, você parece observar a atenuação da banda de parada, que não é uma meta de design para nenhum dos dois métodos. O método de janelas não é ideal em nenhum sentido, e o design dos mínimos quadrados minimiza a energia da banda de parada e não se importa com o tamanho da ondulação da banda de parada. O que pode ser visto é que a borda da banda passante do design da janela é maior que a do design dos mínimos quadrados, enquanto a borda da banda de parada é menor. Consequentemente, a largura da banda de transição do filtro projetada pela janela é menor, o que resultará em ondulações mais altas da banda de parada. A diferença na largura da banda de transição pode ser pequena, mas as propriedades do filtro são muito sensíveis a esse parâmetro. Não há dúvida de que o filtro de mínimos quadrados supera o outro filtro quando se trata de interromper a energia da banda, mas isso não é tão fácil de ver quanto o tamanho da ondulação. E a questão permanece: se essa diferença realmente faria diferença em uma aplicação prática.
Deixe-me mostrar-lhe que essas comparações geralmente podem ser feitas da maneira que se deseja. Na figura abaixo, comparo um filtro passa-baixo ideal para mínimos quadrados projetado com a função Matlab / Octave firls.m
(azul) com um filtro passa-baixo projetado com o método window usando uma janela Kaiser (vermelho).
A partir da figura, pode-se até concluir que o filtro projetado pela janela é um pouco melhor que o filtro ideal de mínimos quadrados. É claro que isso não faz sentido, porque nem definimos "melhor", e o filtro de mínimos quadrados deve ter um erro de aproximação ao quadrado médio menor. No entanto, você não vê isso diretamente na figura. De qualquer forma, isso serve apenas para apoiar minha afirmação de que é preciso ter muito cuidado e clareza ao fazer essas comparações.
Em suma, além de ser útil aprender para os alunos do DSP por razões puramente didáticas, acho que, apesar dos avanços tecnológicos desde a década de 1970, o uso do método de janelas pode ser justificado em certos cenários práticos, e não acho que isso mude muito em breve.
firpm()
efirls()
.