O design do filtro digital é um tópico muito amplo e maduro e - como você mencionou na sua pergunta - há muito material disponível. O que eu quero tentar aqui é iniciar e tornar o material existente mais acessível. Em vez de filtros digitais, eu deveria estar falando sobre filtros de tempo discreto, porque não considerarei o coeficiente e a quantização de sinal aqui. Você já conhece os filtros FIR e IIR e também conhece algumas estruturas de filtro, como DF I e II. No entanto, deixe-me começar com alguns princípios:
Um filtro invariável no tempo linear (LTI) não recursivo pode ser descrito pela seguinte equação de diferença
y( n ) = h0 0x ( n ) + h1x ( n - 1 ) + … + hN- 1x ( n - N+ 1 ) = ∑k = 0N- 1hkx ( n - k )(1)
y( N )x ( n )nhkNhkx ( n ) = δ( N )y( n ) = hnhk. Uma vantagem importante dos filtros FIR é que eles são sempre estáveis, ou seja, para uma sequência de entrada limitada, a sequência de saída é sempre limitada. Outra vantagem é que os filtros FIR sempre podem ser realizados com uma fase exatamente linear, ou seja, eles não adicionam distorção de fase além de um atraso puro. Além disso, o problema de design é geralmente mais fácil, como veremos mais adiante.
Um filtro LTI recursivo é descrito pela seguinte equação de diferença:
y( n ) = b0 0x ( n ) + b1x ( n - 1 ) + … + bMx ( n - M) -- um1y( n - 1 ) - … - aNy( n - N)2)
bkumakumak porque o filtro IIR pode ser instável, ou seja, sua sequência de saída pode ser ilimitada, mesmo com uma sequência de entrada limitada.
Os filtros podem ser projetados de acordo com as especificações no domínio do tempo (amostra) ou no domínio da frequência, ou ambos. Como você mencionou uma frequência de corte na sua pergunta, presumo que você esteja mais interessado em especificações no domínio da frequência. Nesse caso, você precisa dar uma olhada nas respostas de frequência dos sistemas FIR e IIR. A resposta de frequência de um sistema é a transformada de Fourier de sua resposta de impulso, assumindo que ele exista (o que é o caso de sistemas estáveis). A resposta de frequência de um filtro FIR é
H( ej θ) = ∑k = 0N- 1hke- j k θ(3)
θ
θ = 2 πffs
ffs
H( ej θ) = ∑Mk = 0bke- j θ1 + ∑Nk = 1umake- j θ4)
umak= 0k = 1 , … , N
Vamos agora dar uma olhada rápida nos métodos de design de filtro. Para filtros FIR, você pode fazer uma transformação de Fourier inversa da resposta de frequência desejada para obter a resposta de impulso do filtro, que corresponde diretamente aos coeficientes do filtro. Como você aproxima a resposta desejada por uma resposta de impulso de comprimento finito, você deve aplicar uma janela suave à resposta de impulso obtida para minimizar as oscilações na resposta de frequência real devido ao fenômeno de Gibbs. Este método é chamado método de amostragem de frequência.
Para filtros padrão simples, como os filtros passa-baixo ideal, passa-alto, passa-banda ou parada de banda (e alguns outros), você pode até calcular analiticamente a resposta exata ao impulso realizando a transformação de Fourier inversa da resposta ideal desejada:
hk= 12 π∫π- πH( ej θ) ej k θdθ
É fácil avaliar essa integral para obter respostas desejadas constantes por partes, como é o caso dos filtros seletivos de frequência ideais. Isso fornecerá uma resposta de impulso não causal infinitamente longa, que precisa ser exibida e alterada para torná-la finita e causal. Este método é conhecido como design de janela.
Obviamente, existem muitos outros métodos de design de filtro FIR. Um método numérico importante é o famoso algoritmo de troca Parks-McClellan, que projeta filtros ótimos com ondulações constantes de banda passante e stopband. É um método de aproximação numérica e existem muitas implementações de software disponíveis, por exemplo, no Matlab e no Octave.
ssz
É claro que existem muitos métodos mais interessantes e úteis, dependendo do tipo de especificação que você possui, mas espero que isso o inicie e torne mais compreensível qualquer material encontrado. Um livro muito bom (e gratuito) que cobre alguns métodos básicos de design de filtros (e muito mais) é a Introdução ao processamento de sinais da Orfanidis. Você pode encontrar vários exemplos de design lá. Outro grande livro clássico é o Digital Filter Design de Parks and Burrus.