Cancelacion de Ruido con Filtro Adaptativo Adaptativo usando la Tarjeta TMS320C6713 DSK spino!a "arcia #ra$an
)uillca *u+e! Fredd$
Turpo Condori Dann$
%espino!a&'unsa(edu(pe
,-uillcan'unsa(edu(pe
dturpoc'unsa(edu(pe
Resumen — en el presente trabajo se muestra los resultados obtenidos al adaptar un filtro adaptativo para cancelación de ruido, primero mediante diagramas de bloques con Simulink, posteriormente mediante algoritmo LMS con MatLab, finalmente usamos la tarjeta TMS 32!"#$3 %S& para implementar en f'sico ( en tiempo real el algoritmo LMS) !on a(uda del programa *udacit( podemos visuali+ar las seales usadas en este trabajo, lo que nos a(udara a comprender mejor el comportamiento del filtro adaptativo) -alabras clave . filtro adaptativo, algoritmo LMS, Simulink, cancelacion de ruido, ruido, TMS32!"#$3 %S&))
. *TR/DCC.* Cuando las se+ales por ,iltrar son variantes en el tiepo o se encuentran en a%ientes u$ caticos4 los ,iltros de coe,icientes constantes t5picaente epleados no lo&ran ser su,icientes4 pues tra%ajan con ,recuencias ,ijas $4 coo su no%re lo indica con coe,icientes ,ijos( sto liita el su ,uncionaiento e ipide ue se tra%aje adecuadaente con la se+al( os ,iltros adaptativos periten4 de una ,ora din8ica $ con,ia%le la reduccin de se+ales no deseadas( stos ,iltros se con,i&uran para reducir a cero la se+al de error4 para ello se reuiere ue la salida del ,iltro sea i&ual a la se+al deseada $ ue se actualicen sus coe,icientes de una uestra a la si&uiente( .(
..( MARC/ T/R.C/ A.
algoritmo LMS
na caracter5stica iportante del MS es su siplicidad( *o reuiere edidas de las ,unciones de correlacin( Coprende dos procesos %8sicos( 9roceso de ,iltrado4 ue iplica el c8lculo de la salida &enerada por un ,iltro4 &eneracin de una estiacin del error coparando esta salida con la respuesta deseada( n proceso adaptativo4 ue reali!a el ajuste auto8tico de los coe,icientes del ,iltro de acuerdo con la estiacin del error( :1; B.
tarjeta TMS320C6713
9ara el desarrollo del presente tra%ajo se utili! una tarjeta TMS320C6713 DSK( a si&la DSK corresponde a Di&ital Starter Kit4 lo cual se re,iere a ue el procesador de se+ales
ricos4 etc(=4 lo ue trans,ora a la tarjeta DSK en una plata,ora de iniciacin $ e?perientacin para el desarrollo de aplicaciones de procesaiento de se+ales( a tarjeta est8 conectada al puerto S# del 9C corriendo con @indos( .nstalado en el 9C se encuentra el so,tare ue perite copilar4 ensa%lar4 depurar $ car&ar las aplicaciones de la tarjeta DSK( a tarjeta es controlada por el 9C4 ediante el pro&raa Code Coposer Studio
C.
diagrama de bloques para a!elaio! de ruido o! "iltro adaptati#o
Fi&ura 1( Dia&raa de %loues para cancelacion de ruido( :3;
l dia&raa de %loues de,ine las entradas $ salidas de un ,iltro adaptativo( l ruido <:?:n;= in&resa al ,iltro adaptativo $ coo resultado entre&a la se+al $:n;4 al copararse $:n; con la se+al de entrada suada con el ruido se &enera la se+al de error( a se+al de error se usa en co%inacin con los eleentos de ?:n; en el %loue del al&orito MS para &enerar la correcta actuali!acin de los coe,icientes del ,iltro en %ase a los criterios del al&orito( ...( B9R.M*TAC./*
A.
a!elaio! de ruido o! Simuli!$
Fi&ura 2( Dia&raa de %loues reali!ado con Siulin para ipleentar un ,iltro adaptativo para cancelacion de ruido(
ste dia&raa de %loues es parecido al dia&raa ostrado en la seccin ..C4 la se+al de error se ipleenta ediante el %loue ERando Source4 la se+al deseada se ipleenta con el %loue ESine @ave( Se -ace uso de %loues ETo Multiedia File con el cual se puede o%tener las se+ales en cada una de las etapas del proceso4 con esto se tendr8 una ejor coprensin del dia&raa de %loues( A continuacin ostrareos las se+ales o%tenidas en los %loues(
Fi&ura 3( Se+ales o%tenidas a partir de los %loues To Multiedia FileG a= se+al Ruido4 %= se+al deseada ESeno4 c= se+al ruido ,iltrado ERuidoFiltrad4 d= se+al as ruido ESasR $ e= se+al restaurada ESenRest(
a se+al ruido pasa por un ,iltro F.R para reali!ar un des,ase4 esto para siular las pertur%aciones ue se tienen al captar la se+al4 $a ue esto no es instant8neo(
Fi&ura H( Se+al ruido $ la se+al ruido des,asada4 se puede apreciar el des,ace ue su,re la se+al al pasarla por el ,iltro F.R(
a se+al ruido es suada con la se+al seno4 se puede notar el des,ase ue se tuvo al pasar la se+al ruido por el ,iltro F.R(
Fi&ura I( Se+al suada en el %loue ADD4 se co%inan la se+al ruido $ la se+al seno(
9or ultio teneos el %loue EMS F.TR4 en el cual se aplica el al&orito de adaptacin cu$a ,inalidad es o%tener los coe,icientes ue de,inen la naturale!a del ,iltro( stos coe,icientes se actuali!an con el tiepoJ4 &racias a esto a la salida podeos o%tener la se+al seno restaurada4 la cual su,ri la adicin de una se+al ruido(
Fi&ura 6( Coparacion de se+al seno ori&inal con la se+al seno restaurada(
n la ,i&ura 6 podeos notar ue la restauracin no es instant8nea4 $a ue los coe,icientes &enerados no son su,icientes para ue el ,iltro se adapte a la se+al( sto ejora con el paso de tiepo $a ue el al&orito lo&ra ajustar los pesos del ,iltro -asta ue el error cuadr8tico edio sea inii!ado(
Fi&ura 7( 9odeos notar coo la se+al restaurada ejora con el paso del tiepo( 9odeos decir ue apartir de 0(6 se&undos se epie!a a tener la se+al SenRest as identica a la se+al ori&inal( B.
%mpleme!taio! de algoritmo LMS e! MatLab
A continuacin se uestra un cdi&o en Mata% con el cual se ipleenta el al&orito MS4 para reali!ar cancelacin de ruido( ste si&ue la isa secuencia4 el dia&raa de %loues -ec-o en Siulin( %---------------------------------% Filtrado Adaptativo % Algoritmo LMS =) %---------------------------------close all; clear ; [s, fs] = audioread(Se!o(")#$av); fs s=s; =le!gt&(s) t='-;
t=t*fs; +='#(ra!d(,)-'#.); %S/0AL 1/ 23415 +=filter([' ' ' ' ' '#.],,+); %23415 1/SFASA15 / . 65S745/S d=s8+; %S3MA S/0AL MAS 23415 1/SFASA15 mu='#'; %L594:31 1/ 6AS5 $=; %L594:31 1/L F4L:25 $==; for m=$8- sum='; for i=$ sum=sum8$(i)+(m-i8); % F3745 1/L F4L:25 A1A6:A:45 e!d >(m)=sum; e(m)=d(m)->(m); %7AL73LA LA F3745 /2252 for i=$ $(i)=$(i)8"mue(m)+(m-i8); %A7:3AL4?A L5S 75/F 1/L F4L:25 e!d e!d figure() su@plot(",,); plot(t,s);grid;title(Seal origi!al); su@plot(",,"); plot(t,d);grid;title(Seal origi!al 8 2uido); %pause; figure(") su@plot(",,); plot(t,s);grid;title(Seal origi!al); su@plot(",,"); plot(t,e);grid;title(Seal restaurada); audio$rite(arc&Bvo
Fi&ura ( Codi&o Mata% para reali!ar al&orito MS para cancelacin de ruido(
9riero o%teneos un audio ediante la l5nea Eaudioread4 esta viene a ser nuestra se+al ori&inal4 el cual se uestra a continuacin(
Fi&ura L( Se+al &enerada con Audacit$ de una ,recuencia de 1K)! $ 0( de aplitud(
Se reali!a una trasposicin de la se+al4 para pasarla de coluna a vector( "eneraos un ruido de * t>rinos <isa diensin ue la se+al ori&inal=4 reali!aos un des,ase de I posiciones a esta se+al de ruido( Suaos la se+al ori&inal con la se+al ruido des,asado( Con los %ucles ,or deterinaos la ,uncin del ,iltro adaptativo4 &eneraos las actuali!aciones de los coe,icientes del ,iltro en cada iteracin4 para poder lo&rar el ajuste de los pesos del ,iltro -asta ue el error cuadr8tico edio sea inii!ado( A continuacin se uestra las se+ales o%tenidas con este pro&raa(
Fi&ura 10( Se+al ori&inal coparada con la se+al ruido(
Fi&ura 11( Se+al ori&inal coparaa con la se+al restaurada(
l cdi&o de Mata% nos &enera dos audios4 los cuales podeos visuali!arlos con Audacit$(
Fi&ura 12( Se uestra la evolucion de la se+al a traves del tiepo4 se aprecia coo va toando la ,ora de la se+al ori&inal( C. %mpleme!taio!
de algoritmo LMS e! CCS & tarjeta TMS320C6713 'S( e! tiempo real
9ara ipleentar el al&orito en CCS se uso el si&uiente cdi&o4 el cual esta %asado $ ,unciona de anera siilar al presentado en Mata%( #include "DSK6713_AIC23.h" //Libreria para conectar con el DSK Uint32 f!DSK6713_AIC23_#$%_&'K()* //Define frec +e ,-etreo //taa +e con0erencia #define beta .2 #define 3 // +e coeficiente #define L$4 //canal i5-ier+o //canal +erecho #define #I(4 1 float 89* //coeficient para el filtro a+aptati0o float +ela:89* //b-ffer +e la entra+a para el filtro a+aptati0o short o-tp-t* //0ariable +e ali+a short o-t_t:pe ! 1* //0ariable +e eleccion +e ali+a volatile union;unsigned int -int* short channel829* //IS# ; short i* float :n!? $!? +pl-n!? noie!*
AIC23_+ata.-int ! inp-t_a,ple=>* //entra+a +e 32bit +e a,bo canale +pl-n !=AIC23_+ata.channel8L$49>* //entra+a +e canal i5-ier+o ca,bia,o +eire+ //por +pl-n noie ! =AIC23_+ata.channel8#I(49>*//entra+a +e canal +erecho //+pl-n ! +eire+ @ noie* +ela:89 ! noie*
//-,a eal oriinal ,a r-i+o //r-i+o co,o entra+a para a+aptar el I# //=coeficiente>
for =i ! * i B * i@@> :n @! =8i9 +ela:8i9>*
//para calc-lar la ali+a a+apta+a I# //ali+a+el filtro a+aptati0o
$ ! =+pl-n> :n* for =i ! 1* i E! * i> ; 8i9 ! 8i9 @ beta$+ela:8i9* +ela:8i9 ! +ela:8i19* < if=o-t_t:pe !! 1> o-tp-t!==short>$>* else if=o-t_t:pe!!2> o-tp-t!==short>+pl-n>* o-tp-t_a,ple=o-tp-t>* return*
//"error" inal!=+@n>:n ca,bia,o +@n //por +pl- //para act-aliar lo coeficiente //act-aliar coeficiente +el filtro //act-aliar ,-etra +e entra+a //i la ban+era eta en 1 //,-etra la eal +e error //i la ban+era eta en 2 //,-etra la eal ,a el r-i+o //,-etra el re-lta+o e-nla ban+era
< void main=> ; short 4!* for =4 ! * 4 B 3* 4@@> ; 849 ! * +ela:849 ! *
< co,,_intr=>* while=1>*
//inicialia el b-ffer +e coeficiente +el //filtro //inicialia el b-ffer +e la ,-etra +e //entra+a //inicialia DSK? co+ec? FcGSH //b-cle infinito
<
Fi&ura 13( Codi&o ipletado en CCS(
l cdi&o ipleenta un ,iltro adaptativo con 30 coe,icientes4 ta%i>n posee una %andera con la cual se puede seleccionar si ostrar la se+al de error o la se+al de entrada as el ruido( Se ca%i el %eta
Fi&ura 1H( a &ra,ica superior es la se+al as ruido4 $ la in,erior es el ruido puro(
sto se ipleenta ediante una se+al est>reo ue se env5a a la tarjeta coo entrada( stas &ra,icas ,ueron toadas con Audacit$(
A continuacion ostraos los resultados o%tenidosG
Fi&ura 1I( Se+al ,iltrada o%tenida por la tarjeta DSK(
sta ia&en es la se+al ,iltrada4 o%tenida despu>s de correr el pro&raa(
C/*CS./*S
os al&oritos de adaptacin son al&oritos de optii!acin cu$a ,inalidad es o%tener los par8etros o coe,icientes ue deterinan la naturale!a del ,iltro( na se+al de audio o vo! se ve a,ectada en un entorno real4 dando lu&ar a una se+al copuesta por la se+al ori&inal con atenuacin4 este ,eneno &enera una inter,erencia de la se+al ori&inal( os ,iltros adaptativos nos periten disinuir esta inter,erencia a valores 5nios4 con la ,inalidad de o%tener la se+al ori&inal con la 5nia perdida de in,oracin( Se -a visto ue el al&orito MS es %astante sencillo de ipleentar ediante el so,tare Mat a% $a ue solo reuiere de dos %ucles E,or4 lo cual es de %astante a$uda para siular la respuesta deseada del ,iltro( n el so,tare Code Coposer Studio se reuiri de un %u,,er de alacenaiento para alacenar las entradas anteriores en tiepo real( )eos copro%ado e?perientalente el ,uncionaiento del ,iltro adaptativo con el al&orito MS teniendo resultados realente sorprendentes $a ue el ,iltro respondi de anera ideal( a cancin se escuc-a%a ejor a edida ue pasa%a el tiepo4 con esto deostraos la caracter5stica t5pica de este ,iltro de adaptarse con el tiepo coo lo vios en siulaciones reali!adas previaente en los so,tares ESiulin $ EMat a%( n un principio el valor de la ta!a de conver&encia utili!ado ,ue de %as8ndonos en el ejeplo li%ro EDi&ital Si&nal 9rocessin& and Applications it- t-e C6713 and C6H16DSK 0H716L007H de la p8&ina 2L3( ste radio de conver&encia no da%a los resultados esperados $ el ,iltro tarda%a %astante en lle&ar a una se+al de salida satis,actoria4 por este otivo auentaos li&eraente el valor de la ta!a de conver&encia a ( ste nuevo valor dio los resultados esperados $a ue el ,iltro tardo enos en adaptarse $ %otar la se+al sin ruido( a ventaja 8s &rande ue -eos notado en este tipo de ,iltros es ue no eliina una %anda de ,recuencias deterinada4 sino ue solo eliina el ruido o la se+al ue deseeos eliinar4 lo cual es u$ conveniente $a ue con esto evitaos el ries&o de perder in,oracin de la se+al ori&inal(
R FR*CS :1; Al&orito MS east Mean Suare( 9uede encontrarlo enG -ttpGNNp-$sionet(cps(uni!ar(esNOeduardoNdocenciaNtdsNli%ro-tlNls1(-t :2; Matias Pu+artu( .ntroduccion al Code Coposer Studio $ al DSK TMS320C6713( niversidad Tecnica Federico Santa Maria( Qalparaiso( 2013( :3; .n&( Ferrel Serruto( Apuntes de clase 7( niversidad *acional de San A&ustin( 2017( :H; Rulp- C-assain&( Di&ital Si&nal 9rocessin& and Applications it- t-e C6713 and C6H16DSK0H716L007H( @.(