Implementação de filtros
Filtros FIR
Filtros IIR
Geber Ramalho & Osman Gioia - UFPE
1
Implementação de filtros
 Abordagem
• equações de diferença linear: filtragem construída a
partir de atrasos e operações aritméticas simples
• em engenharia: teoria matemática dos polos e zeros
no espaço dos números complexos...
 Notação
•
•
•
•
•
•
x[n] = amostra número n do sinal de entrada
y[n+1] = amostra número n + 1 do sinal de saída
D = atraso (delay)
 = atraso de uma amostra
+ = soma de sinais
× = multiplicação do sinal por um fator
Geber Ramalho & Osman Gioia - UFPE
2
Filtros IIR e FIR
 Dois tipos principais de filtros
• Finite Impulse Response (FIR)
• Infinite Impulse Response (IIR)
FIR
D
+
entrada
IIR
entrada
Geber Ramalho & Osman Gioia - UFPE
saída
D
+
saída
3
Passa-Baixas FIR
 Equação
• y[n] = (0,5 × x[n]) + (0,5 × x [n - 1])
 Comentário
• equivalente a encontrar a média aritmética de pares
de amostras subseqüentes
• efeito: “amaciar” a forma de onda (passa-baixas)
 Circuito/algoritmo
a
0,5

entrada
1
×
×
+
saída
Fa/2
f
0,5
Geber Ramalho & Osman Gioia - UFPE
Freqüência de
amostragem
4
Passa-Altas FIR
 Equação
• y[n] = (0,5 × x[n]) - (0,5 × x [n - 1])
 Comentário
• equivalente a enfatizar as diferenças entre pares de
amostras subseqüentes
• efeito: enfatizar altas freqüências (passa-altas)
 Circuito/algoritmo
0,5

entrada
a
1
×
×
-
saída
Fa/2
f
0,5
Geber Ramalho & Osman Gioia - UFPE
5
Filtro FIR geral
 Equação:
• y[n] = (a0 × x[n]) ± (a1 × x[n - 1]) ± ... (aj × x[n - j])
 Circuito/algoritmo de filtro com j estágios
x[n]
...

a0
×

a2
×
aj
...
×
+/y[n]
Geber Ramalho & Osman Gioia - UFPE
6
Filtro FIR geral
 A resposta do filtro dependerá de
• quantidade de estágios do filtro (valor de j)
• operações de adição ou subtração
• coeficientes a1,..., aj
 Observações
• quanto mais longo (mais estágios) for o filtro, mais
estreita pode ser sua banda de transição (inclinação)
• mas isto vai requerer mais computação
• depois de certos estágios o ganho em precisão de
corte do filtro é mínimo, não valendo a pena o custo
benefício
Geber Ramalho & Osman Gioia - UFPE
7
Aumento de estágios nos filtros FIR
Passa baixas FIR de 15 estagios
Geber Ramalho & Osman Gioia - UFPE
Passa baixas FIR de 31 estagios
8
Filtro IIR simples
 Equação:
• y[n] = (0,5 × x[n]) + (0,5 × y [n - 1])
 Comentário
• equivale a recursivamente adicionar vários estágios de
um filtro FIR
• soma com a saída anterior e divide por dois. Com
coeficientes iguais a 0,5 => passa-baixas
 Circuito/algoritmo
a
0,5
0,5
x[n]
×
×
+
Geber Ramalho & Osman Gioia - UFPE

1
y[n]
Fa/2
f
9
Filtro IIR geral
 Equação
• y[n] = (a0 × x[n]) + ... (am × x[n - M])
+/- b1 × y[n] +/- ... (bN × y[n - N])
ou simplesmente
M
N
i 0
j 1
y[n]   ai  x[n  i]   b j  y[n  j ]
 Comentário
• construído a partir das amostras anteriores de entrada
(multiplicadas por um fator diferente de zero) e o
feedback das amostras de saída
Geber Ramalho & Osman Gioia - UFPE
10
FIR x IIR
Custo
computacional
Linearidade da
resposta de fase
Estabilidade
Geber Ramalho & Osman Gioia - UFPE
FIR
IIR
ruim
bom
bom
ruim
bom
ruim
11
Filtro de pente (comb filter)
 Equação
• y[n] = x[n] + x [n - D]
(FIR)
 Comentários
• D é um atraso bem mais longo do que 
• Também é possível implementar com IIR
y[n] = (a × x[n]) + (b × y[n - D])
 Circuito/algoritmo
FIR
entrada
Geber Ramalho & Osman Gioia - UFPE
D
+
saída
12
Filtro de pente (comb filter)
 Interpretação intuitiva
• Quando um sinal é superposto a ele mesmo com
pequeno atraso, haverá momentos de reforço e
cancelamentos de algumas freqüências com se fosse
um pente (comb filter)
Geber Ramalho & Osman Gioia - UFPE
13
Filtro Passa Tudo
 Equação
• y[n] = (-g × x[n]) + x[n - D] + (g × y[n - D])
 Comentários
• g é chamado de ganho
• o deslocamento de fase depende logaritmicamente do
atraso D (0 < D < freq. de amostragem)
 Circuito/algoritmo
g
×
x[n]
+
D
+
y[n]
×
-g
Geber Ramalho & Osman Gioia - UFPE
14
Filtro Passa Tudo
 Idéia
• não altera o espectro mas impõe mudança de fase
que depende da freqüência de x
Geber Ramalho & Osman Gioia - UFPE
15
Efeitos de atraso de tempo
Efeitos com atraso (delay) fixo e variável
reverberadores
Geber Ramalho & Osman Gioia - UFPE
16
DDL
 Digital delay line ou digital delay unit
• Colocar amostras de entrada na memória antes de
mandá-las para saída misturando com amostras não
atrasadas
• base para um série de efeitos de processamento
• parecido com o filtro passa baixas FIR e com o pente,
a diferença sendo o tempo de atraso
– no PB FIR, D = uma amostra
– no pente, D = 0,1-10 ms
– no DDL, D > 15 a 20 ms
Tempo de Amplitude do
atraso
sinal atrasado
DDL
tempo
Geber Ramalho & Osman Gioia - UFPE
×
D
tempo
entrada
×
amplitude do
sinal original
+
saída
17
Implementando a DDL: fila circular
 A cada ciclo (período de amostragem)
• lê-se a amostra mais antiga O
• escreve-se em seu lugar a nova amostra N
• incremementa-se a posição do ponteiro (tap)
 Com esta técnica (único ponteiro - single tap)
• implementa-se um atraso fixo, proporcional ao
tamanho da fila
Ciclo k
7
8
1
Ciclo k + 1
7
2
O
6
5
4
Geber Ramalho & Osman Gioia - UFPE
8
1
2
tap
3
N
6
5
O
4
3
tap
18
Multitap Delay Line
 Pode-se implementar atrasos mais curtos, mais
longos e variáveis na mesma fila circular
• Permitindo que o ponteiro “bata” (tap) em qualquer ponto
da fila e que haja mais de uma “batida”
 Para 2 taps: A cada ciclo
• simultaneamente, duas amostras são lidas nas posições
tap1 e tap2
• a nova amostra é escrita na posição O
• todas as posições são incrementadas de 1
tap1
 variando-se o incremento
• dinamicamente, pode-se
implementar um valor de
atraso variável
Geber Ramalho & Osman Gioia - UFPE
8
1
tap2
7
2
N
6
5
O
4
3
19
Efeitos de atraso fixo
 2 Tipos de atraso: fixo ou variável
• Atraso fixo pode ser pequeno, médio e longo e gera
efeitos como ecos e duplicação
• Atraso variável gera efeitos como flanging, phasing,
chorus
 Atraso fixo pequeno: D < 10ms
• introduz anomalias na resposta em freqüência
• D = algumas amostras, funciona como filtro passa
baixas FIR
• 0,1ms < D < 10ms, funciona como um filtro pente
Geber Ramalho & Osman Gioia - UFPE
20
Efeitos de atraso fixo
 Atraso fixo médio: 10 ms < D < 50ms
• cria ambiência e dá ilusão de aumento da intensidade
• cria efeito de duplicação “doubling”, pois sinal atrasado
e original se fundem
DDL
tempo
tempo
 Atraso fixo longo: D > 50ms
• cria ecos
• Observação: ecos múltiplos podem ser criados
realimentando-se o circuito
DDL
Geber Ramalho & Osman Gioia - UFPE
tempo
tempo
21
Efeitos de atraso variável
 Circuito
 Efeito “avião”: filtro pente sanfona
Geber Ramalho & Osman Gioia - UFPE
22
Efeitos de atraso variável
 Parâmetros
•
•
•
•
velocidade das variações (freqüência do LFO)
profundidade das variações (amplitude do LFP)
forma de onda do LFO (senoidal, triangular, ...)
atraso central D
D
Geber Ramalho & Osman Gioia - UFPE
23
Efeitos de atraso variável
 Flanging (0ms < D < 20ms)
• muito cancelamento devido ao filtro pente, que
vira uma “sanfona”
• nome: polegar na borda (flange) do carretel da fita
do gravador de rolo
http://www.youtube.com/watch?v=NAqQvs_WXs8&feature=related
 Chorus (D > 20 ms)
• ouve-se a cópia do som, como se fosse um “coro”
• é um tipo de efeito de duplicação mais realista
http://www.youtube.com/watch?v=zmN7fK3fKUE&feature=related
Geber Ramalho & Osman Gioia - UFPE
24
Flanging x Phasing
 Mesma classe de efeito mas obtida de forma
diferente
 Flanging:
• atraso variável independente da freqüência da entrada
• Cria muitos vales que seguem o padrão filtro-pente
Geber Ramalho & Osman Gioia - UFPE
25
Efeitos de atraso variável
 Phasing:
• atraso variável dependente da freqüência da entrada
(não lineridade do passa tudo).
• Cria poucos vales. Por isso, soa mais suave que o
flanging
http://www.youtube.com/watch?v=rpdFZ5VDGDs
Geber Ramalho & Osman Gioia - UFPE
26
Reverberação
 História
• Anos 60: Manfred Shoeder, da Bell Labs, implementou
os primeiros algoritmos de reverberação
 Um reverberador
• filtro com resposta ao impulso que se assemelha à
resposta de uma sala
predelay
Geber Ramalho & Osman Gioia - UFPE
27
Reverberação
 O efeito de Reverberação divide-se em 3 partes
• som direto
• primeiras reflexões
– pode ser simulado com uma DDL “batida” em diferentes
pontos
• reverberação fusionada (fused reverberation)
– precisa de mais densidade do que uma DDL pode
prover
– a sua implementação pode ser feita a partir de dois
filtros básicos: filtros pente e/ou filtros passa tudo
 É desejável...
• manipular cada uma das 3 partes da reverberação de
forma relativamente independente, além do pre-delay
Geber Ramalho & Osman Gioia - UFPE
28
Filtro Pente IIR
g
×
entrada
amplitude
Reverberação c/ filtros pente
D
+
saída
Resposta ao impulso
D 3D 5D ...
tempo
 Comentário
• quando atraso < 10ms o efeito restringi-se
basicamente à resposta em freqüência
• quando atraso > 10ms, cria-se uma séries de ecos
igualmente espaçados que decaem exponencialmente
• Tempo que leva para saída cair 60dB
– decayTime = (60 - g)  loopDelay
onde g (dB) e loopDelay = D/taxa de amostragem (s)
Geber Ramalho & Osman Gioia - UFPE
29
Reverberação c/ filtros passa-tudo
g
x[n]
+
g
×
1-g2
D
×
×
+
y[n]
amplitude
Filtro Passa
Tudo IIR
D
g2 Resposta ao impulso
g3
g4
3D
g5
g6
5D ...
tempo
-g
 Comentários
• quando o tempo de atraso é longo (5-100 ms), cria-se
uma séries de ecos igualmente espaçados que decaem
exponencialmente
Geber Ramalho & Osman Gioia - UFPE
30
E aí?
 Resumo
• tanto o passa tudo quanto o pente são filtros que
podem gerar múltiplos ecos, mas como gerar a
reverberação fusionada?
 Solução
• conectar vários filtros
• conexão em paralelo: soma dos ecos
• conexão em série: multiplicação dos ecos
– mais eficiente, porém menor controle
• Shoeder propôs dois esquemas de conexão
Geber Ramalho & Osman Gioia - UFPE
31
Esquema: pente + passa tudo
entrada
 Pentes em paralelo para evitar
anomalias no espectro. Um
compensa o efeito do outro
 Passatudo em série para evitar
anomalias na resposta de fase.
Um compensa o efeito do outro
Pente
1
Pente
2
Pente
3
Pente
4
+
Passa
tudo 1
Passa
tudo 2
Saída
reverberada
Geber Ramalho & Osman Gioia - UFPE
32
Esquema: só passa tudo
entrada
 Cada passa tudo gera 4 ecos
audíveis, o que implica que este
esquema gera 1024 ecos
 Dica geral
• A característica do som dependerá
da escolha do tempo de atraso e
ganho de cada unidade de
reverberação
• melhor escolher tempos de atraso
primos entre si para que os ecos
coincidam o mínimo possível
Passa
tudo 1
Passa
tudo 2
Passa
tudo 3
Passa
tudo 4
Passa
tudo 5
Saída
reverberada
Geber Ramalho & Osman Gioia - UFPE
33
Alguns Parâmetros da reverberação
 Tipo de sala: pode ser hall, chamber, plate ou gate
 Tamanho: tempo de atraso entre as unidades de
reverberação
 Predelay: tempo até a reverberação começar
 Atraso de entrada: inverte a relação causa-efeito
(reverberação aparece antes do sinal
 Tempo de reverberação: tempo de decaimento
 Difusão: densidade do eco
 Mix: razão entre entrada e saída
Geber Ramalho & Osman Gioia - UFPE
34
Pitch shifting
& Time stretching
Geber Ramalho & Osman Gioia - UFPE
35
Alterações em altura e tempo
 Seria útil alterar a altura (pitch) da
voz e intrumentos...
• para corrigir “desafinações”
• criar efeitos
 Seria útil ajustar durações de sinais de áudio
para casarem em intervalos de tempo
determinados
 Fluxo de mídia em tv
Geber Ramalho & Osman Gioia - UFPE
36
Reamostragem (resampling)
 Um sinal amostrado em uma freqüência pode ser
reamostrado
http://www.youtube.com/watch?v=67UlfiEd6mk
Geber Ramalho & Osman Gioia - UFPE
37
Reamostragem (resampling)
 Sub-amostragem (Downsampling)
• Para reduzir a amostragem de um fator M, pega-se
apenas as m-ésimas amostras do sinal.
 Sobre-amostragem (Upsampling)
• Para aumentar a amostragem de um fator L, adicionase L-1 zeros entre duas amostras e depois filtra-se o
sinal com uma passa baixa (equivalente a interpolar)
 Mix
• Para reduzir de um fator M/L (racional), faz uma sobreamostragem de L seguida de uma sub-amostragem
de M
Geber Ramalho & Osman Gioia - UFPE
38
Alterações em altura e tempo
 Problema da Reamostragem
• a mudança na altura está associada à mudança na
duração
 Time stretch
• processo que mudar a duração de um sinal de áudio
sem alterar a sua altura
 Pitch Shift
• processo que muda a altura do sinal de áudio sem
afetar a duração
• Pitch correction: Ao invés de aplicar o mesmo “desvio”
em todo o sinal, altera nota por nota para se adequar
ao tom escolhido
Geber Ramalho & Osman Gioia - UFPE
39
Time stretch
 Como muda a duração sem mudar o pitch?
 No domínio do tempo (pouco usado)
• Overlap Add Method e Synchronized Overlap Add
Method: Divide o sinal em quadros pequenos que são
eliminados e depois o sinal é interpolado
Geber Ramalho & Osman Gioia - UFPE
40
Time stretch
 No domínio da frequencia: Phase vocoder
• Converte sinal do tempo para o domínio da freqüência,
modifica amplitudes e fases, e reconverte para o
domínio do tempo
• Basicamente altera o número de ciclos de freqüências
componentes de um sinal, sem mudar quais são as
freqüências.
• Introduz algumas anomalias (reverberação)
http://www.youtube.com/watch?v=O3_ihwhjHUw
Geber Ramalho & Osman Gioia - UFPE
41
Pitch shift
 Como muda a altura sem mudar a duração?
• Muda a duração do sinal e depois reamostra
 Nem todos os métodos funcionam bem em todo
tipo de sinal e há limitações nos desvios (de pitch
e de tempo) que eles podem fazer
• Orquestra: 5 semitons (limite de pitch shift) e 30%
(limite de tempo)
• Instrumento monofônico: uma oitava e 200% do tempo
Geber Ramalho & Osman Gioia - UFPE
42
Referências
 Pohlman, Ken. (1995) Principles of Digital Audio. McGraw
Hill, 3rd Edition
 http://www.dspdimension.com/admin/time-pitch-overview/
 http://www.soundonsound.com/sos/mar06/articles/qa0306_
1.htm
 http://www.geofex.com/Article_Folders/phasers/phase.html
 Maranhão, Suzana (2006). Ajuste Elástico em Tempo de
Exibição para Fluxos de Áudio Comprimido. Diss. de
mestrado. PUC-RJ
 http://en.wikipedia.org/wiki/Audio_timescalepitch_modification
Geber Ramalho & Osman Gioia - UFPE
43
Download

process2