Introdução
Em
todo sistema de comunicação, o foco principal é transmitir informações de um
ponto a outro ponto remoto. Precisa-se, portanto, de um ponto de origem onde se
localiza o transmissor que envia a informação, e um ponto de chegada onde se
localiza o receptor que recebe a informação enviada. O sinal pode ser tratado
pelos mecanismos de comunicação de várias maneiras diferentes. Hoje em dia com
o avanço das tecnologias digitais, os sinais são convertidos para uma
representação discreta (digital) que pode ser facilmente compreendida e
manipulada por um processador digital. Filtros digitais são sistemas que
efetuam uma série de operações matemáticas em um sinal digital discreto, de
modo a reduzir ou ampliar características específicas deste sinal (HAMMING,
1997). Além de sua implementação, matematicamente a maior diferença entre esta
classe de filtros e os filtros analógicos é a natureza do sinal, pois os
analógicos processam sinais contínuos. Neste projeto será explicitadas as
etapas do projeto de três filtros digitais: FIR (Finite Impulse
Response) e IIR (Infinite Impulse
Response). Eles serão projetados para fazer a remoção ou redução de ruído em
sinais de áudio.
Fundamentação Teórica
Filtros
Os
filtros são utilizados na remoção de partes indesejadas do sinal, bem como
ruídos, ou simplesmente extrair partes importantes do mesmo, como componentes
de uma certa banda de frequência, bem como na recuperação de sinais.
O
filtro analógico utiliza circuitos eletrônicos analógicos feitos basicamente de
resistores, capacitores e amplificadores operacionais. Muitos destes filtros
são largamente usados em aplicações como: redução de ruído, realce de sinal de
vídeo, equalização gráfica em sistemas hi-fi, entre outros. Hoje em dia,
entretanto, temos a precisão dos filtros digitais. Estes tipos de filtros
utilizam um processador digital para realizar cálculos numéricos em cima de
amostras de sinal. Através da entrada de um sinal analógico, um conversor analógico-digital
(ADC) realiza a conversão deste sinal para ser lido pelo DSP. Este então fica
encarregado de realizar os cálculos necessários para fazer a filtragem,
multiplicando os valores da entrada por constantes e somando os produtos
resultantes, além de utilizar técnicas matemáticas, como as Transformadas de
Fourier. Caso seja necessário, estes valores, que agora representam
numericamente o sinal filtrado, podem ser convertidos através de um conversor
digital-analógico (DAC). (DINIZ,2104)
Filtros Digitais
Os
filtros digitais podem ser representados de três formas: resposta a impulso,
resposta a degrau e resposta em frequência. Cada uma destas formas tem
informações completas sobre o filtro, mas de formas diferentes e se uma delas
estiver disponível, é sempre possível obter as outras. Todas estas formas são
importantes, pois descrevem como o filtro irá reagir sob circunstâncias
diferentes.
Quanto
ao comportamento no domínio da frequência, os filtros podem ser classificados
como: passa-baixa, passa-alta, passa-faixa, rejeita-faixa, explicitados
respectivamente na Figura 1.
Os
filtros digitais podem ser classificados ainda de acordo com o comprimento da
resposta ao impulso como Resposta Finita ao Impulso (FIR) e Resposta Infinita
ao Impulso (IIR). Por outro lado, dependendo do procedimento de cálculo da
resposta, os filtros digitais também podem ser classificados como recursivos e
não-recursivos. Filtros não-recursivos se caracterizam pelo cálculo da resposta
levar em consideração as amostras atuais e anteriores da entrada, enquanto em
filtros recursivos a resposta leva em consideração valores atuais e anteriores
da entrada e da resposta. A dependência das saídas anteriores (recursividade)
faz com que a duração da resposta ao impulso de um filtro recursivo seja
infinita, mesmo na ausência da entrada.
FIR (Finite Impulse Response)
O
filtros FIR são filtros digitais do tipo não-recursivo, isto é, não possuem
realimentação. Os filtros FIR são caracterizados pela seguinte função de
transferência:
Dentre
as vantagens desta classe de filtros, pode-se destacar a facilidade de implementação,
estabilidade inerente, facilidade em garantir resposta em fase linear, e a
ausência de erros cumulativos que seriam gerados pela realimentação, se esta
existisse (HAMMING, 1997). Por não precisarem armazenar os valores de saída nem
processar os valores anteriores a cada iteração, a implementação dos filtros do
tipo FIR é mais simples do que a dos filtros IIR. Porém, por necessitarem de
mais coeficientes que um filtro IIR de desempenho equivalente, o esforço
computacional exigido em geral é maior (DINIZ, 2004). É possível demonstrar que
todos os polos de um filtro FIR estão localizados na origem do plano Z e,
portanto, estes filtros são estáveis. A linearidade em fase da resposta de um
sistema diz respeito ao atraso que um filtro provoca nas componentes de cada
frequência do sinal. Não há como eliminar este atraso, ou o filtro não seria
causal (OPPENHEIM; SCHAFER, 1975).
Uma
condição necessária para boa parte das aplicações de filtros digitais é a
constância do atraso de grupo, o que necessariamente implica que o atraso de
fase gerado pelo sistema seja uma função linear da frequência. Isto é
necessário para que não haja distorção de fase, um fenômeno prejudicial para
diversas aplicações. Filtros FIR alcançam esta condição desde que o vetor de coeficientes,
que caracteriza o filtro, seja simétrico ou antissimétrico (HAMMING, 1997).
Operações efetuadas por um sistema numérico digital geram certo erro na
resposta, diferente conforme o tipo de operação, a largura em bits dos
registradores utilizados na operação, etc. Caso múltiplas operações sejam
realizadas sobre certo número, o erro introduzido a cada operação vai se
acumulando. Em sistemas FIR, isto não gera muitos problemas, pois a falta de
realimentação impede que os resultados de cálculos anteriores sejam utilizados
em novas contas.
Na
Figura 2 encontra-se o diagrama de blocos geral do filtro FIR.
Figura 2: Diagrama de blocos geral do filtro FIR
Método da Janela
Nessa
técnica, deseja-se determinar os coeficientes do filtro, h[n], tal que a
resposta H(ejω) forneça uma boa aproximação para uma resposta em frequência
desejada Hd(ejω). Uma medida da qualidade dessa aproximação pode ser o Erro
Médio Quadrático (E) entre as duas respostas.
Pelo
Teorema de Parseval:
Os
coeficientes são obtidos pela minimização da energia do erro através do uso de
uma janela retangular, definida por:
Tal
que:
Existem
vários tipos de janela diferentes, sendo as mais comuns: Retangular,
triangular, Hamming, Hanning e Blackman, como mostrado na Figura 3.
Figura 3 – Tipos de Janela
A
Figura 4 a seguir mostra as funções das janelas.
Figura 4 – Funções das Janelas
Dois
importantes parâmetros de projeto são o comprimento e o formato da janela w[n].
Para compreender como esses parâmetros influenciam o projeto observe que:
Logo,
no domínio da frequência:
Os
gráficos na Figura 5 exibem a operação de convolução entre Hd(ω) e W(ω).
Figura 5- Convolução de Hd(ω) e W(ω).
Analisando
os gráficos percebemos que a largura do lóbulo principal de W(ω) afeta a largura
da faixa de transição de H(ω) e os lóbulos laterais de W(ω) provocam ondulações
na banda de passagem e na banda de corte do filtro H(ω). A banda de corte do
filtro H(ω) é diferente de zero devido aos lóbulos laterais de W(ω). A resposta
em frequência das funções das janelas fica como na Figura 6.
Figura 6 – Respostas em frequência das funções das
janelas
IIR (Infinite Impulse Response)
Os
filtros IIR são filtros recursivos, isto é, a saída do sistema em um instante t
depende não só das entradas anteriores, mas das saídas também. A Figura 7
mostra o diagrama de blocos do filtro IIR.
Figura 7 - Diagrama de blocos do filtro IIR
Os
filtros IIR são caracterizados pela seguinte função de transferência:
A
principal vantagem desta classe de filtros é que conseguem um fator de roll-off
(a velocidade da transição entre as bandas de passagem e rejeição) muito maior
do que o obtido em filtros FIR com o mesmo número de coeficientes (HAMMING,
1997). Porém, esta característica tem um custo: a resposta em fase do filtro
muito raramente é linear, e o processo de cálculo é mais complexo devido à
necessidade de se garantir a sua estabilidade. Os principais métodos para o
cálculo de filtros IIR são: Butterworth, Chebyshev tipo I e tipo II, e
elíptico. Cada um deles tem características e vantagens próprias, que devem ser
levadas em consideração pelo projetista de acordo com as especificações da
aplicação em que o filtro será utilizado.
A
aproximação de Butterworth é uma das mais utilizadas no projeto de filtros,
tanto digitais quanto analógicos. Sua principal característica é a
monotonicidade do ganho tanto na banda de passagem quanto na banda de rejeição.
Porém, dentre os métodos citados anteriormente, este é o que possui o pior
velocidade da transição. A única maneira de aumentar este fator é aumentando o
número de pólos do filtro, o que implica em mais coeficientes.
As
aproximações de Chebyshev se diferem da de Butterworth por possuírem ganho
monotônico em apenas uma das faixas. O tipo I possui a banda de rejeição
monotônica, enquanto o tipo II possui a banda de passagem monotônica. Esta
perda de monotonicidade implica em ondulações no ganho, mais usualmente
chamadas de ripple. A quantidade de ripple pode ser diminuída em troca de
aumento no número de coeficientes, ou piorada taxa de velocidade da transição.
É possível demonstrar que quando o ripple tende a zero, o filtro de Chebyshev
se transforma em um filtro de Butterworth. Esta capacidade de se manipular
ripple e a velocidade da transição sem alterar o número de coeficientes do
filtro torna a aproximação de Chebyshev muito mais flexível do que a de
Butterworth. Porém, não é possível especificar todos os parâmetros ao mesmo
tempo. O projetista deve escolher entre fixar o ripple ou fixar o número de
coeficientes. Os filtros elípticos são os que possuem a melhor taxa de velocidade
da transição entre as bandas de passagem e rejeição. O custo disto é o ripple
em toda a resposta do filtro, ou seja, tanto na banda de rejeição quanto na
banda de passagem. Porém, não é possível especificar ao mesmo tempo a ordem do
filtro e as frequências que compõem cada banda. Um exemplo de filtro elíptico é
dado na Figura 8, que mostra como o roll-off é mais acentuado em comparação com
o dos filtros anteriores. Para se alcançar a monotonicidade, é necessário
obedecer algumas restrições matemáticas em relação aos coeficientes do filtro.
Caso a abordagem utilizada para o cálculo destes coeficientes seja através de
otimização numérica, estas restrições não são práticas de serem aplicadas. Além
disto, é possível demonstrar que as aproximações de Butterworth e Chebyshev
garantem a melhor resposta ótima dentro de suas restrições (DINIZ, 2004).
Figura 8 – Comparação dos espectros dos filtro
Butterworth
O
filtro passa-baixa Butterworth é uma aproximação para o filtro passa-baixa
ideal, creditada ao engenheiro inglês S. Butterworth, é o filtro “maximally
flat”. A magnitude quadrada do filtro é definida como:
Onde
N é a ordem do filtro e ωc é definida como a frequência de corte onde a
magnitude da resposta do filtro é 1/√2 vezes o ganho DC (ou seja, quando ω =
0). Para um frequência de corte de 1, o resultado é chamado filtro passa-baixa
protótipo:
A Figura 9 mostra a magnitude e fase
na frequência do filtro Butterworth e suas variações dependendo da ordem a ser
definido.
Figura
9 – Magnitude e fase na frequência do filtro Butterworth
Para ω = 1, a magnitude é M = |HLP
(jω)| = 1/√2 , ou seja, MdB = −3 dB, para todos os valores de N. Também pode-se
concluir que M → 0 quando ω → ∞ e M = 1 para ω = 0 para todo N. E percebe-se
que M = |HLP (jω)| é um função da frequência monotonicamente decrescente.
Octave
O Octave provê uma interface em linha de
comando para solução de problemas lineares e não-lineares. Ele também funciona
como uma linguagem de programação em batch. Possui uma extensa biblioteca para
resolução dos problemas mais comuns em álgebra linear. É facilmente extensível
e customizável usando funções definidas pelo usuário criadas em linguagem
própria do Octave ou carregando módulos escritos em C/C++, Fortran e outras
linguagens (PELLUZI,2005). É uma das alternativas
ao MatLab e escolhi o Octave devido a sua grande semelhança com os
comandos do Matlab e também porque ele aceita os arquivos ".m". Isso
facilita a migração do usuário do Matlab para o Octave sem traumas.
Continue lendo a segunda parte clicando aqui.
Continue lendo a segunda parte clicando aqui.
0 comentários:
Postar um comentário