UNIVERSITÀ DEGLI STUDI DI PARMAFACOLTÀ 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
2
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 3
ARGOMENTOARGOMENTOImplementazione su scheda DSP di un nuovo sistema di filtraggio real-time di segnali audio
OBIETTIVOOBIETTIVO
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, ...
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 4
DSP e CONVOLUZIONEDSP 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
jhjixiy
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 DSPEseguita in un solo ciclo macchina
Clock core 100 Mhz
Limite teorico 2000 MAC fra samples (@48Khz)
5
FILTRARE IN FREQUENZA?FILTRARE IN FREQUENZA?
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionata
Parma,Parma,
29/04/200329/04/2003 6
Esistono algoritmi efficienti per calcolare la DFT (FFT)Conviene effettuare il filtraggio in frequenza:
x(n) X(k)FFT
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 SAVEOVERLAP AND SAVE
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionata
Parma,Parma,
29/04/200329/04/2003 7
Soluzione
Difetti
Overlap and Save Partizionato
• Tempo di latenza eccessivo
• Problemi di gestione memoria interna
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 8
OVERLAP AND SAVE PARTIZIONATOOVERLAP 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 partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 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
10
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 11
SIMULAZIONI MATLABSIMULAZIONI MATLAB
Convoluzione (Matlab)
Overlap Save Part. (Matlab)
Filtro digitale
Stream di ingresso
X
Overlap Save Part. (DSP)
X
X
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 12
PING PONG BUFFERPING PONG BUFFER
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003
FFT[A]
XFilter[0]
Computation circular buffer
A0 A1 A2 A3
FFT[B]
B0+A1 B1+A2 B2+A3B3
13
ELABORAELABORA
A0 A2 A3A1
XFilter[1] XFilter[2] XFilter[3]
B0 B2 B3B1
From input_buffer
IFFT[A]
To output_buffer
IFFT[B]
To output_buffer
14
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 15
EFFICIENZAEFFICIENZA
• FFT 8192 punti
• Latenza 8192/48000 = 0,17 sec
• TAPS 50% => Eff. MAX
27 blocchi * 4096 =
110592 punti
Obiettivo raggiunto !!
Filtraggio di segnali audio su piattaforma DSP mediante Filtraggio di segnali audio su piattaforma DSP mediante
algoritmo di convoluzione FFT partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003 16
PROVE D’ASCOLTOPROVE D’ASCOLTO
Stop
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 partizionataalgoritmo di convoluzione FFT partizionataParma,Parma,
29/04/200329/04/2003
CONCLUSIONICONCLUSIONI
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 FUTURISVILUPPI FUTURI
Aumentare la geometria Interfacciare il DSP con
memorie esterne sulle quali salvare le risposte all’impulso dei vari teatri, chiese...
presentazione diChristian Giottoli
FINE
Top Related