DSP - Design Assistido por Computador
Os filtros FIR podem ser úteis para fazer projetos de filtros auxiliados por computador. Vamos dar um exemplo e ver como funciona. A seguir está uma figura do filtro desejado.
Ao fazer o projeto do computador, quebramos todas as figuras do gráfico contínuo em valores discretos. Dentro de certos limites, nós o dividimos em 64, 256 ou 512 (e assim por diante) número de partes com magnitudes discretas.
No exemplo acima, consideramos limites entre -π e + π. Dividimos em 256 partes. Os pontos podem ser representados como H (0), H (1),… .até H (256). Aqui, aplicamos o algoritmo IDFT e isso nos dará características de fase linear.
Às vezes, podemos estar interessados em alguma ordem específica de filtro. Vamos dizer que nós queremos realizar o acima determinado projeto a 9 ª filtro de ordem. Portanto, consideramos os valores do filtro como h0, h1, h2… .h9. Matematicamente, pode ser mostrado como abaixo
$$ H (e ^ {j \ omega}) = h_0 + h_1e ^ {- j \ omega} + h_2e ^ {- 2j \ omega} + ..... + h_9e ^ {- 9j \ omega} $$Onde há grande número de deslocamentos, tiramos o máximo de pontos.
Por exemplo, na figura acima, há uma queda repentina de inclinação entre os pontos B e C. Então, tentamos tomar valores mais discretos neste ponto, mas há uma inclinação constante entre os pontos C e D. Aí pegamos menos número de valores discretos.
Para projetar o filtro acima, passamos pelo processo de minimização como segue;
$ H (e ^ {j \ omega1}) = h_0 + h_1e ^ {- j \ omega1} + h_2e ^ {- 2j \ omega1} + ..... + h_9e ^ {- 9j \ omega1} $
$ H (e ^ {j \ omega2}) = h_0 + h_1e ^ {- j \ omega2} + h_2e ^ {- 2j \ omega2} + ..... + h_9e ^ {- 9j \ omega2} $
Similarmente,
$ (e ^ {j \ omega1000}) = h_0 + h_1eH ^ {- j \ omega1000} h_2e ^ {- 2j \ omega1000} + ..... + h_9 + e ^ {- 9j \ omega1000} $
Representando a equação acima em forma de matriz, temos -
$$ \ begin {bmatrix} H (e ^ {j \ omega_1}) \\. \\. \\ H (e ^ {j \ omega_ {1000}}) \ end {bmatrix} = \ begin {bmatrix} e ^ {- j \ omega_1} & ... & e ^ {- j9 \ omega_1} \\. & &. \\. & &. \\ e ^ {- j \ omega_ {1000}} & ... & e ^ {j9 \ omega_ {1000}} \ end {bmatrix} \ begin {bmatrix} h_0 \\. \\. \\ h_9 \ end {bmatrix} $$Vamos tomar a matriz 1000 × 1 como B, a matriz 1000 × 9 como A e a matriz 9 × 1 como $ \ hat {h} $.
Então, para resolver a matriz acima, vamos escrever
$ \ hat {h} = [A ^ TA] ^ {- 1} A ^ {T} B $
$ = [A ^ {* T} A] ^ {- 1} A ^ {* T} B $
onde A * representa o conjugado complexo da matriz A.