Prévia do material em texto
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA
CAMPUS CAMPINA GRANDE
CURSO SUPERIOR DE TECNOLOGIA EM TELEMÁTICA
RESUMO DO CAPÍTULO 6 DO LIVRO:
DIGITAL SIGNAL PROCESSING USING MATLAB
Aluno:
Rodolfo Bolconte Donato
Disciplina:
Processamento Digital de Sinais
Campina Grande, 18 de Julho de 2018
2
1. Capítulo 6 – Implementação de Filtros de Tempo Discreto
1.1. Elementos Básicos
Como nossos filtros são sistemas LTI, precisamos dos três elementos a seguir para descrever
estruturas de filtros digitais.
1. Somador: Este elemento possui duas entradas e uma. Observe que a adição de três ou
mais sinais é implementada por somadores de duas entradas sucessivas;
2. Multiplicador: Este é um elemento de entrada única e saída única. A multiplicação por
1 é entendida e, portanto, não explicitamente mostrada;
3. Elemento de atraso (shifter ou memória): este elemento atrasa o sinal que passa através
dele por uma amostra. Ele é implementado usando um registrador de deslocamento.
Usando esses elementos básicos, pode-se agora descrever várias estruturas dos filtros IIR e FIR.
Figura 1: Os 3 Elementos Básicos.
1.2. Estruturas de Filtros IIR
A função do sistema de um filtro IIR é dada por
onde bn e an são os coeficientes do filtro. Assumimos sem perda de generalidade que a0 = 1. A
ordem de tal filtro IIR é chamada N se aN ≠ 0. A representação da equação de diferença de um
filtro IIR é expressa por
Três estruturas diferentes podem ser usadas para implementar um filtro IIR:
1. Forma direta: Nesta forma, a equação da diferença é implementada diretamente como
dada. Existem duas partes neste filtro, a parte média móvel e a parte recursiva (ou
equivalentemente, as partes do numerador e denominador). Portanto, esta implementação
leva a duas versões: forma direta I e estruturas de forma direta II;
2. Forma Cascata: Nesta forma, a função do sistema H(z) na equação é fatorada em seções
menores de 2ª ordem, chamadas biquads. A função do sistema é então representada como
3
um produto dessas biquads. Cada biquad é implementado de forma direta, e toda a função
do sistema é implementada como uma cascata de seções biquad;
3. Forma paralela: é semelhante à forma em cascata, mas após a fatoração, uma expansão
parcial da fração é usada para representar H(z) como uma soma de seções menores de
segunda ordem. Cada seção é novamente implementada de forma direta, e toda a função
do sistema é implementada como uma rede paralela de seções.
Os filtros IIR são geralmente descritos usando a versão de forma racional (ou a estrutura de forma
direta) da função do sistema.
1.2.1. Forma Direta
Como o nome sugere, a equação de diferença é implementada como determinada usando atrasos,
multiplicadores e somadores. Para fins de ilustração, seja M = N = 4. Então a equação da diferença
é
A estrutura da forma direta I implementa cada parte da função racional H(z) separadamente com
uma conexão em cascata entre elas. A parte do numerador é uma linha de atraso seguida pela
parte do denominador, que é uma linha de atraso de retorno. Portanto, há duas linhas de atraso
separadas nessa estrutura e, portanto, requer oito elementos de atraso. Podemos reduzir essa
contagem de elemento de atraso ou eliminar uma linha de atraso trocando a ordem na qual as duas
partes estão conectadas na cascata. Agora as duas linhas de atraso estão próximas umas das outras,
conectadas por um ramo de ganho unitário. Portanto, uma linha de atraso pode ser removida, e
essa redução leva a uma estrutura canônica chamada estrutura de forma direta II. Deve-se notar
que ambas as formas diretas são equivalentes do ponto de vista de entrada-saída. Internamente,
no entanto, eles têm sinais diferentes.
1.2.2. Estrutura Transposta
Uma estrutura equivalente à forma direta pode ser obtida usando um procedimento chamado
transposição. Nesta operação, três etapas são executadas:
1. Todas as direções da seta do caminho estão invertidas;
2. Todos os nós de ramificação são substituídos por nós somadores e todos os nós
somadores são substituídos por nós de ramificação;
3. Os nós de entrada e saída são trocados.
A estrutura resultante é chamada estrutura de forma direta transposta.
4
Figura 2: Estruturas da Forma Direta Normal e Transposta.
1.2.3. Forma em Cascata
Nesta forma, a função do sistema H(z) é escrita como um produto de seções de 2ª ordem com
coeficientes reais. Isso é feito fatorando os polinômios do numerador e do denominador em suas
respectivas raízes e, em seguida, combinando um par complexo de raízes conjugadas ou quaisquer
duas raízes reais em polinômios de 2ª ordem. No restante deste capítulo, assumimos que N é um
inteiro par. Então,
onde K é igual a N/2, e Bk,1, Bk,2, Ak,1 e Ak,2 são números reais representando os coeficientes das
seções de 2ª ordem
com Y1(z) = b0X(z); YK+1 (z) = Y(z) é chamado a seção kº biquad. A entrada para a seção do kº é
a saída da seção (k - 1)º biquad, e a saída do kº biquad é a entrada para o (k +1)º biquad. Agora
cada seção de biquad Hk(z) pode ser implementada na forma direta II. O filtro inteiro é então
implementado como uma cascata de biquads.
1.2.4. Forma Paralela
Nesta forma, a função do sistema H(z) é escrita como uma soma de seções de 2ª ordem usando
expansão de fração parcial.
5
onde K é igual a N/2, e Bk,0, Bk,1, Ak,1 e Ak,2 são números reais representando os coeficientes das
seções de 2ª ordem. A seção de segunda ordem
com
é a kº racional própria da biquad. A entrada do filtro está disponível para todas as seções biquad,
bem como para a seção polinomial, se M ≥ N (que é uma parte FIR). A saída dessas seções é
somada para formar a saída do filtro. Agora cada seção de biquad Hk(z) pode ser implementada
na forma direta II. Devido à soma das subseções, uma estrutura paralela pode ser construída para
realizar H(z).
1.3. Estruturas de Filtros FIR
Um filtro de resposta ao impulso de duração finita tem uma função de sistema da forma
Consequentemente, a resposta do impulso h(n) é
E a representação da equação de diferença é
que é uma convolução linear de suporte finito.
6
A ordem do filtro é M - 1, e o comprimento do filtro (que é igual ao número de coeficientes) é M.
As estruturas de filtro FIR são sempre estáveis e são relativamente simples comparadas às
estruturas IIR. Além disso, os filtros FIR podem ser projetados para ter uma resposta de fase
linear, o que é desejável em algumas aplicações.
Vamos considerar as quatro estruturas a seguir:
1. Forma direta: Nesta forma, a equação de diferença é implementada diretamente como
dada;
2. Forma Cascata: Nesta forma, a função do sistema H(z) é fatorada em fatores de 2ª
ordem, que são então implementados em uma conexão em cascata;
3. Forma da Fase Linear: Quando um filtro FIR tem uma resposta de fase linear, sua
resposta ao impulso exibe certas condições de simetria. Nesta forma, exploramos essas
relações de simetria para reduzir as multiplicações em cerca de metade;
4. Formulário de Amostragem de Frequência: Esta estrutura é baseada na DFT da resposta
ao impulso h(n) e leva a uma estrutura paralela. Também é adequado para uma técnica de
projeto baseada na amostragem da resposta de frequência H(ejω).
1.3.1. Forma Direta
A equação de diferença é implementada como uma linha de atraso. Seja M = 5 (isto é, um filtro
FIR de 4ª ordem); então
1.3.2. Forma em Cascata
Esta forma é semelhante à da forma IIR. A função do sistema H(z) é convertida em produtos de
seções de 2ª ordem com coeficientes reais. Essas seções são implementadas de forma direta e o
filtro inteiro como umacascata de seções de 2ª ordem.
onde K é igual a M/2, e Bk,1 e Bk,2 são números reais representando os coeficientes das seções de
2ª ordem.
Figura 3: Forma em Cascata para M = 7.
7
1.3.3. Forma em Fase Linear
Para filtros seletivos de frequência (por exemplo, filtros passa-baixa) é geralmente desejável ter
uma resposta de fase que seja uma função linear de frequência; isto é, nós queremos
onde β = 0 ou ± π/2 e α é uma constante. Para um filtro FIR causal com resposta ao impulso acima
do intervalo [0, M −1], a condição de fase linear impõe as seguintes condições de simetria na
resposta ao impulso h(n):
Uma resposta ao impulso que satisfaz h(n) = h(...) é chamada de resposta impulsiva simétrica, e
a h(n) = -h(...) é chamada de resposta impulsiva antisimétrica. Essas condições de simetria podem
agora ser exploradas em uma estrutura chamada forma de fase linear.
1.3.4. Forma de Amostragem de Frequência
Nesta forma, usamos o fato de que a função do sistema H(z) de um filtro FIR pode ser reconstruída
a partir de suas amostras no círculo unitário. As amostras são de fato os valores DFT do ponto M
{H(k), 0 ≤ k ≤ M - 1} da resposta ao impulso do ponto M, h(n). Portanto nós temos H(z) = Z[h(n)]
= Z[IDFT{H(k)}]
Usando este procedimento, obtemos
Isso mostra que o DFT H(k), em vez da resposta de impulso h(n) (ou a equação da diferença), é
usado nessa estrutura. Observe também que o filtro FIR tem uma forma recursiva similar a um
filtro IIR porque contém tanto pólos quanto zeros. O filtro resultante é um filtro FIR, uma vez que
os pólos WM-k são cancelados pelas raízes 1 – z-M = 0
Como um filtro FIR é quase sempre um filtro de valor real, é possível obter uma realização
alternativa na qual apenas a aritmética real é usada. Essa realização é derivada usando as
propriedades de simetria do DFT e do fator.
1.4. Estruturas de Filtros Lattice
O filtro de rede é amplamente utilizado no processamento de voz digital e na implementação de
filtros adaptativos. É uma forma preferida de realização sobre outras estruturas de filtro FIR ou
IIR, pois na análise de fala e na síntese de fala o pequeno número de coeficientes permite que um
grande número de formantes seja modelado em tempo real. O Lattice All-Zero é a representação
do filtro FIR do filtro de Lattice, enquanto que a escada de Lattice é a representação do filtro IIR.
8
1.4.1. Filtros de Lattice All-Zero
Um filtro FIR de comprimento M (ou ordem M - 1) tem uma estrutura de Lattice com M − 1
estágios. Cada estágio do filtro tem uma entrada e uma saída que são relacionadas pelas equações
recursivas de ordem
onde os parâmetros Km, m = 1,2, ..., M - 1, chamados de coeficientes de reflexão, são os
coeficientes do filtro de rede. Se os valores iniciais de fm(n) e gm(m) forem ambos o valor escalado
(escalado por K0) da entrada do filtro x(n), então a saída do filtro de rede do estágio (M - 1)
corresponde à saída de um filtro FIR de ordem (M - 1);
Figura 4: Filtro Lattice All-Zero.
isso é,
Se o filtro FIR é dado pela forma direta
e se denotarmos o polinômio AM − 1(z) por
então os coeficientes do filtro de rede {Km} podem ser obtidos pelo seguinte algoritmo recursivo
9
Observe que esse algoritmo falhará se |Km| = 1 para qualquer m = 1, ..., M - 1. Claramente, esta
condição é satisfeita por filtros FIR de fase linear desde
Portanto, os filtros FIR de fase linear não podem ser implementados usando estruturas de Lattice.
1.4.2. Filtros de Lattice All-Pole
Uma estrutura de Lattice para um filtro IIR é restrita a uma função de sistema multipolar. Pode
ser desenvolvido a partir de uma estrutura de rede FIR. Uma função do sistema all-pole pode ser
dada por
Cada estágio do filtro tem uma entrada e uma saída que são relacionadas pelas equações recursivas
de ordem:
onde os parâmetros Km, m = 1,2, ..., M - 1, são os coeficientes de reflexão da rede de pólos inteiros,
exceto para K0, que é igual a 1.
1.4.3. Filtro de Lattice-Ladder
Um filtro IIR geral contendo ambos os pólos e zeros pode ser realizado como uma estrutura do
tipo Lattice usando uma rede de todos os pólos como o bloco de construção básico. Considere um
filtro IIR com função do sistema
10
onde, sem perda de generalidade, assumimos que N ≥ M. Uma estrutura de tipo Lattice pode ser
construída realizando primeiro uma rede de todos os pólos com coeficientes Km, 1 ≤ m ≤ N, e
então adicionando uma parte Ladder tomando a saída como uma combinação linear ponderada de
{gm(n)}, para M = N. O resultado é um filtro IIR de pólo-zero que tem a estrutura Lattice-Ladder.
Sua saída é dada por
onde {Cm} são chamados de coeficientes Ladder que determinam os zeros da função do sistema
H(z). Pode ser mostrado que {Cm} são dados por
1.5. Visão Geral dos Efeitos Numéricos de Precisão Finita
Até agora, consideramos projetos e implementações de filtros digitais nos quais tanto os
coeficientes de filtro quanto as operações de filtro, como adições e multiplicações, foram
expressos usando números de precisão infinita. Quando sistemas de tempo discreto são
implementados em hardware ou software, todos os parâmetros e operações aritméticas são
implementados usando números de precisão finita e, portanto, seu efeito é inevitável.
Considere um filtro digital típico implementado como uma estrutura de forma direta II. Quando
a representação de precisão finita é usada em sua implementação, há três possíveis considerações
que afetam a qualidade geral de sua saída. Nós temos que:
1. quantize os coeficientes do filtro, {ak, bk}, para obter suas representações finitas de
comprimento de palavra, {^ak, ^bk};
2. quantize a sequência de entrada, x(n) para obter ^x(n), e;
3. considere toda a aritmética interna que deve ser convertida em suas próximas melhores
representações.
Assim, a saída, y(n), também é um valor quantizado ^y(n). Isso nos dá uma nova realização de
filtro, ^ H(z). Esperamos que isso o novo filtro ^ H(z) e sua saída ^ y(n) são o mais próximo possível
do filtro original H(z) e a saída original y(n).
1.6. Representação dos Números
Em computadores, os números (valores reais ou valores complexos, números inteiros ou frações)
são representados usando dígitos binários (bits), que tomam o valor de um 0 ou um 1. A aritmética
de tamanho de palavra finita necessária para processar esses números é implementada usando
11
duas abordagens diferentes, dependendo da facilidade de implementação e da precisão, bem como
do intervalo dinâmico necessário no processamento. A aritmética de ponto fixo é fácil de
implementar, mas tem apenas um alcance dinâmico fixo e precisão (ou seja, números muito
grandes ou números muito pequenos). A aritmética de ponto flutuante, por outro lado, tem uma
ampla faixa dinâmica e uma precisão variável (em relação à magnitude de um número), mas é
mais complicada de implementar e analisar.
Como um computador pode operar somente em uma variável binária (por exemplo, um 1 ou um
0), números positivos podem ser representados diretamente usando números binários. Surge o
problema de como representar os números negativos. Há três formatos diferentes usados em cada
uma dessas aritméticas: formato de magnitude de sinal, formato de complemento de um e formato
de dois complementos. Ao discutir e analisar essas representações, consideraremos
principalmente um sistema de números binários contendo bits. No entanto, essa discussão e
análise também são válidas para qualquer sistema de numeração de base - por exemplo, o sistema
hexadecimal, octal ou decimal.
Na discussão a seguir, primeiro começaremos com a aritmética inteira com sinal de ponto fixo.
Uma representação binária de B bits de um inteiro x é dada por