UNIVERSITÀ DEGLI STUDI DI PARMA
FACOLTÀ DI INGEGNERIA
Corso di Laurea in Ingegneria delle Telecomunicazioni
FILTRAGGIO DI SEGNALI AUDIO SU
PIATTAFORMA DSP MEDIANTE ALGORITMO DI CONVOLUZIONE FFT PARTIZIONATA
Tesi di Laurea di:
Christian Giottoli
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionata algoritmo di convoluzione FFT partizionata
Parma, Parma,
3
ARGOMENTO ARGOMENTO
Implementazione su scheda DSP di un nuovo sistema di filtraggio real-time di segnali audio
OBIETTIVO OBIETTIVO
Effettuare filtraggi utilizzando risposte
all’impulso (IR) dell’ordine di 100.000 samples
100.000 samples (@48Khz) sono circa 2 sec.
Valore tipico di IR di ampi spazi chiusi: teatri, chiese, ...
DSP e CONVOLUZIONE DSP e CONVOLUZIONE
Alla base del filtraggio fra segnali audio e filtri digitali (risposte all’impulso) sta la semplice formulazione matematica di convoluzione
1
0
) ( )
( )
( N
j
j h j
i x i
y
DSP Analog Devices 21161N
y:=0;
FOR n:=0 TO N-1 DO
y:= y + a[n]·x[n];
Multiply and ACcumulate
Operazione ottimizzata su DSP Eseguita in un solo ciclo macchina
Clock core 100 Mhz
Limite teorico 2000 MAC fra samples (@48Khz)
FILTRARE IN FREQUENZA?
FILTRARE IN FREQUENZA?
Esistono algoritmi efficienti per calcolare la DFT (FFT) Conviene effettuare il filtraggio in frequenza:
x(n) FFT X(k)
X(k) H(k) Y(k)
y(n) IFFT
Difetti
Soluzione
•Prima acquisizione, poi filtraggio
•FFT di un numero troppo elevato
Algoritmi di Overlap: Overlap and Add, Overlap and Save x(n) h(n)
y(n)
OVERLAP AND SAVE OVERLAP AND SAVE
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionata algoritmo di convoluzione FFT partizionata
Parma, Parma,
7
Soluzione Difetti
Overlap and Save Partizionato
• Tempo di latenza eccessivo
• Problemi di gestione memoria interna
OVERLAP AND SAVE PARTIZIONATO OVERLAP AND SAVE PARTIZIONATO
1° blocco 2° blocco 3° blocco 4° blocco
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionata algoritmo di convoluzione FFT partizionata
Parma, Parma,
9
OVERLAP AND SAVE PARTIZIONATO (2) OVERLAP AND SAVE PARTIZIONATO (2)
• Riduzione tempo di latenza
• Miglior sfruttamento processore
• 1 FFT di M punti sostituita da P FFT ognuna di L punti
• Miglior ripartizione carico computazionale
• Maggior flessibilità nello scegliere lunghezza IR
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionata algoritmo di convoluzione FFT partizionata
Parma, Parma,
11
SIMULAZIONI MATLAB SIMULAZIONI MATLAB
Convoluzione (Matlab)
Overlap Save Part.
(Matlab) Filtro digitale
Stream di ingresso
X
Overlap Save Part. (DSP) X
X
PING PONG BUFFER PING PONG BUFFER
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionata algoritmo di convoluzione FFT partizionata
Parma, Parma,
FFT[A]
Filter[0] X
Computation circular buffer
A0 A1 A2 A3
FFT[B]
B0+A1 B1+A2 B2+A3 B3
13
ELABORA ELABORA
A0 A1 A2 A3
Filter[1] X Filter[2] X Filter[3] X
B0 B1 B2 B3
From input_buffer
IFFT[A]
To output_buffer
IFFT[B]
To output_buffer
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionata algoritmo di convoluzione FFT partizionata
Parma, Parma,
15
EFFICIENZA EFFICIENZA
• FFT 8192 punti
• Latenza 8192/48000 = 0,17 sec
• TAPS 50% => Eff. MAX
27 blocchi * 4096 =
110592 punti
Obiettivo raggiunto !!
PROVE D’ASCOLTO PROVE D’ASCOLTO
4 riverberatori
2 stereodipoli (A,P)
Con 2 DSP è stato possibile comandare:
Registrazione anecoica: Risposta all’impulso:
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionata algoritmo di convoluzione FFT partizionata
Parma, Parma,
CONCLUSIONI CONCLUSIONI
17
Pagando un tempo di latenza pari a 0,17 sec.
Convoluzione con IR da 110592 samples (@48Khz, 8192 FFT, 50%taps, 27 blocchi)
SVILUPPI FUTURI SVILUPPI FUTURI
Aumentare la
geometria Interfacciare il DSP con
memorie esterne sulle quali salvare le risposte all’impulso dei vari teatri, chiese...