Introdução à Filtros
Digitais
Filtros básicos, parâmetros no
domínio do tempo e frequência,
classificação de filtros
Filtros são usados basicamente para dois propósitos:
• Separação de sinais combinados;
• Restauração de sinal que foi distorcido.
A princípio, a separação e/ou restauração de sinais pode ser realizada com
ambos os tipos de filtros, analógicos e digitais. As diferenças básicas são:
Analógicos
• Barato
• Rápidos
• Grande faixa dinâmica (amplitude e frequência)
Digitais
• Muito melhor desempenho. Ex.: Será visto um filtro passa-baixa que possui
ganho 1±0,0002 entre frequência zero e 1000Hz e um ganho de menos que
0,0002 para frequências acima de 1001Hz. Excelente não?
Filtros lineares comumente apresentam as curvas abaixo:
-3dB : amplitude do
sinal cai à 0,707 e
a potência é reduzida
à 0,5.
DOMÍNIO DO TEMPO
Resposta ao degrau
Tempo de subida: entre 10% e
90%. Deseja-se o menor possível.
Overshoot: distorção da informação.
Fase linear: simetria entre as metades superior e inferior → resposta em frequência com fase linear.
DOMÍNIO DA FREQUÊNCIA
Resposta em frequência
Banda passante: frequências
permitidas (ganho 1 geralmente)
Frequência de corte: 99%, 90%,
70,7% e 50% da amplitude para
filtros digitais.
Banda de transição: deseja-se
a menor possível.
Banda de rejeição: frequências
bloqueadas.
DOMÍNIO DA FREQUÊNCIA
Resposta em frequência
A figura abaixo mostra o processo de conversão filtro passa-baixa →
filtro passa-alta.
1. mudar o sinal das
amostras no kernel
2. adicionar 1 na
amostra do centro da
simetria.
Assim …
Passa-alta → Passa-baixa
Passa-banda → Rejeita-banda
Rejeita-banda → Passa-banda
Por que as modificações no domínio do tempo indicadas, resultam
em inversão no espectro de frequência ?
δ[n]-h[n]: inverter sinal da resposta
impulsiva e adicionar 1 no centro.
Condição: as componentes de baixa
frequência das saídas parciais (antes
do somador) precisam estar em fase.
Para isso deve-se:
1. filtro kernel original com fase linear
2. impulso adicionado no centro da
simetria.
Outro método: spectral reversal !!
1. mudar o sinal das
amostras no kernel →
multiplicar o filtro por
sin(0,5t) → shift em fre_
quência de 0,5.
A frequência 0 se torna
0,5.
Ex.: Filtros passa-banda e rejeita-banda.
Cascata: 2 estágios
Convolução: 1 estágio
Paralelo: 2 estágios
Soma: 1 estágio
Classificação de filtros
Filtros Digitais
Convolução
Recursão
FIR
IIR
Melhor desempenho
Mais rápido
Filtros Média Móvel
Implementação por convolução,
redução de ruído, implementação
recursiva, passagens múltiplas.
Implementação por Convolução 1
É feito uma média de um número de pontos do sinal da entrada
x[], para produzir cada ponto do sinal de saída y[]:
Ex.: O ponto 80 da saída, para um filtro média móvel com M=5
é dado por:
1. O filtro média móvel é uma convolução da entrada com um pulso retangular de área 1.
Ex.: Filtro média móvel com M=4
Note que,
• adição
• subtração
• multiplicação
Redução de ruído versus Resposta ao degrau
O filtro média móvel apresenta bom desempenho em muitas
aplicações e ótimo desempenho na redução de ruído branco, ao mesmo
tempo que preserva a resposta ao degrau.
A quantidade de ruído reduzida é igual a raiz quadrada do número
de pontos no filtro !!
Resposta em frequência
O filtro média móvel possui bom desempenho no domínio do
tempo e mal desempenho no domínio da frequência.
1
1. Obtida pela transformada de Fourier do pulso retangular.
Passagens múltiplas no filtro média móvel
vezes.
Consiste em passar o sinal de entrada pelo filtro duas ou mais
Implementação recursiva
É possível implementar um filtro média móvel com um algoritmo
rápido. Lembre que a implementação por convolução é lenta !!
Ex.: Seja um filtro média móvel com M=7. Dois pontos de saída adjacentes
são calculados da seguinte forma:
y [ 50 ] 
x [ 47 ]  x [ 48 ]  x [ 49 ]  x [ 50 ]  x [ 51 ]  x [ 52 ]  x [ 53 ]
7
y [ 51 ] 
x [ 48 ]  x [ 49 ]  x [ 50 ]  x [ 51 ]  x [ 52 ]  x [ 53 ]  x [ 54 ]
7
Uma vez que os pontos x[48]....x[53] aparecem em y[50] e y[51],
a melhor maneira para calcular y[51] é
y[51]  y[50] 
1
7
e assim sucessivamente.
 x[ 54 ]  x[ 47 ]
Depois que o primeiro ponto de y[] é calculado, todos os outros são
determinados através de 1 soma e 1 subtração, por ponto:
y [ i ]  y [ i  1] 
1
M
onde ,
p  ( M  1) / 2
q  p 1
 x[ i 
p ]  x[ i  q ]
Simulação
Implementar um filtro média móvel (recursivo ou não) para filtrar o seguin
Gerada através do Matlab/Simulink ...
Resultados
Optou-se pelo recursivo. Abaixo algumas formas de onda:
M=7
M=21
Note os picos do ruído filtrado e a tendênc
de se tornar onda triangular com o aumen
M !
Filtros Windowed-Sinc
(Sinc Janelado)
Estratégia do filtro, projeto,
exemplos.
Estratégia do filtro Sinc Janelado
Características:
• Bons para separar uma banda de frequência de outra
• Pobre resposta no tempo (overshoot)
• Pode ser programado por convolução (lento) ou por FFT (rápido)
(Função Sinc)
Problema: comprimento infinito e
nunca cai à zero.
Solução: Truncar em M+1 pontos (M par)
e shiftar de M/2 (índices positivos).
1. Assunto que será visto.
1
Para suavizar o efeito do truncamento utiliza-se janelas:
x
=
(Janela)
FFT
Janelas
M=50
Blackman
Hamming
i  0 ... M
Qual janela deve-se usar ?
Blackman apresenta ainda ripple na banda de passagem de ~0,02%, enqua
a Hamming de ~0,2%.
Projeto do filtro
Parâmetros de projeto:
• Frequência de corte fC. Expressa como uma fração da frequência de amostragem, lo
0 ≤ fC ≤ 0,5 (teorema da amostragem)
• Número de amostras M. Essa quantidade determina a largura da banda de transiçã
M ≈ 4 / bw , onde 0 ≤ bw ≤ 0,5
bw = 0.2, 0.1 e 0.02
A fc não incluencia na forma da respost
Após selecionado fc e M, o filtro pode ser calculado usando:
onde K é selecionado de modo a garantir ganho unitário na frequência zero. Para evita
divisão por zero, fazer h[M/2]=2fcK.
Note que a equação acima possui: a função sinc, o shift M/2 e a janela Black
Algumas respostas
• A frequência da oscilação senoidal vale aproximadamente fC ;
• Resposta no tempo ruim.
Exemplos
Um eletroencefalograma (EEG) é o resultado combinado de um número
enorme de pulsos elétricos das células nervosas do cérebro. Em relaxamento, o
EEG apresentará um padrão de oscilação entre 7 e 12Hz (estado alpha). Um
pouco mais ativo, o padrão fica entre 17 e 20Hz (estado beta).
COMO PODEMOS SEPARAR O SINAL ALPHA DO SINAL BETA ?
SUPONHA UMA FREQUÊNCIA DE AMOSTRAGEM DE 100Hz.
Solução: filtro passa-baixa com fc=14Hz (fc=0.14), bw=0.04 (logo
M=100) e janela
Hamming.
Exemplos
Projeto de um filtro passa-banda, onde o sinal que será filtrado será amostrado a
10kHz. O filtro terá na sua resposta em frequência uma banda de 80Hz de
passagem do sinal centrada na frequência 2kHz. Assim, o filtro deverá bloquear
frequência abaixo de 1960Hz e acima de 2040Hz. O filtro terá 50Hz de largura
de banda de transição, e portanto, M=801.
Etapas do projeto:
1.
2.
3.
4.
Dois filtros passa-baixa com fc1=0.196 e fc2=0.204 ;
O segundo filtro tem seu espectro invertido, tornando-se um passa-alta ;
Soma-se ambos os filtros, resultando um rejeita-banda ;
Outra inversão de espectro resulta em um passa-banda.
Algoritmo para filtro
passa-banda.
Exemplos
Deseja-se separar um sinal de 1mV que viaja numa linha de transmissão de 120V.
Um filtro passa-baixa com banda de atenuação de -120dB no mínimo é necessário.
Mas como foi visto, uma janela Blackman oferece somente -74dB.
Solução
Kernel
h1
Kernel
h2
Kernel
h=h1*h2
Simulação
Para implementar um sinal amostrado no simulink, pode-se utilizar o bloco
hold. Na simulação abaixo, amostrou-se uma senóide de 60Hz com período de amost
de 1ms. Adicionalmente, inserimos o bloco to worspace para trabalharmos futurame
espaço de trabalho (workspace). Experimente o comando:
plot(simout.time,simout.signals.values,'o') no worspace.
Convolução
Função delta, resposta ao impulso,
algoritmo input side e output side.
Função Delta e Resposta ao Impulso
Convolução é uma operação matemática que combina dois sinais para forma
terceiro. É importante pois relaciona três sinais de grande interesse, a saber: o sinal
o sinal de saída e a resposta ao impulso.
Conhecendo-se a resposta ao impulso h,
é possível determinar a saída y para qual
entrada x !!
Algoritmo Input Side
Esse método procura explicar a convolução do ponto de vista do sinal da en
seja, explica como cada amostra da entrada contribui para formar as muitas amostr
N=9
M=4
N+M-1=12 pontos
Fundamento básico em DSP: 1. decompor a entrada
2. passá-la pelo sistema
3. sintetizar
Ex.: Análise da amostra x[4]=1.4
Passo 1: 1.4[n-4] (impulso deslocado)
Passo 2: 1.4h[n-4] (se a entrada é , então a saída é h)
Passo 3:
+
+
Note os símbolos em diamantes setados para zero !!
É possível mostrar que a convolução é comutativa: x[n]*h[n] = h[n]*x[n]
Programa em BASIC para o cálculo da convolução usando o algoritmo
Input Side.
Algoritmo Output Side
Esse método procura explicar a convolução do ponto de vista do sinal da saída
remos olhando as amostras da saída e verificando a contribuição dos pontos da entrada
Lembre que y[n] = combinação de muitos valores entre entrada e resposta ao
No presente método, veremos como calcular cada amostra da saída independe
das outras amostras da saída.
Ex.: Análise de y[6]
y[6]
y[6] = soma de todos os sextos pontos nas nove compon
acima, ou seja, y[6]=x[3]h[3]+x[4]h[2]+x[5]h[1]+x[6]h[
Máquina de Convolução: um diagrama de fluxo de como ocorre a convolução.
X[n] e y[n] são fixos, enquan
h[n] é móvel para os lados !
Ex.: cálculo de y[0] e y[3]
As amostras da saída bem da direita
e as bem da esquerda estão baseadas
em informações incompletas.
Onde não existem amostras (note x[-3],
x[-2] e x[-1]), colocar valor zero. Nesse
caso diz-se que a resposta ao impulso h,
não está totalmente imergida no sinal
de entrada x.
A definição formal da convolução enfim é dada por:
A Transformada Discreta
de Fourier - DFT
Jean Baptiste Joseph Fourier afirmou que : todo sinal contínuo periódico poderia
ser representado como uma soma apropriada de sinais senoidais.
Por que usar senóides e não ondas triangulares ou quadradas? As senóides possuem
a interessante característica de manter a sua forma após passarem por algum sistema. Apenas a
amplitudes e fases são alteradas !
Existem 4 categorias associadas ao termo Transformada de Fourier, a saber:
• Contínuo aperiódico: Ex.: Decaimento exponencial. A transformada é simplesmente
chamada transformada de Fourier.
• Contínuo periódico: Ex.: Senóides e onda quadrada. A transformada é chamada
série de Fourier.
• Discreto aperiódico: A transformada é chamada transformada de Fourier a tempo
discreto.
• Discreto periódico: É as vezes chamada de série de Fourier discreta, mas em geral
é conhecida como transformada de Fourier discreta.
Ex.: Decomposição de um sinal discreto aperiódico
16 pontos
Cada sinal possui 16 pontos
DFT real
A entrada são amostras de um sinal qualquer (igualmente espaçadas), enquant
saídas contém as amplitudes das componentes senoidais escaladas de uma forma que ve
Re X[]: amplitudes cossenóide;
Im X[]: amplitudes senóide.
Usualmente N é escolhido de tal forma que seja potência de 2 (128, 256, 512, etc). O
motivos são:
1.
2.
Endereçamento binário da informação, logo a potência de 2 é o tamanho natural do sinal;
O algoritmo mais usado para calcular a DFT, a FFT, opera sobre N.
Variável independente no domínio da frequência
Ex.: DFT com N=128.
Eixo horizontal corresponde às amostras k.
f 
k
N
Eixo horizontal como uma fração da
frequência de amostragem.
Ainda é possível usar  (frequência natural),
multiplicando por 2 o eixo do f. O range se
portanto, de 0 a .
Lembrar: SINAIS DISCRETOS APENAS
CONTÉM FREQUÊNCIA ENTRE 0 E 0,5 DA FREQUÊNCI
DE AMOSTRAGEM !
Funções base da DFT
As função base da DFT (de amplitudes unitárias)são geradas a partir de:
c k [ i ]  cos( 2  k i / N )  armazenada
s em Re X[k]
s k [ i ]  sin( 2  k i / N )
s em Im X[k]
 armazenada
onde i  0 ... N - 1 e k determina
(número
a frequência
de ciclos em N pontos do sinal).
Ex.: Seja uma DFT com N=32. A seguir 8 componentes das 17 senóides e 17 cossenói
usadas na DFT.
.
.
.
A DFT inversa
De acordo com o que foi dito, podemos sintetizar a entrada como:
Eqs. 1
onde,
exceto
Eqs. 2
Conclusão: Qualquer sinal x[i] com N pontos pode ser sintetizado,
adicionando N/2+1 cossenóides e N/2+1 senóides.
Programa em BASIC para o cálculo da transformada DFT inversa:
Ex.: DFT inversa.
função impulso
A parte imaginária, não mostrada, é composta de zeros !
função constante
Cálculo da DFT
Os métodos são:
1. Equações simultâneas (pouco eficiente);
2. Correlação (consiste em detectar uma forma de onda conhecida em outro sinal);
3. FFT (decompõe uma DFT de N pontos em N DFTs, cada uma com um único ponto).
Correlação
Ex.: calcular ImX[3] de um sinal com N=64, ou seja, a amplitude da onda senoidal
que completa 3 ciclos entre os pontos 0 e 63.
Lembre que o resultado da DFT gera dois sinais, cada um com N/2+1 pont
seja, 33 pontos na parte real e 33 pontos na parte imaginária, no exemplo
Por correlação descobrimos que uma senóide que completa 3 ciclos entre as
amostras 0 a 63 (note que é uma função base), está presente no exemplo 1
apenas, pois a soma das amostras em e) resulta em 32. Já em f) o resultado é
zero.
x
x
=
=
Equação de análise
Assim, o cálculo da DFT consiste em correlacionar o sinal de entrada no tempo com
cada função base.
Ex.: Algoritmo em BASIC
Forma Polar
Tendo em vista que:
, podemos escrever
onde MagX[k] e PhaseX[k] armazenam a amplitude e a fase da cossenóide.
Por que se utilizou a função cos ?
Porque a função sin não podem representar a componente DC, pois o seno
de frequência zero é composto todo de zeros.
Ex.: Filtro passa-baixa.
Ex.: Algoritmo para conversão.
Incômodos do algoritmo:
1.
Divisão por zero ;
2. Incorreto arctan ;
3. Fase de magnitudes muito
pequenas (tendência de ficar
randômica entre - e ) ;
Bibliografia
• S. W. Smith, Digital Signal Processing – a practical guide for engineers and
scientists, 2003. USA.
Download

Introdução à Filtros Digitais