implementação de filtros

43
Geber Ramalho & Osman Gioia - UFPE 1 Implementação de filtros Filtros FIR Filtros IIR

Upload: eamon

Post on 05-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 1

Implementação de filtros

Filtros FIR

Filtros IIR

Page 2: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 2

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

Page 3: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 3

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

Page 4: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 4

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

Page 5: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 5

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

Page 6: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 6

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]

Page 7: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 7

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

Page 8: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 8

Aumento de estágios nos filtros FIR

Passa baixas FIR de 15 estagios Passa baixas FIR de 31 estagios

Page 9: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 9

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

×

×

+x[n]

0,5

0,5

y[n] f

a

Fa/2

1

Page 10: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 10

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

][][][

Page 11: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 11

FIR x IIR

FIR IIR

Custo computacional

ruim bom

Linearidade da resposta de fase

bom ruim

Estabilidade bom ruim

Page 12: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 12

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

Page 13: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 13

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)

Page 14: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 14

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

Page 15: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 15

Filtro Passa Tudo

Idéia• não altera o espectro mas impõe mudança de fase

que depende da freqüência de x

Page 16: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 16

Efeitos de atraso de tempo

Efeitos com atraso (delay) fixo e variável

reverberadores

Page 17: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 17

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

×

×

+entrada saída

D

amplitude dosinal original

Amplitude dosinal atrasado

Tempo deatraso

tempo

ampl

itude

DDL

ampl

it ude

tempo

Page 18: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 18

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 do ponteiro (tap)

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

Page 19: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 19

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

Page 20: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 20

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

Page 21: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 21

Efeitos de atraso fixo

Atraso fixo médio: 20 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

Page 22: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 22

Efeitos de atraso variável

Efeito “avião”: filtro pente sanfona

Circuito

Page 23: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 23

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

Page 24: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 24

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=zmN7fK3fKUE&feature=related

http://www.youtube.com/watch?v=NAqQvs_WXs8&feature=related

Page 25: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 25

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

Page 26: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 26

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

flanginghttp://www.youtube.com/watch?v=rpdFZ5VDGDs

Page 27: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 27

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

Page 28: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 28

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

Page 29: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 29

+entrada saída

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

Page 30: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 30

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

Page 31: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 31

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

Page 32: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 32

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

Page 33: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 33

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

Page 34: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 34

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

Page 35: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

Pitch shifting & Time stretching

35

Page 36: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

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

36

Page 37: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

Reamostragem (resampling)

Um sinal amostrado em uma freqüência pode ser reamostrado

37http://www.youtube.com/watch?v=67UlfiEd6mk

Page 38: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

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

38

Page 39: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

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

39

Page 40: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

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

40

Page 41: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

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)

41

http://www.youtube.com/watch?v=O3_ihwhjHUw

Page 42: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE

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

42

Page 43: Implementação de filtros

Geber Ramalho & Osman Gioia - UFPE 43

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_timescale-pitch_modification