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]) ± ... (ai × x[n - i])
 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: 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
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
FIR
IIR
Custo
computacional
ruim
bom
Linearidade da
resposta de fase
bom
ruim
Estabilidade
bom
ruim
Geber Ramalho & Osman Gioia - UFPE
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 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
Delay (ms)
10
0
0
Geber Ramalho & Osman Gioia - UFPE
1000
Freqüência (Hz)
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
Efeitos de atraso de tempo
Efeitos com atraso (delay) fixo e variável
reverberadores
Geber Ramalho & Osman Gioia - UFPE
15
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
Tempo de Amplitude do
atraso
sinal atrasado
DDL
tempo
Geber Ramalho & Osman Gioia - UFPE
×
D
tempo
entrada
×
amplitude do
sinal original
+
saída
16
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 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
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
17
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
18
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
19
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
20
Efeitos de atraso variável
 Circuito
 Efeito “avião”: filtro pente sanfona
Bateria seca
e c/ flanging
(flanger-ss1.wav)
Geber Ramalho & Osman Gioia - UFPE
21
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
22
Efeitos de atraso variável
 Flanging (0ms < D < 20ms)
• muito cancelamento devido ao filtro pente
• nome: polegar na borda (flange) da fita de rolo
D = 1 ms e 4 ms (flanger-ss2.wav)
Profundidade = 2 ms e 6 ms (flanger-ss3.wav)
 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
Progressão seca e com chorus (chorus-ss1.wav)
Profundidade = 3 ms e 6 ms (chorus-ss2.wav)
Geber Ramalho & Osman Gioia - UFPE
23
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
(reverb-ss1.wav)
predelay
Geber Ramalho & Osman Gioia - UFPE
24
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
25
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
26
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
27
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
28
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
29
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
30
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
31
Harmony Central
 http://www.harmonycentral.com/Effects/effectsexplained.html
Geber Ramalho & Osman Gioia - UFPE
32
Download

Aula 9 - Processamento de Som 2