informe final 1 labintro de tele

Upload: kevin-osorio-miranda

Post on 14-Oct-2015

47 views

Category:

Documents


0 download

TRANSCRIPT

Laboratorio 1 Introduccin a las Telecomunicaciones

UNIVERSIDAD NACIONALMAYOR DE SAN MARCOS(Universidad del Per, Decana de Amrica)

FACULTAD DE INGENIERA ELECTRNICA Y ELECTRCA

Procesamiento de seales y funciones peridicas en MatlabCurso :Lab. Introduccin a las Telecomunicaciones.Profesor: Ing. Wilbert ChavezEAP : Ing. De Telecomunicaciones.Integrantes : 10190167 Canelo Villafranqui, Jos 10190177 Gonzales Tinco, Donato 10190202Romero Vila, LuisPractica N11. Introduccin:

MATLAB nos permite analizar seales analgicas. Esto se debe a que la forma natural de representar una seal en MATLAB es definir una secuencia finita de valores mediante un vector fila. Por tanto, siendo estrictos, en MATLAB toda seal es discreta en tiempo, mientras que en amplitud puede ser discreta (cuantizada) o contina (aunque limitada por la precisin de los tipos numricos). No obstante, si los intervalos temporales entre valores son suficientemente pequeos y el rango temporal en el que se define la seal es suficientemente amplio, la secuencia de valores empleada para representar la seal y las operaciones realizadas para su anlisis proporcionan una buena aproximacin a los resultados tericos. En el caso ms simple y frecuente, los valores se toman en instantes equiespaciados, intervalo que no debe confundirse con el periodo de muestreo.

A partir de la serie de Fourier, es posible reconstruir una seal peridica. Cuanto mayor sea el nmero de armnicos utilizado en el desarrollo en serie, mejor ser la reconstruccin. Un parmetro importante en la reconstruccin de seales es la velocidad de convergencia, o lo que es lo mismo, la velocidad con la que los coeficientes de Fourier tienden a 0.

MATLAB est equipado con funciones especiales que nos van a permitir realizar un anlisis de Fourier de funciones definidas por un conjunto de valores discretos. Por ejemplo, el comando fft() nos permite obtener la transformada rpida de Fourier (fast Fourier Transform) de una secuencia de nmeros definida por el vector x. Por ejemplo:>> X=fft(x);Donde X es un vector de nmeros complejos ordenados desde k=0...N-1. Si queremos que sea ms eficiente en el clculo de la ffT, la longitud del vector x deber ser una potencia de 2. Podemos rellenar de ceros el vector x para que tenga la longitud apropiada. Esto se consigue automticamente haciendo:>> X=fft(x,N);Donde N es exponente de 2. Mientras ms largo sea x, ms fina ser la escala para la ffT. Debido a un fenmeno de plegamiento del espectro, slo la primera mitad de los puntos obtenidos son de utilidad. La funcin fftshift() reordena el vector X en orden creciente de frecuencia. Si X es el vector resultante de hacer una ffT, utilizando esta funcin reordenamos los puntos en funcin de la frecuencia.>> X=fftshift(X);A partir de la transformada de Fourier, es posible reconstruir la seal en el dominio del tiempo. El comando ifft() sirve para obtener la transformada inversa de Fourier de una serie de nmeros complejos:>> x=ifft(X)2. Objetivo:

Simular e investigar en forma experimental el procesamiento de seales usando los comandos e instrucciones del software Matlab, desarrollando los ejercicios propuestos en funcin de los ejercicios planteados.

3. Equipos y materiales:

Matlab Versin 4 y 5.3.-6.12 Pc Pentium II- actual Manual de Matlab.

4. Procedimiento:

1. Desarrolle en el programa principal del Matlab los siguientes ejemplos y anotar sus resultados.1.1 Funciones Matemticas:

x=sqrt(2)/2

x =0.7071

>> y=asin(x)

y = 0.7854

>>y_deg=y*180/pi

y_deg =45.0000

>> x=sqrt(3^2+4^2)

x = 5

>> y=rem(23,4)

y = 3

x=2.6,y1=fix(x9,y2=floor(x),y3=ceil(x),y4=rund(x); ( Incorrecto)

x=2.6,y1=fix(x),y2=floor(x),y3=ceil(x),y4=round(x); ( correcto)

x = 2.6000

y1 = 2

y2 = 2

y3 = 3

Fix(x) Redondea hacia ceroFloor(x) Redondea hacia menos infinitoCeil (x) Redondea hacia infinitoRound(x) Redondea hacia el entero mas prximo.

1.2 Nmeros complejos :

Ejercicio 1. Ecuacin general de 2do Grado de solucin real.

a=1; b=5;c=6

c = 6

>>x1=(-b+sqrt(b^2-4*a*c))/(2*a)

x1 = -2

>>x2=(-b-sqrt(b^2-4*a*c))/(2*a)

x2 =-3

>>a*x1^2+b*x1+c;

>>a*x2^2+b*x2+c;

Ejercicios 2 Ec. General de 2do Grado con solucin complejo

>> a=1; b=4;c=13;

>>x1=(-b+sqrt(b^2-4*a*c))/(2*a)

x1 =-2.0000 + 3.0000i

>>x2=(-b-sqrt(b^2-4*a*c))/(2*a)

x2 = -2.0000 - 3.0000i

>>a*x1^2+b*x1+c;

ans = 0

>>a*x1^2+b*x1+c

ans = 0

Ejercicio 3 Expresiones en Nmeros complejos

>> c1=1-2i

c1 = 1.0000 - 2.0000i

>> c2=3*(2-sqrt(-1)*3)

c2 =6.0000 - 9.0000i

>> c3=sqrt(-2)

c3 = 0 + 1.4142i

>> c4=6+sin(.5)*i

c4 =6.0000 + 0.4794i

>> c5=6+sin(.5)*jc5 = 6.0000 + 0.4794i

Ejercicio 4 forma polar , usando real, imag, abs y angle.

>> c1=1-2i

c1 = 1.0000 - 2.0000i

>> mag_c1=abs(c1)

mag_c1 = 2.2361

>> angle_c1=angle(c1)

angle_c1 =-1.1071

>> deg_c1=angle_c1*180/pi

deg_c1 =-63.4349

>> real_c1=real(c1)

real_c1 = 1

>> imag_c1=imag(c1)

imag_c1 = -2

1.3 Construccin de arrays (escribir en el programa principal del matlab)

>> x=[0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]

Observacin existe un espacio entre cada palabra pi .#, caso contrario saldr un error

x = Columns 1through 9 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 Column 103.1416

>> y=sin(x)

y = Columns 1 through 9 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 Columns 10 through 11 0.3090 0.0000

Se puede accede a los elementos individuales del array anterior utilizando subndices como x(1) que es el primer elemento en x y x(3) el tercer elemento de x, igualmente y(5) el quinto elemento de y. Compruebe lo enunciado.

Por ejemplo hallaremos x(2)

>> x(2)

ans =0.6283

Para acceder a un tiempo de un bloque de elementos, se puede usar la notacin de dos puntos: tal como >>x(1:5), se debe obtener los elementos del array del primero al quinto. Compruebe el resultado.

>> x=(0:0.1:1)*pi

x = Columns 1 through 90 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133Columns 10 through 112.8274 3.1416

>> x=linspace(0,pi,11)

x =Columns 1 through 90 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 Columns 10 through 112.8274 3.1416

Ambos arrays son similares. Verificando los resultados anteriores.

2. Escribir en el block de notas o depurador del matlab los siguientes ejercicios y copiar en el programa principal, para graficar las funciones peridicas:

2.1 Grfica de funciones trigonomtricas.

>> x=linspace(0,4*pi,60);

>> y=sin(x);

>> figure(1)

>> plot(x,y)

>> z=cos(x);

>> figure(2)

>> plot(x,z,x,y)

>> figure(3)

>> plot(x,y,x,y,'*')

>> figure(4)

>> plot(y,z)

>> figure(5)

>> plot(x,y,x,2*y.*z,'--')

>> grid

>> xlabel('Variable independiente x')>> ylabel('Variable dependientes')>> title('2sen(x)cos(x)sen(2x)')

>> figure(6)

>> plot3(y,z,x),grid

2.2 Generacin de seales continuas.

La idea es multiplicar aquellos valores en un array que desea mantener por unos, y multiplicar los otros valores por ceros.

>> x=linspace(0,16,100);

>> y=sin(x);

>> z=(y>=0).*y;

>> z=z+0.5*(y> z=(x> plot(x,z)>> xlabel('x'),ylabel('z=f(x)')

>> title('Seal Discontinua')

2.3 Manipulacin de grficos.

Se puede aadir lneas a una grafica existente usando hold. Cuando fija hold on, Matlab no elimina las curvas o grfica existentes. Cuando se meten las nuevas ordenes plot. Fijando Hold off, se libera la ventana de la figura actual para nuevas grficas.

La orden Hold sin argumentos conmuta el valor de hold.

>> x=linspace(0,6*pi,60);

>> y=sin(x);

>> z=cos(x);

>> plot(x,y);

>> hold on

>> plot(x,z,'m')

>> hold off

2.4 Subdivisin de ventana de graficas (m, n, p)

Una ventana de figura, puede mantener ms de un conjunto de ejes. La orden subplot (m,n,p) subdivide la ventana de la figura actual en una matriz mxn de las reas de representacin grfica y escoge como activa el rea p-sima la subgrfica se numeran de izquierda a derecha a lo largo de la fila superior, luego la segunda fila.

>> x=linspace(0,6*pi,60);y=sin(x);z=cos(x);a=2*sin(x) .*cos(x);b=sin(x)./(cos(x) + eps);

>> plot(x,y,z,a)

Este comando lo pusimos para facilitar la funcin subplot, ya que sin este lanzaba error.

>> subplot(2,2,1)plot (x,y), axis ([0 4*pi -1 1]), title('sin(x)')

subplot(2,2,2)plot (x,z), axis ([0 4*pi -1 1]), title('cos(x)')

subplot(2,2,3)plot (x,a), axis ([0 4*pi -1 1]), title('2sin(x)cos(x)')

subplot(2,2,4)plot (x,b), axis ([0 4*pi -40 40]), title('tg=sin(x)/cos(x)')

5. Cuestionario:1. Cambie el valor de las variables en cada uno de los ejercicios y desarrolle nuevas aplicaciones, por lo menos 2 ejercicios adicionales de cada uno de los ejercicios planteados como ejemplo.Laboratorio 1 Introduccin a las Telecomunicaciones

Procesamiento de seales y funciones peridicas 22

%NUMEROS COMPLEJOS%ejercicio 1.a:>> a=1;b=5;c=3;>> x1=(-b-sqrt(b^2-(4*a*c)))/(2*a)x1 = -4.3028>> x2=(-b+sqrt(b^2-(4*a*c)))/(2*a)x2 =-0.6972x1 = -4.3028>> a*x1^2+b*x1+cans =0>> a*x2^2+b*x2+cans =0%ejercicio 1.b:>> a=1;b=-7;c=12;>> x1=(-b+sqrt(b^2-(4*a*c)))/(2*a)x1 =4>> x2=(-b-sqrt(b^2-(4*a*c)))/(2*a)x2 = 3>> a*x1^2+b*x1+cans =0>> a*x2^2+b*x2+cans = 0

%ejercicio 2.a :>> a=1;>> b=3;>> c=6;>> x1=(-b+sqrt(b^2-(4*a*c)))/(2*a)x1 =-1.5000 + 1.9365i>> x2=(-b-sqrt(b^2-(4*a*c)))/(2*a)x2 =-1.5000 - 1.9365i>> a*x1^2+b*x1+cans =0>> a*x2^2+b*x2+cans =0ejercicio 2.b:>> a=2;>> b=3;>> c=2;>> x1=(-b+sqrt(b^2-(4*a*c)))/(2*a)x1 =-0.7500 + 0.6614i>> x2=(-b-sqrt(b^2-(4*a*c)))/(2*a)x2 =-0.7500 - 0.6614i>> a*x1^2+b*x1+cans =0>> a*x2^2+b*x2+cans =0%ejercicio 3 expreciones en nmeros complejos:>> c1=2-3ic1 =2.0000 - 3.0000i>> c2=3*(3-sqrt(-1)*6)c2 = 9.0000 -18.0000i>> c3=sqrt(-5)c3 =0 + 2.2361i>> c4=3+sin(.6)*ic4 = 3.0000 + 0.5646i>> c5=4 +sin(.2)*ic5 =4.0000 + 0.1987i%ejercicio 4 forma polar, usando real, imag,abs y angle4.a:c1 =2.0000 - 3.0000i>> mag_c1=abs(c1)mag_c1 =3.6056>> angle_c1=angle(c1)angle_c1 = -0.9828>> deg_c1=angle_c1*180/pideg_c1 =-56.3099>> real_c1=real(c1)real_c1 = 2>> imag_c1=imag(c1)imag_c1 =-34.b:>> c2=3+5ic2 =3.0000 + 5.0000i>> mag_c2=abs(c2)mag_c2 =5.8310>> angle_c2=angle(c2)angle_c2 = 1.0304>> deg_c2=angle_c2*180/pideg_c2 =59.0362>> real_c2=real(c2)real_c2 =3>> imag_c2=imag(c2)imag_c2 =54.C:Construccion de arrays (escribir en el programa principal del matlab)>> x=[0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi .10*pi .11*pi pi] x = Columns 1 through 6 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 7 through 12 2.1991 2.5133 2.8274 0.3142 0.3456 3.1416>> y=sin(x)%verifique el array resultantey = Columns 1 through 6 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511

Columns 7 through 12 0.8090 0.5878 0.3090 0.3090 0.3387 0.0000>> %entrareamos a algunos arrays>> x(1) ans =0.3142>> x(2)ans =0.6283>> x(6) ans =1.8850>> x(1:11)ans = Columns 1 through 5 0.3142 0.6283 0.9425 1.2566 1.5708 Columns 6 through 101.8850 2.1991 2.5133 2.8274 0.3142 Column 11 0.3456>> x=(0:0.1:1)*pix = Columns 1 through 50 0.3142 0.6283 0.9425 1.2566 Columns 6 through 101.5708 1.8850 2.1991 2.5133 2.8274Column 113.1416>> x=linspace(0,pi,11)x = Columns 1 through 50 0.3142 0.6283 0.9425 1.2566 Columns 6 through 101.5708 1.8850 2.1991 2.5133 2.8274 Column 113.1416

Ejercicio 5:%grafica de funciones trigonomtricas5.a :>> x=linspace(0,4*pi,60);>> y=cos(x);>> figure(1)>> plot(x,y)

>> z=sin(x);>> figure(2)>> plot(x,z,x,y)

>> figure(3)>> plot(x,y,x,y,'*')>> figure(4)>> plot(y,z)

>> figure(5)>> plot(x,y,x,2*y.*z,'--')

>> grid>> xlabel('Variable independiente x')>> ylabel('variable dependiente')>> title('2sen(x)cos(x)sen(2x)')>> figure(6)>> plot3(y,z,x),grid

5.b:>> x=linspace(0,5*pi,80);>> y=tan(x);>> figure(1)>> plot(x,y)

>> z=acos(x);>> figure(2)>> plot(x,z,x,y)

>> figure(3)>> plot(x,y,x,y,'*')

>> figure(4)>> plot(y,z)

>> figure(5)>> plot(x,y,x,2*y.*z,'--')

>> grid>> xlabel('variable independiente x')>> ylabel('variable dependiente')>> title('2sen(x)cos(x)sen(2x)')>> figure(6)>> plot3(y,z,x),grid

Ejercicio 6: generacin de seales discontinuas:6.a:>> x=linspace(0,20,200);>> y=cos(x);>> z=(y>=0).*y;>> z=z+0.6*(y> z=(x> plot(x,z)

>> xlabel('x'),ylabel('z=f(x)')>> title('seal discontinua')

6.b:>> x=linspace(0,10,150);>> y=sin(x);>> z=(y>=1).*y;>> z=z+0.3*(y> z=(x> plot(x,z)

>> xlabel('x'),ylabel('z=f(x)')>> title('seal discontinua')

Ejercicio 7: manipulacin de graficos:7.a:>> x=linspace(0,7*pi,70);>> y=cos(x);>> z=sin(x);>> plot(x,y)

>> hold on>> plot(x,z,'m')

>> hold off7.b:x=linspace(0,8*pi,75);>> y=sin(x);>> z=cos(x);>> plot(x,y)>> hold on>> plot(x,z,'m')

>> holt off >> plot(x,z,'m')

>> hold off

Ejercicio 8: subdivicion de ventana de graficas (m,n,p)8.a:>> X=linspace(0,5*pi,70);>> y=sin(x);>> z=cos(x);>> a=2*sin(x).*cos(x);>> b=sin(x)./(cos(x)+eps);>> subplot(2,2,1)

>> plot(x,y),axis([0 4*pi -1 1]),title('sin(x)')

>> subplot(2,2,2)

>> plot(x,y),axis([0 4*pi -1 1]),title('cos(x)')

>> subplot(2,2,3)

>> plot(x,a),axis([0 4*pi -1 1]),title('2sin(x)cos(x)')

>> subplot(2,2,4)

>> plot(x,b),axis([0 4*pi -40 40]),title('tg=sin(x)/cos(x)')

8.b:>> X=linspace(0,9*pi,90);>> y=sin(x);>> z=cos(x);>> a=2*sin(x).*cos(x);>> b=sin(x)./(cos(x)+eps);>> subplot(2,2,1)

>> plot(x,y),axis([0 4*pi -1 1]),title('sin(x)')

>> subplot(2,2,2)

>> plot(x,y),axis([0 4*pi -1 1]),title('cos(x)')

>> subplot(2,2,3)

>> plot(x,a),axis([0 4*pi -1 1]),title('2sin(x)cos(x)')

>> subplot(2,2,4)

>> plot(x,b),axis([0 4*pi -40 40]),title('tg=sin(x)/cos(x)')

2. Explique las funciones de cada una de las principales instrucciones y comandos utilizados en los ejercicios anteriores.

Y_deg ( permiete convertir grados a radianes) Fix(x) (Redondea hacia cero) Floor(x)(Redondea hacia menos infinito) Ceil(redondea hacia el infinito) Round(Redondea hacia el entero ms prximo) Real( expresa la parte real de un nmero complejo) Imag(Expresa la parte imaginaria de un nmero complejo) Mag( expresa el mdulo del nmero complejo) Linspace(La instruccin linspace sirve para definir un intervalo y un nmero de puntos en ese intervalo.) Plot(Permite plotear u obtener la grfica en 2d 3d) Grid( Genera lneas horizontales y verticales en un grfico ) Subplot( Permite en una sola ventana mostrar varios grficos) Hold off( permite liberar ventanas de grficos para poder ser nuevamente usadas)3.Presentar su informe final con una breve introduccin terica, con el resultado de cada ejercicio planteado y sus modificaciones experimentales.A lo largo de todo el informe, hemos realizado es te punto.

6. Conclusiones: En este laboratorio hemos podido comprender los diferentes comandos y funciones que existen en el matlab, y que facilitan hacer diferentes operaciones como grficos de seales en el plano y en el espacio.

Hemos comprendido que en matlab podemos trabajar con nmeros reales, as como tambin se puede trabajar en funcin de nmeros complejos lo que es un gran beneficio, ya que las seales reales se aproximan a valores con nmeros complejos en gran parte. Pudimos graficar diferentes seales peridicas mediante el uso de diferentes ventanas y tambin todas las grficas en 1 sola ventana, lo cual permite una superposicin y comparacin de las diferentes seales que hemos analizado.

Hemos podido manipular las diferentes grficas establecidas en cierto intervalo generado por nosotros, ya sea modificndola de forma directa, mediante recortes, pausas o inicio de otras seales.

Debemos de recordar algo muy importante una funcin es multievaluada en el tiempo, mientras que una seal verdadera es evaluada una sola vez en el tiempo.