1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della...

16
1 Elaborazione numerica del suono La convoluzione e’ piu’ efficente se effettuata nel dominio della frequenza: Problem i Occorre acquisire l’intero segnale prima di poterlo filtrare se n è grande occorre una FFT che occupa molta memoria. x(n ) X(k ) FFT X(k) H(k) Y(k ) y(n ) IFF T x(n) h(n) y(n ) Soluzi one Algoritmo “Overlap & Save” Filtraggio FIR veloce mediante FFT Filtraggio FIR veloce mediante FFT

Transcript of 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della...

Page 1: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

1Elaborazione numerica del suono

La convoluzione e’ piu’ efficente se effettuata nel dominio della frequenza:

Problemi • Occorre acquisire l’intero segnale prima di poterlo filtrare• se n è grande occorre una FFT che occupa molta memoria.

x(n) X(k)FFT

X(k) H(k)

Y(k)y(n) IFFT

x(n) h(n)

y(n)

Soluzione • Algoritmo “Overlap & Save”

Filtraggio FIR veloce mediante FFTFiltraggio FIR veloce mediante FFT

Page 2: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

2Elaborazione numerica del suono

1. Effettuo una FFT del filtro h(n), zero-padded a N campioni e memorizzo:

2. Seleziono il blocco m-esimo di N punti dalla sequenza di ingresso x(n) :

in cui: n = 0,1,2,…,N-1

m = 1,2,3,…

N = FFT length

Q = IR length

1,...,1,0

1,...,1,0)()(

NQQn

Qnnhnh

111)( QQNmnxnxm

3N - 2Q + 12N - 2Q + 2

2N - Q + 1N - Q

N - 10

L’algoritmo “Overlap & Save”L’algoritmo “Overlap & Save”

FFT H(f)

Page 3: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

3Elaborazione numerica del suono

3. Moltiplico lo spettro del filtro H(f) per lo spettro FFT del blocco m.

4. Effettuo la trasformata inversa IFFT dello spettro risultante dal prodotto.

5. Butto via i primi (Q-1) punti del blocco ottenuto allo step 4

e appendo gli (N-Q+1) punti rimanenti alla sequenza di uscita y(n): y(n) = y1(n), y2(n),…, ym(n),…

y1 (n) n = Q – 1,…,N - 1y2 [n – (N – Q + 1)] n = N,…,2N - Q

. .

. .ym [n – (m – 1)(N – Q + 1)] n = (m – 1)(N – Q + 1) + (Q – 1),  …,(m – 1)(N – Q + 1) + (N – 1)

. .

. .

L’algoritmo “Overlap & Save”L’algoritmo “Overlap & Save”

Page 4: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

4Elaborazione numerica del suono

FFTN-point

FFTN-point

xIFFT

Xm(k)H(k)

Select lastN – Q + 1samples

Append to y(n)

xm(n)

h(n)

Convoluzione veloce FFT con Overlap & Save (Oppenheim & Shafer, 1975):

Problemi • Eccessiva latenza di processamento fra input ed output• Se N è grande, continua a servire molta memoria

Soluzione • Algoritmo “uniformly-partitioned Overlap & Save”

Schema a blocchi Overlap & SaveSchema a blocchi Overlap & Save

Page 5: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

5Elaborazione numerica del suono

La risposta all’impulso del filtro h(n) e’ anch’essa partizionata in blocchi di uguale dimensione (K punti)

1st block 2nd block 3rd block 4th block

Uniformly Partitioned Overlap & Save

Page 6: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

6Elaborazione numerica del suono

Ciascun filtro S e' convoluto, mediante Overlap & Save, ad un blocco di dati in ingresso lungo L punti. Ciascun blocco di input comincia L-K punti dopo il precedente.

Ciascun blocco della IR e' trattato come se fosse un filtro indipendente, esso viene zero-padded alla lunghezza di L campioni e trasformato FFT in modo da ottenere una collezione di P filtri spettrali S (nell'esempio P=3)

3rd seg.

1st seg. 2nd seg.

S1

Input stream (subdivided in partially overlapped blocks)

T-th (last) block of L points

FFT

T-th spectrum

X

(T-1)-th block of L points

Sum at index 0

1-st block of L points

FFT

1-st spectrum

X

IFFT

Select last L-K points

S1

Sum at index K

X S2

Sum at index 2K

X S3

2-nd block of L points

Sum at index i-L

3rd seg.

lth seg.

1st seg. 2nd seg.

1st data block

2nd data block

1st seg. 2nd seg. (T-1)-th data block

T-th data block

IFFT

Select last L-K points

IFFT

Select last L-K points

IFFT

Select last L-K points

Output stream

I risultati delle moltiplicazioni dei P filtri con le FFT degli ultimi P blocchi overlappati della sequenza di ingresso sono sommati in P accumulatori spettrali.

Uniformly Partitioned Overlap & Save

Alla fine si fa una IFFT del primo accumulatore, che fornisce un blocco di dati in uscita. Solo gli ultimi L-K punti di questo blocco vanno tenuti buoni.

Page 7: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

7Elaborazione numerica del suono

Sistema “lineare”, distorsioneSistema “lineare”, distorsione Occorre chiarire cosa si intende con un sistema “lineare”:

Per linearità si intende il fatto che sia valida la sovrapponibilità degli effetti: un sistema è lineare se, per qualsiasi coppia di segnali arbitrari A e B, l’uscita del sistema alimentato con il segnale somma A+B è identica alla somma delle uscite ottenute quando il sistema era alimentato rispettivamente con il solo segnale A o B

Quindi una eventuale alterazione della risposta in frequenza, o la presenza di ritardi, eco e riverbero, di per se non inficiano l’ipotesi di linearità. Tali effetti non sono dunque da considerare “distorsione” del segnale.

Per distorsione si intende infine una alterazione del segnale tale da non rispettare l’ipotesi di linearità – quindi ad esempio un sistema la cui risposta dipenda dall’ampiezza del segnale in ingresso (ad esempio un compressore o un espansore di dinamica, oppure un limiter) – La distorsione appare evidente allorchè si utilizza un segnale sinusoidale in ingresso, in quanto in uscita appaiono anche frequenze multiple di quella di partenza.

Page 8: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

8Elaborazione numerica del suono

Un sistema lineare con filtro di correzioneUn sistema lineare con filtro di correzione

Lettore CD Amplificatore Altoparlante Microfono

Sistema fisico (un ingresso, una uscita)

Filtro

Schema a blocchi

f() h() x’()

Filtering coefficients

System’s Impulse Response

(Transfer function)

Output signal

x()

Input signal

Page 9: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

9Elaborazione numerica del suono

Effetto combinato filtro+sistemaEffetto combinato filtro+sistema

Trattandosi di operatori lineari, si può scrivere:

lhjfix)i(y

Sovente lo scopo del filtro è quello di “equalizzare” la risposta del sistema, cosicchè il segnale in uscita y(t) sia identico al segnale in ingresso x(t). Affinchè ciò accada, deve risultare che:

ilhjf In cui (i) + la funzione Delta di Dirac (un solo campione di valore unitario preceduto e seguito da tanti zeri) – in tale modo il passaggio attraverso filtro+sistema si traduce in semplice ritardo nel tempo, senza altra alterazione del segnale

Page 10: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

10Elaborazione numerica del suono

Possibili strategie di progettazione Possibili strategie di progettazione di un filtro equalizzatoredi un filtro equalizzatore

Mourjopoulos – ricerca con il metodo dei minimi quadrati di una risposta all’impulso che, convoluta con quella del segnale di partenza, renda il risultato massimamente simile ad una Delta di Dirac (metodo molto lento ed ormai obsoleto)

Neely & Allen – si passa nel dominio della frequenza, e si crea un filtro tale che il modulo della sua risposta in frequenza compensi perfettamente la risposta in frequenza del sistema. Tale filtro viene generato con uno spettro fatto di soli valori reali (si dice che è “a fase lineare”), cosa che dà luogo, tornando nel dominio del tempo, ad una risposta all’impulso simmetrica.

Nelson & Kirkeby – si opera ancora nel dominio della frequenza, ma a ciascuna frequenza si prende il reciproco del valore complesso della funzione di trasferimento del sistema, aggiungendo a denominatore una piccola quantità positiva (parametro di regolarizzazione) onde limitare eventuali picchi troppo alti.

Page 11: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

11Elaborazione numerica del suono

Teoria del filtraggio inverso di KirkebyTeoria del filtraggio inverso di Kirkeby

Step 1 – si trasforma la risposta all’impulso del sistema tramite una operazione di FFT:

Step 2 – si fa il reciproco (complesso) a ciascuna frequenza:

HHConj

HConjF

hFFTH

Step 3 – si antitrasforma e si torna nel dominio del tempo:

FIFFTf

Parametro di regolarizzazione

Page 12: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

12Elaborazione numerica del suono

Parametro di regolarizzazione Parametro di regolarizzazione variabile con la frequenzavariabile con la frequenza

est

int

flow fhigh

f f

Il parametro di regolarizzazione variabile consente di avere un filtraggio inverso molto accurato nel campo di frequenze intermedie, evitando di sprecare potenza di calcolo e range dinamico per cercare di equalizzare le bande estreme a frequenza molto bassa e molto alta, ove comunque i trasduttori non rispondono.

Page 13: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

13Elaborazione numerica del suono

h()x()

Che differenza c’è fra un segnale, Che differenza c’è fra un segnale, un sistema ed un filtro?un sistema ed un filtro?

Nel dominio dei segnali campionati,

NON C’E’ NESSUNA DIFFERENZA! Infatti si tratta sempre di “files WAV”, che possiamo

ascoltare allo stesso modo.

y()

Input signal Impulse response (Transfer function)

Output signal

Page 14: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

14Elaborazione numerica del suono

h()x()

AuralizzazioneAuralizzazione

L’auralizzazione consiste nel riprodurre la sensazione sonora di un ambiente, mediante creazione di suoni udibili

La tecnica piu’ comunemente impiegata consiste nella convoluzione della risposta all’impulso dell’ambiente (misurata o calcolata a computer) con un brano di musica o di parlato anecoico

y()

Anecoic signal Room’s Impulse Response

Auralized signal

Ovviamente onde operare efficacemente la convoluzione con filtri che possono essere lunghi anche 300.000 campioni occorre impiegare il moderno algoritmo Uniformly Partitioned Overlap & Save

Page 15: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

15Elaborazione numerica del suono

Esempio di sistema con filtro equalizzatoreEsempio di sistema con filtro equalizzatore

Risposta all’impulso del sistema

Filtro inverso

Page 16: 1 Elaborazione numerica del suono La convoluzione e piu efficente se effettuata nel dominio della frequenza: Problemi Occorre acquisire lintero segnale.

16Elaborazione numerica del suono

Esempio di sistema con filtro equalizzatoreEsempio di sistema con filtro equalizzatore Convoluzione del filtro inverso con la risposta del sistema

Effetto del filtraggio equalizzatore

f() h() x’()

Filtering coefficients

System Output signal

x()

Input signal

z()

Filtered signal

Sistema non filtrato

System

x() h() y()

Input signal Output signal

f()

Filtering coefficients