430 likes | 648 Views
Implementação de filtros. Filtros FIR Filtros IIR. 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
E N D
Implementação de filtros Filtros FIR Filtros IIR
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
+ + D D IIR FIR entrada saída entrada saída Filtros IIR e FIR • Dois tipos principais de filtros • Finite Impulse Response (FIR) • Infinite Impulse Response (IIR)
a 0,5 1 × × + f entrada saída Fa/2 0,5 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 Freqüência de amostragem
0,5 × × - entrada saída 0,5 a 1 f Fa/2 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
× × × x[n] . . . a0 a2 aj . . . +/- y[n] 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
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
Aumento de estágios nos filtros FIR Passa baixas FIR de 15 estagios Passa baixas FIR de 31 estagios
a 1 × × + f Fa/2 0,5 0,5 x[n] y[n] 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
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
+ D entrada saída 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
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)
× + + × g D x[n] y[n] - g 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
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
Efeitos de atraso de tempo Efeitos com atraso (delay) fixo e variável reverberadores
× × + Tempo de atraso Amplitude do sinal atrasado D entrada saída amplitude do sinal original 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 > 10 ms amplitude amplitude DDL tempo tempo
8 8 1 1 7 7 2 2 Ciclo k 6 6 3 3 N 4 4 5 5 tap O O 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 + 1 tap
8 1 7 2 tap1 tap2 6 3 N 4 5 O 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
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
amplitude amplitude DDL tempo tempo amplitude amplitude DDL tempo tempo 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
Efeitos de atraso variável • Circuito • Efeito “avião”: filtro pente sanfona http://www.youtube.com/watch?v=NAqQvs_WXs8
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
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 • 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=NAqQvs_WXs8&feature=related http://www.youtube.com/watch?v=zmN7fK3fKUE&feature=related
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
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
predelay 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)
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
+ × g D amplitude entrada saída tempo D 3D 5D ... Reverberação c/ filtros pente Resposta ao impulso Filtro Pente IIR • 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) loopDelayonde g (dB) e loopDelay = D/taxa de amostragem (s)
× + + × × g g g2 1-g2 g3 amplitude D x[n] y[n] g4 g5 g6 tempo D 3D 5D ... - g 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 Filtro Passa Tudo IIR Resposta ao impulso
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
entrada + Pente 1 Pente 2 Pente 3 Pente 4 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
entrada Passa tudo 1 Passa tudo 2 Passa tudo 3 Passa tudo 4 Passa tudo 5 Saída reverberada 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
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
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
Reamostragem (resampling) http://www.youtube.com/watch?v=67UlfiEd6mk Um sinal amostrado em uma freqüência pode ser reamostrado
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, adiciona-se 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 sobre-amostragem de L seguida de uma sub-amostragem de M
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
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
Time stretch http://www.youtube.com/watch?v=O3_ihwhjHUw • 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)
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
Harmony Central • 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_timescale-pitch_modification