1 Geber Ramalho & Osman Gioia - UFPE
Implementação de filtros
Filtros FIR
Filtros IIR
2 Geber Ramalho & Osman Gioia - UFPE
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
3 Geber Ramalho & Osman Gioia - UFPE
Filtros IIR e FIR
Dois tipos principais de filtros• Finite Impulse Response (FIR)• Infinite Impulse Response (IIR)
+entrada saída
DFIR
+entrada saída
DIIR
4 Geber Ramalho & Osman Gioia - UFPE
Passa-Baixas FIR
f
a
Fa/2
1
×
×
+entrada saída
0,5
0,5
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
Freqüência de amostragem
5 Geber Ramalho & Osman Gioia - UFPE
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
×
×
-entrada saída
0,5
0,5
f
a
Fa/2
1
6 Geber Ramalho & Osman Gioia - UFPE
Filtro FIR geral
Equação:• y[n] = (a0 × x[n]) ± (a1 × x[n - 1]) ± ... (ai × x[n - i])
Circuito/algoritmo de filtro com j estágios
×
+/-
x[n]
× ×. . .
a0 a2 aj
. . .
y[n]
7 Geber Ramalho & Osman Gioia - UFPE
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
8 Geber Ramalho & Osman Gioia - UFPE
Aumento de estágios nos filtros FIR
Passa baixas FIR de 15 estagios Passa baixas FIR de 31 estagios
9 Geber Ramalho & Osman Gioia - UFPE
Filtro IIR simples
Equação: Filtro ETA (exponential time average)• 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
×
×
+x[n]
0,5
0,5
y[n] f
a
Fa/2
1
10 Geber Ramalho & Osman Gioia - UFPE
Filtro IIR geral
Equação• y[n] = (a0 × x[n]) + ... (am × x[n - M])
+/- b1 × y[n] +/- ... (bN × y[n - N])
ou simplesmente
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
M
i
N
jji jnybinxany
0 1
][][][
11 Geber Ramalho & Osman Gioia - UFPE
FIR x IIR
FIR IIR
Custo computacional
ruim bom
Linearidade da resposta de fase
bom ruim
Estabilidade bom ruim
12 Geber Ramalho & Osman Gioia - UFPE
Filtro de pente (comb filter)
+entrada saída
D
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
13 Geber Ramalho & Osman Gioia - UFPE
Filtro Passa Tudo
Idéia• não altera o espectro mas impõe mudança de fase
que depende da freqüência de x• percebe-se os ataques e decaimentos mais abruptos
Freqüência (Hz)
10
Delay (ms)
00 1000
14 Geber Ramalho & Osman Gioia - UFPE
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
×
+x[n] D
g
y[n]+×
- g
15 Geber Ramalho & Osman Gioia - UFPE
Efeitos de atraso de tempo
Efeitos com atraso (delay) fixo e variável
reverberadores
16 Geber Ramalho & Osman Gioia - UFPE
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-1 ms– no DDL, D > 1ms
×
×
+entrada saída
D
amplitude dosinal original
Amplitude dosinal atrasado
Tempo deatraso
tempo
ampl
itude
DDL
ampl
it ude
tempo
17 Geber Ramalho & Osman Gioia - UFPE
Implementando a DDL: fila circular
N
O
1
2
3
45
6
7
8
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 da próxima posição amostra
mais antiga O
Com esta técnica (único ponteiro - single tap)• implementa-se um atraso fixo, proporcional ao tamanho
da fila
Ciclo k + 1
O
1
2
3
45
6
7
8Ciclo k
tap
tap
18 Geber Ramalho & Osman Gioia - UFPE
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
variando-se o incremento• dinamicamente, pode-se
implementar um valor de atraso variável N
O
1
2
3
45
6
7
8tap1
tap2
19 Geber Ramalho & Osman Gioia - UFPE
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
20 Geber Ramalho & Osman Gioia - UFPE
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
Atraso fixo longo: D > 50ms• cria ecos• Observação: ecos múltiplos podem ser criados
realimentando-se o circuito
tempo
ampl
itude
DDL ampl
it ude
tempo
tempo
ampl
itude
DDL ampl
it ude
tempo
21 Geber Ramalho & Osman Gioia - UFPE
Efeitos de atraso variável
Efeito “avião”: filtro pente sanfona
Circuito
Bateria seca e c/ flanging
(flanger-ss1.wav)
22 Geber Ramalho & Osman Gioia - UFPE
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
23 Geber Ramalho & Osman Gioia - UFPE
Efeitos de atraso variável
Flanging (0ms < D < 20ms)• muito cancelamento devido ao filtro pente• nome: polegar na borda (flange) da fita de rolo
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
Profundidade = 3 ms e 6 ms (chorus-ss2.wav)
Progressão seca e com chorus (chorus-ss1.wav)
D = 1 ms e 4 ms (flanger-ss2.wav)
Profundidade = 2 ms e 6 ms (flanger-ss3.wav)
24 Geber Ramalho & Osman Gioia - UFPE
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
(reverb-ss1.wav)
25 Geber Ramalho & Osman Gioia - UFPE
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
26 Geber Ramalho & Osman Gioia - UFPE
+entrada saída
D×
g
tempo
ampl
itude
D 3D 5D ...
Reverberação c/ filtros pente
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)
Filtro Pente IIRResposta ao impulso
27 Geber Ramalho & Osman Gioia - UFPE
Reverberação c/ filtros passa-tudo
Comentários• quando o tempo de atraso é longo (5-100 ms), cria-se
uma séries de ecos igualmente espaçados que decaem exponencialmente
×
+x[n] D
g
y[n]+×
- g
×
1-g2
tempo
ampl
itude
D 3D 5D ...
gg2
g3
g4
g5
g6
Filtro PassaTudo IIR Resposta ao impulso
28 Geber Ramalho & Osman Gioia - UFPE
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
29 Geber Ramalho & Osman Gioia - UFPE
entrada
Pente1
Pente2
Pente3
Pente4
+
Passa tudo 1
Passa tudo 2
Saída reverberada
Esquema: pente + passa tudo
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
30 Geber Ramalho & Osman Gioia - UFPE
Esquema: só passa tudo
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
entrada
Passa tudo 3
Passa tudo 4
Saída reverberada
Passa tudo 1
Passa tudo 2
Passa tudo 5
31 Geber Ramalho & Osman Gioia - UFPE
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
32 Geber Ramalho & Osman Gioia - UFPE
Harmony Central
http://www.harmonycentral.com/Effects/effects-explained.html