dsp y aplicaciones gadib.ppt
TRANSCRIPT
-
7/25/2019 DSP y aplicaciones GADIB.ppt
1/43
CONCEPTOS BSICOS PDS, APLICACIONESCONCEPTOS BSICOS PDS, APLICACIONESEN MATLAB Y DSP.EN MATLAB Y DSP.
Autor:Autor:Mauricio Sebastin CaggioliMauricio Sebastin CaggioliGADIB: Grupo de Anlisis, Desarrollo e InvestigacionesGADIB: Grupo de Anlisis, Desarrollo e Investigaciones
Biomdicas.Biomdicas.
oviembre !""#oviembre !""#
-
7/25/2019 DSP y aplicaciones GADIB.ppt
2/43
$ndice$ndice
Introduccin
Muestreo y conceptos bsicos.Actividades en MATLAB
Convolucin.
Actividades en MATLAB
Sistemas FI e IIActividades en MATLAB
Teor!a bsica "#S
Actividades en MATLAB
ImplementacinFI e II con coe$icientes calculados en MATLAB
"ro%ramacin en el&it'(S)AC
'*emplo retardo
-
7/25/2019 DSP y aplicaciones GADIB.ppt
3/43
Introducci%n al &DS.Introducci%n al &DS.+Se,al- Funcin ue porta in$ormacin acerca del estado ocomportamiento de un sistema.
+Matemticamente- las se,ales se representan como $unciones de una o
ms variables.+La variable independiente de dic/a representacin puede ser continua
o discreta.+Las se,ales en tiempo continuo estn de$inidas sobre un tiempo
continuo0+Las se,ales en tiempo discreto estn de$inidas sobre un con*unto
discreto de valores y0 por consi%uiente0 sern representadas porsucesiones o vectores ue son como las tratadas en MATLAB.+Las se,ales di%itales son auellas ue tanto el tiempo0 como la
amplitud son discretas. )ay ue notar bien esta di$erencia entre se,ales
di%itales y slo discretas.
-
7/25/2019 DSP y aplicaciones GADIB.ppt
4/43
Introducci%n al &DS.Introducci%n al &DS.+'n el caso de sistemas procesados con microprocesadores0 microcontroladores0 #S"0
etc la discreti1acin o cuanti$icacin de las amplitudes se deber a la cantidad de bitscon ue puedo representar cada amplitud.+La venta*a del tratamiento di%ital de se,ales con los elementos descriptos
anteriormente es ue la implementacin de sistemas muy complicados de reali1ar en
$orma anal%ica se trans$orma en al%o rutinario de pro%ramacin para un tratamiento
de este tipo.+Cualuier cambio en el sistema ser variar al%2n parmetro del pro%rama0 en cambio
en $orma anal%ica si%ni$ica cambiar componentes0 ue la mayor!a de las veces
resulta tedioso y a veces imposible.+La mayor!a de las se,ales pueden ser di%itali1adas y tratadas di%italmente0 e3cepto
auellas ue ten%an un anc/o de banda o $recuencia muy alta tal ue no se pueda
conse%uir un oscilador para reali1ar el muestreo correspondiente 4de por los menos eldoble del anc/o de banda o $recuencia m3ima de la se,al5.
VOLVER
-
7/25/2019 DSP y aplicaciones GADIB.ppt
5/43
Muestreo ' conceptosMuestreo ' conceptos
bsicos.bsicos.
6 4t5 6 4n5 ) 4n5 7 4n5 7 4t5
Fs
t 8 n 9 Fs
F $
-
7/25/2019 DSP y aplicaciones GADIB.ppt
6/43
Muestreo ' conceptosMuestreo ' conceptos
bsicos.bsicos.+Frecuencia de muestreo 4Fs5
+Frecuencia discreta $ 4 $ : ;..Ts 8 > 9 Fs
> 8 Fs.T 8 Fs 9 F
1 / N = f = F / Fs
Como Fs = ?.F0 como m3imo $ 8 F 9 ?.F 8 ;. D "ciclos9"ciclos 8 "ciclos 9 cant. de muestras totales.+ esumiendo ten%o ue dividir el valor ue est en Matlab por la cantidad de
muestras para saber la $recuencia discreta y multiplicar por Fs si necesito conocer la
$recuencia continua. La se%unda mitad de las %r$icas de los espectros Pest de msQ
ya ue me muestra el contenido $recuencial para $=@9?0 al%o ue en la realidad no lo
ten%o por la tasa de >yuist 4Fs=8?F 8= $:8@9?5.
-
7/25/2019 DSP y aplicaciones GADIB.ppt
22/43
Actividad *.*#.Actividad *.*#.Actividad @.@
Se tiene una se,al senoidal de @ )1 con ruido aleatorio0 Fs 8 @;;; )1. #ibu*ar la se,al y su espectro de
amplitud. Filtrar el ruido lo me*or posible sin usar tcnicas de dise,o de $iltros.
c!"ar a!!;
s=1000;$=0:1/s:10-1/s;
x=s%n(2*%*1*$);
=x'03*rann(s%7"($));
n=1:!"n#$h(6);f%!$ro6(n)=0; n=5:12;f%!$ro6(n)=1; + f=0001 10000 mu"s$ras =& "n 10 +(10/10000=0001) $"n#o !a comon"n$"
f%!$ro6(10000-n)=1;
f%!$ron=r"a!(%ff$(f%!$ro6));
s"na!f=conv(f%!$ron,);
su!o$(2,1,1),!o$((1:000));
su!o$(2,1,2),!o$(s"na!f(1:000));
-
7/25/2019 DSP y aplicaciones GADIB.ppt
23/43
Actividad *.*#.Actividad *.*#.
0 1000 2000 3000 4000 5000 6000 7000 8000-2
-1
0
1
2
0 1000 2000 3000 4000 5000 6000 7000 8000-1
-0.5
0
0.5
1
+'ste $iltrado es e$ectivo pero el problema es ue /4n5
posee muc/os valores 4@;;;;5. "or esto /ay tcnicas para
el dise,o de $iltros ms e$ectivas. 'ste $iltro as! dise,ado
tiene una implementacin no recursiva y es FI.
-
7/25/2019 DSP y aplicaciones GADIB.ppt
24/43
Actividad *.*1.Actividad *.*1.Actividad @.@
eali1ar el mismo $iltro anterior0 slo ue /4n5 ten%a ?; valores0 y no @;;;;. Sacar conclusiones porue el
$iltrado no es tan bueno. Implementar con la1os $or ue es cmo se implementar!a en un sistema
microprocesado.
n=1:20;f%!$ro(n)=0;
f%!$ro(1)=1;f%!$ro(20)=1;
f%!$ron=r"a!(%ff$(f%!$ro)); s"na!f=conv(f%!$ron,); su!o$(2,1,1),!o$((1:5000));
su!o$(2,1,2),!o$(s"na!f(1:5000));
0 1000 2000 3000 4000 5000-2
-1
0
1
2
0 1000 2000 3000 4000 5000-2
-1
0
1
2
-
7/25/2019 DSP y aplicaciones GADIB.ppt
25/43
Actividad *.*1.Actividad *.*1.La se,al $iltrada no es tan buena porue al tener ?; valores la $recuencia discreta ms c/ica ue puede
tener es @9?; 8 ;.;
-
7/25/2019 DSP y aplicaciones GADIB.ppt
26/43
(eor0a bsica &DS. Actividades(eor0a bsica &DS. Actividades
en MA()AB.en MA()AB.
+'*emplo - btener coe$icientes FI e II para modeli1ar
retardo.+'*emplo
-
7/25/2019 DSP y aplicaciones GADIB.ppt
27/43
23emplo *.23emplo *.+Ejemplo 1.
"ara un circuito C serie0 /allar c para entradas escaln0 impulso0 y senoidal utili1ando
convolucin 4implementacin FIR5 y las /erramientas de Matlab para /allar tales respuestas.
+89"m!os " convo!uc%on "n c%rcu%$os
+"9"m!o 1: c!cu!o " !a $"ns%n "n "! < "n un c%rcu%$o < con una
$"ns%n "
+"n$raa "sca!nc!"ar a!!;sms $ s;
r=1;c=1;
+
-
7/25/2019 DSP y aplicaciones GADIB.ppt
28/43
23emplo *.23emplo *.+
-
7/25/2019 DSP y aplicaciones GADIB.ppt
29/43
Conclusiones 23emplo *.Conclusiones 23emplo *.
Au! se ve una di$erencia en las amplitudes y es debido a ue0 lue%o de reali1ar la convolucinde las se,ales0 se debe multiplicar este resultado por Ts0 o dividir por la $recuencia de
muestreo-
#iscreti1ando y anali1ando en una muestra 4en un instante5-
Si y 8=
'n ese intervalo los / y 3 son constantes0 entonces para calcular la inte%ral de$inida ueda-
's decir se debe multiplicar al resultado de la convolucin con Ts 4@9Fs5 y tambin normali1ar
los coe$icientes /4n5.
( ) ( ) =
txhty D54
=tkD ttn =D ( ) ( )tknxtkhtkytk
tk
= +
D54DD5D4
5D@4
D
=
=
==@
;
@
;
54D54D5D544D5D4D54M
k
M
k
knxkhTstknxtkhtny
23 l #23 l #
-
7/25/2019 DSP y aplicaciones GADIB.ppt
30/43
23emplo #.23emplo #.+Ejemplo 3.
Teniendo la $uncin trans$erencia )4s5 8 I4s59i4s5 de un circuito C serie obtener su s!mil en trans$ormada
( utili1ando la trans$ormada bilineal. Comparar la respuesta al impulso de )4s5 y )415. #e )415 obtener los
$actores a4&5 y b4&5 4implementacin IIR5 y convolucionar con un escaln. Comparar esta respuesta con ele*emplo @.
+@ransformaa B%!%n"a!
+Eamos a usar !a func%n $ransf"r"nc%a " un f%!$ro asa a!$o, "s "c%r
s/s'1
c!"ar a!!;r=1;c=1;fs=100;
n=[1];
=[r*c 1];
s%s=$f(n,)
f%#ur"(1),o"(s%s);
[nu "]=%!%n"ar(n,,fs);
[h 6]=fr"7(nu,",25D); +r"s "n fr"cu"nc%a "! s%s$"ma "n F
f%#ur"(2),!o$(6,as(h));
s%s7=$f(nu,",fs)
f%#ur"(3);su!o$(311),!o$(as(h)),!a"!(C"s "n fr"cC);
su!o$(312),%mu!s"(s%s),!a"!(C"s a! %mu!so G(s)C);su!o$(313),%mu!s"(s%s7),!a"!(C"s a! %m G(7)C);
23 l #23 l #
-
7/25/2019 DSP y aplicaciones GADIB.ppt
31/43
23emplo #.23emplo #.+
-
7/25/2019 DSP y aplicaciones GADIB.ppt
32/43
23emplo 1.23emplo 1.Ejemplo 4.
btener los coe$icientes FI e II para modeli1ar retardo-
La trans$ormada inversa de Laplace de e3p4sDt;5 es un impulso unitario en t;0 por lo tanto /4n5
sera un vector con todos ceros0 e3cepto en el valor 4DTs se%undos5 donde uiero ue se retrase.
fs=100,
h(1:40)=0;h(41)=1; +"$aro " 40 mu"s$ras * 001 s"# = 04 s"#$=0:1/fs:1-1/fs;
v%=s%n(2*%*2*$);
sa!%a=conv(v%,h);
su!o$(211),!o$($,v%),!a"!(C8n$raaC);
su!o$(212),!o$($,sa!%a(1:!"n#$h(v%))),!a"!(C8n$raa r"$araaC);
5;454 ttxty = ;DD5454 tsesXsY =
0 0.2 0.4 0.6 0.8 1-1
-0.5
0
0.5
1
Entrada
0 0.2 0.4 0.6 0.8 1-1
-0.5
0
0.5
1
E
ntrada
retardada
23 l +23emplo +
-
7/25/2019 DSP y aplicaciones GADIB.ppt
33/43
23emplo +.23emplo +.Ejemplo 5.
btener coe$icientes para una implementacin II a partir de los coe$icientes de una implementacin FI.
Suponer ue )4s5 es tal ue /4t58 e3p4t5sin4t5cos4?DpiD@;Dt5. Comparar las respuestas en $recuencia
)415 con los coe$icientes FI e II.
$$=0:1/100:3;
h="x(-$$)'s%n($$)'cos(2*%*10*$$);
$=0:1/100:10;
[hh,66]=fr"7(h,1,100);
f%#ur"(1),su!o$(211),!o$(as(hh));
+Ear%ar !os o!os c"ros v"r como var%a !a r"s "n fr"c con !a
or%#%na!
[%%r,a%%r]=%nvfr"7(hh,66,D,D)
[hh%%r,66%%r]=fr"7(%%r,a%%r,100);
su!o$(212),!o$(as(hh%%r))
v%=s%n($);
f%#ur"(2),su!o$(211),!o$(f%!$"r(h,1,v%))s%s=$f(%%r,a%%r);
f%#ur"(2),su!o$(212),!o$(f%!$"r(%%r,a%%r,v%))
23emplo +23emplo +
-
7/25/2019 DSP y aplicaciones GADIB.ppt
34/43
23emplo +.23emplo +.
0 20 40 60 80 1000
100
200
300
0 20 40 60 80 1000
50
100
150
200
250
0 200 400 600 800 1000 1200-400
-200
0
200
400
0 200 400 600 800 1000 1200-100
-50
0
50
100
150
VOLVER
Implementaci%n -I e II con coe4icientesImplementaci%n -I e II con coe4icientes
-
7/25/2019 DSP y aplicaciones GADIB.ppt
35/43
Implementaci%n -I e II con coe4icientesImplementaci%n -I e II con coe4icientescalculados con MA()AB.calculados con MA()AB.
=
=@
;
54D5454M
k
knxkbny
=
=@
;
D5454M
k
kzkbzH
==
+=M
k
N
k
knxbkknykany;@
54D54D5454
=
=
+
=N
k
k
M
k
k
zka
zkb
zH
@
;
D54@
D54
54
FI 4$uncin y $iltro tipo reme15
II 4$uncin y $iltro tipo yuleUal&5
-
7/25/2019 DSP y aplicaciones GADIB.ppt
36/43
23emplo .23emplo .Ejemplo 6.
#ise,o de $iltros di%itales dando como parmetros la amplitud para las di$erentes $recuencias normali1adas
4@8Fs9?5. Calcular los coe$icientes de un $iltro FI y los de un II si Fs8@;; )10 $c@8 @J.JJ )1 y $c? 8?. )1. "robar con una se,al de entrada utili1ando este $iltro.
+
-
7/25/2019 DSP y aplicaciones GADIB.ppt
37/43
23emplo .23emplo .Ejemplo 6.
#ise,o de $iltros di%itales dando como parmetros la amplitud para las di$erentes $recuencias normali1adas
4@8Fs9?5. Calcular los coe$icientes de un $iltro FI y los de un II si Fs8@;; )10 $c@8 @J.JJ )1 y $c? 8?. )1. "robar con una se,al de entrada utili1ando este $iltro.
+J%s"Ho "! f%!$ro K (100 co"f%c%"n$"s)
c!"ar G 6$;
h=r"m"7(100,f,m);
[G,6$]=fr"7(h,1,150);
f%#ur"(3),su!o$(311),!o$(6$/%*fs/2,as(G)),!a"!(CKm!"m"n$ac%on KC);
+Lara a!%car "! f%!$ro an$"r%or "f%n%o or a a x s" hac":
+
-
7/25/2019 DSP y aplicaciones GADIB.ppt
38/43
23emplo .23emplo .
0 0.5 1 1.5 2 2.5 3
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
-
7/25/2019 DSP y aplicaciones GADIB.ppt
39/43
23emplo .23emplo .
0 5 10 15 20 25 30 35 40 45 50
0
0.5
1
1.5
Im
plem
entacion
IIR
0 0.5 1 1.5 2 2.5 3
-1
-0.5
0
0.5
1
0 5 10 15 20 25 30 35 40 45 50
0
0.5
1
1.5
Im
plem
entacionFIR
0 0.5 1 1.5 2 2.5 3
-1
0
1
0 0.5 1 1.5 2 2.5 3
-1
0
1
VOLVER
-
7/25/2019 DSP y aplicaciones GADIB.ppt
40/43
&rogramaci%n en el 5it S6AC.&rogramaci%n en el 5it S6AC.9DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9
9D
9DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9
9D A#S"?@;J3 System e%ister bit de$initions D9Vinclude :de$?@;J;./=
Vinclude :?@;J;./=
Vinclude :si%nal./=
Vinclude :sport./=
Vinclude :macros./=
Vinclude :mat/./=
Vinclude :$ilters./=
Vinclude :stdio./=
Vinclude :conio./= 99para el &b/it45
9D #MA C/ain pointer bit de$initions D9
Vde$ine C"W"CI ;3?;;;; 9D "ro%ramControlled Interrupts bit D9Vde$ine C"WMAF ;3@$$$$ 9D alid memory address $ield bits D9
Vde$ine SetI"4addr0 val5 4D 4int D5 addr5 8 4val5
Vde$ine RetI"4addr5 4D 4int D5 addr5
9DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9
Vde$ine >KMWTA"S @;;;
$loat pm coe$$sG>KMWTA"SH 8
X
Vinclude Y$ir./Y
Z
$loat dm stateG>KMWTA"S@H
int dm opcion 99eli*o entre ruido o codec
9DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9
V
-
7/25/2019 DSP y aplicaciones GADIB.ppt
41/43
&rogramaci%n en el 5it S6AC.&rogramaci%n en el 5it S6AC./**********************************************************/
/* */
/* ."r%a! or$ r"c"%v" J? com!"$" */
/* */
/**********************************************************/vo% sr0Mass"r$"( %n$ s%#Mnum )
N
f!oa$ f%!$"rM%nu$;
%f (oc%on==1) //s% !a oc%on "s 1, "n$onc"s !a "n$raa "s "! co"c, s%no "s ru%o
f%!$"rM%nu$ = rxMuf[1];
"!s"
f%!$"rM%nu$ = ran() O 0x00003fff; //aca "s$ !a "n$raa " ru%o
%f (oc%on==3)
$xMuf[1]=rxMuf[1];
"!s"
// %!$"r sam!" an ou$u$
tx_buf[1] = fir( filter_input, &coeffs[0], &state[0], (int)NUM_TA! )"
tx_buf[#] = tx_buf[1]" //r%n$f(PEa!or: +f: P,f%!$"rM%nu$);
//f%=fo"n(Ps"na!$x$P,Pa'P);
//fr%n$f(f%,P+fP,$xMuf[1]);
//fc!os"(f%);
Q
-
7/25/2019 DSP y aplicaciones GADIB.ppt
42/43
&rogramaci%n en el 5it S6AC.&rogramaci%n en el 5it S6AC.9DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9
void main 4 void 5
X
int i
int 3
puts4Y[n Bienvenido al pro%rama de prueba de S)ACY5
puts4Y[n Y5
puts4Y[n [t 'li*a opcin- Y5
scan$4Y\iY0]opcion5
99print$4Y[n pcin ele%ida- \iY0opcion5
99 Initiali1e state array $or FI $ilter.
$or4 i8; i:>KMWTA"S@ i 5 stateGiH 8 ;.;
99 Initiali1e some S)AC re%isters.
initW?@&45
99 eset t/e Codec.
setW$la%4 S'TWFLAR;0 CLWFLAR 5 9D "ut C#'C into 'S'T D9
$or4 38; 3:;3$$$$ 3 5 9D )old C#'C in 'S'T D9
setW$la%4 S'TWFLAR;0 S'TWFLAR 5 9D elease C#'C $rom 'S'T D9
99 Con$i%ure S)AC serial port.
setupWsports45
99 Send setup commands to C#'C.
sendW@ONWcon$i%Wcmds45
& i% l 5i S6AC
-
7/25/2019 DSP y aplicaciones GADIB.ppt
43/43
&rogramaci%n en el 5it S6AC.&rogramaci%n en el 5it S6AC. 99 Turn on t/e timer.
timerWon45
99 Loop $orever. $or45
X
i$ 4&b/it45 8 ;5 99en cualuier momento puedo interrumpit presionando una tecla
X
puts4Y[n In%rese nuevamente una opcion- Y5
scan$4Y\iY0]opcion5
Z
idle45
ZZ
9DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9
99 'nd o$ $ile bp.c .
9DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9
Compilacin
#21 -KR%nc!u" -o f%!$ro21 f%!$roc R!%ha
Ba*arlo al #S" desde #S
s"$ as0=0,23,5,1
Rh21 -0 f%!$ro21