[Acadêmicos] Projeto parte I: Filtragem de um sinal de áudio com Octave

by 23:42 0 comentários



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.

 
               Figura 1 – Comportamento dos filtros no domínio da frequência.

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.


.

Autora

Apaixonada por muitas coisas. Uma delas é fazer exatamente o que eu estou fazendo com a minha vida: nada.

0 comentários:

Postar um comentário