Implementao de filtros FIR Filtros IIR Geber Ramalho
Implementação de filtros FIR Filtros IIR Geber Ramalho & Osman Gioia - UFPE 1
Implementação de filtros n 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. . . n 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 n 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 n Equação • y[n] = (0, 5 × x[n]) + (0, 5 × x [n - 1]) n Comentário • equivalente a encontrar a média aritmética de pares de amostras subseqüentes • efeito: “amaciar” a forma de onda (passa-baixas) n 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 n Equação • y[n] = (0, 5 × x[n]) - (0, 5 × x [n - 1]) n Comentário • equivalente a enfatizar as diferenças entre pares de amostras subseqüentes • efeito: enfatizar altas freqüências (passa-altas) n Circuito/algoritmo 0, 5 1 × entrada a × - saída Fa/2 f 0, 5 Geber Ramalho & Osman Gioia - UFPE 5
Filtro FIR geral n Equação: • y[n] = (a 0 × x[n]) ± (a 1 × x[n - 1]) ±. . . (aj × x[n - j]) n Circuito/algoritmo de filtro com j estágios x[n] . . . a 0 × a 2 × aj . . . × +/y[n] Geber Ramalho & Osman Gioia - UFPE 6
Filtro FIR geral n A resposta do filtro dependerá de • quantidade de estágios do filtro (valor de j) • operações de adição ou subtração • coeficientes a 1, . . . , aj n 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 n Equação: Filtro ETA (exponential time average) • y[n] = (0, 5 × x[n]) + (0, 5 × y [n - 1]) n 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 n Circuito/algoritmo a 0, 5 x[n] × × + Geber Ramalho & Osman Gioia - UFPE 1 y[n] Fa/2 f 9
Filtro IIR geral n Equação • y[n] = (a 0 × x[n]) +. . . (am × x[n - M]) +/- b 1 × y[n] +/-. . . (b. N × y[n - N]) ou simplesmente n 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 Geber Ramalho & Osman Gioia - UFPE 11
Filtro de pente (comb filter) n Equação • y[n] = x[n] + x [n - D] (FIR) n 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]) n Circuito/algoritmo FIR entrada Geber Ramalho & Osman Gioia - UFPE D + saída 12
Filtro de pente (comb filter) n 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) • Como o atraso varia o pente vira uma “sanfona”, dando um efeito de varredura Geber Ramalho & Osman Gioia - UFPE 13
Filtro Passa Tudo n Equação • y[n] = (-g × x[n]) + x[n - D] + (g × y[n - D]) n Comentários • g é chamado de ganho • o deslocamento de fase depende logaritmicamente do atraso D (0 < D < freq. de amostragem) n Circuito/algoritmo g × x[n] + D + y[n] × -g Geber Ramalho & Osman Gioia - UFPE 14
Filtro Passa Tudo n 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 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 n 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 > 1 ms DDL amplitude Tempo de Amplitude do atraso sinal atrasado tempo Geber Ramalho & Osman Gioia - UFPE × D tempo entrada × amplitude do sinal original + saída 17
Implementando a DDL: fila circular n 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 n 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 n 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” n Para 2 taps: A cada ciclo • simultaneamente, duas amostras são lidas nas posições tap 1 e tap 2 • a nova amostra é escrita na posição O • todas as posições são incrementadas de 1 tap 1 8 n variando-se o incremento • dinamicamente, pode-se implementar um valor de atraso variável Geber Ramalho & Osman Gioia - UFPE 1 tap 2 7 2 N 6 5 O 4 3 19
Efeitos de atraso fixo n 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 n Atraso fixo pequeno: D < 10 ms • introduz anomalias na resposta em freqüência • D = algumas amostras, funciona como filtro passa baixas FIR • 0, 1 ms < D < 10 ms, funciona como um filtro pente Geber Ramalho & Osman Gioia - UFPE 20
Efeitos de atraso fixo n Atraso fixo médio: 10 ms < D < 50 ms DDL amplitude • cria ambiência e dá ilusão de aumento da intensidade • cria efeito de duplicação “doubling”, pois sinal atrasado e original se fundem tempo n Atraso fixo longo: D > 50 ms Geber Ramalho & Osman Gioia - UFPE DDL tempo amplitude • cria ecos • Observação: ecos múltiplos podem ser criados realimentando-se o circuito tempo 21
Efeitos de atraso variável n Circuito n Efeito “avião”: filtro pente sanfona Bateria seca e c/ flanging (flanger-ss 1. wav) Geber Ramalho & Osman Gioia - UFPE 22
Efeitos de atraso variável n 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 n Flanging (0 ms < D < 20 ms) • muito cancelamento devido ao filtro pente • nome: polegar na borda (flange) do carretel da fita do gravador de rolo D = 1 ms e 4 ms (flanger-ss 2. wav) Profundidade = 2 ms e 6 ms (flanger-ss 3. wav) n 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-ss 1. wav) Profundidade = 3 ms e 6 ms (chorus-ss 2. wav) Geber Ramalho & Osman Gioia - UFPE 24
Flanging x Phasing n Mesma classe de efeito mas obtida de forma diferente n 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 n 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 Geber Ramalho & Osman Gioia - UFPE 26
Reverberação n História • Anos 60: Manfred Shoeder, da Bell Labs, implementou os primeiros algoritmos de reverberação n Um reverberador • filtro com resposta ao impulso que se assemelha à resposta de uma sala (reverb-ss 1. wav) predelay Geber Ramalho & Osman Gioia - UFPE 27
Reverberação n 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 n É 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 3 D 5 D. . . tempo n Comentário • quando atraso < 10 ms o efeito restringi-se basicamente à resposta em freqüência • quando atraso > 10 ms, cria-se uma séries de ecos igualmente espaçados que decaem exponencialmente • Tempo que leva para saída cair 60 d. B – decay. Time = (60 - g) loop. Delay onde g (d. B) e loop. Delay = D/taxa de amostragem (s) Geber Ramalho & Osman Gioia - UFPE 29
Reverberação c/ filtros passa-tudo g x[n] + g × 1 -g 2 D × × + y[n] amplitude Filtro Passa Tudo IIR D g 2 Resposta ao impulso g 3 g 4 3 D g 5 g 6 5 D. . . tempo -g n 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í? n Resumo • tanto o passa tudo quanto o pente são filtros que podem gerar múltiplos ecos, mas como gerar a reverberação fusionada? n 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 n Pentes em paralelo para evitar anomalias no espectro. Um compensa o efeito do outro n 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 n Cada passa tudo gera 4 ecos audíveis, o que implica que este esquema gera 1024 ecos n 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 n Tipo de sala: pode ser hall, chamber, plate ou gate n Tamanho: tempo de atraso entre as unidades de reverberação n Predelay: tempo até a reverberação começar n Atraso de entrada: inverte a relação causa-efeito (reverberação aparece antes do sinal n Tempo de reverberação: tempo de decaimento n Difusão: densidade do eco n 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 n Seria útil alterar a altura (pitch) da voz e intrumentos. . . • para corrigir “desafinações” • criar efeitos n Seria útil ajustar durações de sinais de áudio paar casarem em intervalos de tempo determinados n Fluxo de mídia em tv Geber Ramalho & Osman Gioia - UFPE 36
Reamostragem (resampling) n Um sinal amostrado em uma freqüência pode ser reamostrado Geber Ramalho & Osman Gioia - UFPE 37
Reamostragem (resampling) n Sub-amostragem (Downsampling) • Para reduzir a amostragem de um fator M, pega-se apenas as m-ésimas amostras do sinal. n 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) n 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 n Problema da Reamostragem • a mudança na altura está associada à mudança na duração n Time stretch • processo que mudar a duração de um sinal de áudio sem alterar a sua altura n 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
n Pitch shift: como funciona? • Muda a duração do sinal e depois reamostra Geber Ramalho & Osman Gioia - UFPE 40
Time stretch Geber Ramalho & Osman Gioia - UFPE 41
n 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
Harmony Central n Pohlman, Ken. (1995) Principles of Digital Audio. Mc. Graw Hill, 3 rd Edition n http: //www. harmonycentral. com n http: //www. soundonsound. com/sos/mar 06/articles/qa 0306_ 1. htm n http: //www. geofex. com/Article_Folders/phase. html n Maranhão, Suzana (2006). Ajuste Elástico em Tempo de Exibição para Fluxos de Áudio Comprimido. Diss. de mestrado. PUC-RJ n http: //en. wikipedia. org/wiki/Audio_timescalepitch_modification n http: //en. wikipedia. org/wiki/Pitch_shift Geber Ramalho & Osman Gioia - UFPE 43
- Slides: 43