Ao dizimar um sinal de banda estreita com um filtro CIC (Cascadeed Integrator-Comb) , qual filtro FIR é mais adequado para compensar a resposta de frequência CIC?
filter-design
Augusto Zebadúa
fonte
fonte
Respostas:
Não há uma resposta única para sua pergunta: como em qualquer problema de projeto de filtro, isso depende de seus requisitos. Conforme descrito muito bem na página da Wikipedia , os filtros CIC (cascaded-integrator-comb) consistem em vários pares de estágios de integrador e pente (daí o nome). Cada estágio do integrador-pente possui uma resposta de impulso agregada equivalente a um filtro de vagão (por exemplo, um com uma resposta de freqüência retangular). A resposta de frequência (magnitude) de um vagão coberto tem uma forma semelhante a uma função sinc, de modo que a estrutura geral do CIC terá uma resposta de magnitude que se parece com uma função sinc levada a alguma potência , onde N é o número de estágios integrador-pente.N N
Entretanto, não há muitos botões para você ajustar com base em requisitos específicos de aplicativos. Você pode ajustar a taxa de dizimação / interpolação da estrutura do CIC, o atraso do pente e o número de estágios, mas ainda está com a resposta de frequência do tipo sinc, que não é particularmente ideal, pois não é plana na lóbulo principal e possui lóbulos laterais relativamente altos. Portanto, é típico que um CIC seja seguido por outro filtro que "limpe" a resposta geral.
O problema: o que você precisa de qualquer filtro de compensação que você colocar após o CIC será definido pelo seu aplicativo. O que é realmente importante é a resposta da cascata geral, que você restringiria com base nas necessidades do seu aplicativo. Não há filtro específico que seja "mais adequado".
fonte
Havia uma pergunta semelhante, https://dsp.stackexchange.com/a/1551/306 , e o seguinte é um subconjunto da resposta da outra postagem.
Geralmente, para compensar um filtro CIC, o inverso da resposta dos filtros CIC pode ser usado para gerar o filtro de compensação. A CIC tem uma resposta de 2
Onde D é o atraso diferenciado, M é a taxa de dizimação e N é a ordem dos filtros (número de filtros em cascata). O inverso pode ser especificado como
Uma vez que tenhamos a resposta de frequência do filtro de compensação, podemos simplesmente escolher o comprimento do filtro FIR que desejamos. O comprimento do FIR é específico da aplicação. Obviamente, quanto mais tempo o filtro FIR, melhor a compensação.
A seguir, são apresentados gráficos dessa compensação direta.
A seguir, é apresentado o código Python para criar as respostas e gráficos de frequência.
importar numpy como np de numpy importar sin, abs, pi importar pylab
1 Altera, "Entendendo os filtros de compensação CIC"
2 R. Lyons, "Understanding Digital Signal Processing", 2ª ed., Prentice Hall, Upper Saddle River, Nova Jersey, 2004
fonte
Os ISOP (Polinômios Interpolados de Segunda Ordem) são frequentemente usados para compensar a queda da banda passante CIC.
A resposta do Matlab desse filtro pode ser mostrada usando:
Escolher o alfa para seus requisitos é a parte complicada. No pior dos casos, simulações de força bruta da pré-forma, repetindo de 0 a 0,5 em incrementos de 0,001, encontrando o alfa que resulta na melhor compensação de inclinação. Definindo a melhor compensação de inclinação como um erro mínimo na borda da sua faixa de passagem.
Por questões de eficiência, esse filtro é normalmente colocado na taxa de dados mais baixa, antes do CIC para interpolação e depois do CIC para dizimação.
fonte