Informe 2 Matlab

19
UNIVERSIDAD POLITÉCNICA SALESIANA FACULTAD DE CIENCIAS TÉCNICAS ESCUELA DE INGENIERÍA ELÉCTRICA SEÑALES Y SISTEMAS INFORME # 2 Estudiante: Gabriel Salazar D. Nivel : Quinto Eléctrica Fecha : 11/07/2010

Transcript of Informe 2 Matlab

Page 1: Informe 2 Matlab

UNIVERSIDAD POLITÉCNICA SALESIANA

FACULTAD DE CIENCIAS TÉCNICAS

ESCUELA DE INGENIERÍA ELÉCTRICA

SEÑALES Y SISTEMAS

INFORME # 2

Estudiante: Gabriel Salazar D.

Nivel : Quinto Eléctrica

Fecha : 11/07/2010

Page 2: Informe 2 Matlab

TRANSFORMACIÓN DE LA VARIABLE INDEPENDIENTE

Implementar las siguientes funciones:

Función desplazamiento

function[y,n]= sigshift(x,m,n0)

n =m-n0; y=x;

Función inversión

function [y,n] = sigfold(x,n)

y = fliplr(x)

n=-fliplr(n)

EL comando fliplr gira un vector de derecha a izquierda, realizar el

siguiente ejemplo en el prompt.

Función escalamiento

function[y,n]= escale(x,m,p)

n =m*(1/p); y=x;

Función para sumar señales discretas

function[y,n]= sigadd(x1,n1,x2,n2)

%implementación de la función y =x1(n)+x2(n)

n = min(min(n1),min(n2)):max(max(n1),max(n2))

y1 =zeros(1,length(n))

y2 = zeros(1,length(n))

y1(find(((n>=min(n1))&(n<=max(n1))==1)))=x1

y2(find (((n>=min(n2))&(n<=max(n2))==1)))=x2

y = y1+y2

Page 3: Informe 2 Matlab

1. Para la señal de la figura obtener las siguientes transformaciones de

la variable independiente

a. X(t-2)

b. X(t+2)

c. X(-t)

d. X(2t)

Función a graficar

t=-5:0.001:5

x= stepcont(-2,-5,5)

plot(t,x)

a. Señal x(t-2)

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= sigshift(x,t,-2)

plot(t1,x1)

b. Señal x(t+2)

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= sigshift(x,t,2)

plot(t1,x1)

Page 4: Informe 2 Matlab

c. X(-t)

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= sigfold(x,t)

plot(t1,x1)

d. X(2t)

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= escale(x,t,2)

plot(t1,x1)

Page 5: Informe 2 Matlab

2. Utilizando el comando subplot dibujar en una sola grafica, utilizando

el comando title poner los títulos respectivos a cada grafica.

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= sigshift(x,t,-2)

subplot(2,2,1), plot(t1,x1);axis([-5 5 -1 2]);

title x(t-2)

grid on

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= sigshift(x,t,2)

subplot(2,2,2), plot(t1,x1);axis([-5 5 -1 2]);

title x(t+2)

grid on

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= sigfold(x,t)

subplot(2,2,3), plot(t1,x1);axis([-5 5 -1 2]);

title x(-t)

grid on

t=-5:0.001:5

x= stepcont(-2,-5,5)

[x1,t1]= escale(x,t,2)

subplot(2,2,4), plot(t1,x1);axis([-5 5 -1 2]);

title x(2t)

grid on

3. Crear una función denominada inversión, que permita invertir una

señal en el eje x, y luego elaborar un script para encontrar la señal –

x(-t) del ejemplo anterior.

function [y,n] = sigfoldi(x,n)

y = fliplr(-x)

n=-fliplr(n)

t=-5:0.001:5

Page 6: Informe 2 Matlab

x= stepcont(-2,-5,5)

[x1,t1]= sigfoldi(x,t)

plot(t1,x1)

grid on

4. Repetir el ejercicio 2 pero con una señal discreta

n=-5:1:5

x= stepseq(-2,-5,5)

n=-5:1:5

x= stepseq(-2,-5,5)

[x1,n1]= sigshift(x,n,-2)

stem(n1,x1)

n=-5:1:5

x= stepseq(-2,-5,5)

[x1,n1]= sigshift(x,n,2)

stem(n1,x1)

Page 7: Informe 2 Matlab

n=-5:1:5

x= stepseq(-2,-5,5)

[x1,n1]= sigfold(x,n)

stem(n1,x1)

n=-5:1:5

x= stepseq(-2,-5,5)

[x1,n1]= escale(x,n,2)

stem(n1,x1)

5. Suma de señales análogas

En ocasiones se desea construir una señal por tramos supongamos la

siguiente

Page 8: Informe 2 Matlab

Se utiliza para señales analógicas el siguiente script t1=0:0.01:1; % señal x1=t

y1= t1

t2=1.01:0.01:2 % señal x2= t

y2=2-t2

t = min(min(t1),min(t2)):0.01:max(max(t1),max(t2)) % determinacion de el rango en tiempo

t

y=[y1 y2] % union d elas dos señales

subplot(3,1,1), plot(t1,y1)

subplot(3,1,2), plot(t2,y2)

subplot(3,1,3), plot(t,y)

Para señales discretas se puede utilizar la función sigadd

6. Realizar las transformaciones en el tiempo de todos los ejercicios y

pruebas realizados en clase

7. Resolver el ejemplo 7.3 el libro Circuitos Eléctricos de Nilsson 7

edición, pagina 286 y realizar el gráfico en matlab de la señal x(t)=

función obtenida al resolver el ejercicio

DETERMINACION DE LA RESPUESTA NATURAL DE UN CIRCUITO

RC

El conmutador del circuito como se muestra

en la figura ha estado en posición x durante un largo periodo de tiempo. En

t=0, el conmutador se mueve instantáneamente a la posición y. Calcule

a. ;

b. ;

c.

d. La energía total disipada en la resistencia de

a. Puesto que el conmutador ha estado en la posición x durante un largo

periodo de tiempo, el condensador de se cargara hasta 100V,

siendo la tensión positiva en el terminal superior. Podemos sustituir

Page 9: Informe 2 Matlab

la red resistiva conectada al condensador en por una

resistencia equivalente de 8 .Asi, la constante de tiempo del

circuito es o 40 ms. Entonces

,

b. La forma mas fácil de calcular es observar que el circuito

resistivo forma un divisor de tensión entre los terminales del

condensador. Por tanto,

,

Esta ecuación es válida para porque es cero. Es decir, tenemos

un cambio instantáneo de tensión entre los terminales de la resistencia de

.

c. Calculamos la corriente ,

d. La potencia disipada en la resistencia de será

,

La energía disipada es

% Voltaje de salida % B= amplitud % a= valor del exponente % tiempo B=60; a=25; t=0:0.001:1; x=B*exp(-a*t); plot(t,x)

% Corriente de salida % B= amplitud % a= valor del exponente % tiempo B=60; a=25; t=0:0.001:1; x=B*exp(-a*t); plot(t,x)

Page 10: Informe 2 Matlab

8. Obtener

a. X(-t)

t=-5:0.001:5 B=1; a=25; t=0:0.001:1; x=B*exp(-a*t); [x1,t1]= sigfold(x,t) plot(t1,x1) title x(-t)

b. X(t-2)

t=-5:0.001:5 B=1; a=25; t=0:0.001:1; x=B*exp(-a*t); [x1,t1]= sigshift(x,t,-2) plot(t1,x1) title x(t-2)

Page 11: Informe 2 Matlab

c. X(-t+3)

t=-5:0.001:5 B=1; a=25; t=0:0.001:1; x=B*exp(-a*t); [x1,t1]= sigshift(x,-t,3) plot(t1,x1) title x(-t+3)

d. X(t/2)

t=-5:0.001:5 B=1; a=25; t=0:0.001:1; x=B*exp(-a*t); [x1,t1]= escale(x,t,1/2) plot(t1,x1) title x(t/2)

Page 12: Informe 2 Matlab

9. Visitar el siguiente enlace, descargar el programa y crear un ejemplo

propio que utilice todas las opciones

http://www.matpic.com/MATLAB/MATLAB_OOS.html

FUNCION OOS

function varargout = OOS(varargin)

% Begin initialization code gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @OOS_OpeningFcn, ...

'gui_OutputFcn', @OOS_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code

% --- Executes just before OOS is made visible.

function OOS_OpeningFcn(hObject, eventdata, handles, varargin)

set(gcf,'Color',[.5 1 .5]);

handles.t=-1:1/1000:1;

t=handles.t;

axes(handles.axes1)

plot(t,sin(2*pi*4*t),'LineWidth',1.5)

axis([-1 1 -1.5 1.5])

grid on

axes(handles.axes2)

plot(t,sin(2*pi*8*t),'LineWidth',1.5)

Page 13: Informe 2 Matlab

axis([-1 1 -1.5 1.5])

grid on

handles.out1=sin(2*pi*5*t);

handles.out2=sin(2*pi*8*t);

handles.out11=sin(2*pi*5*t);

axes(handles.axes3)

handles.result=handles.out1+handles.out2;

plot(t,handles.result,'LineWidth',1.5,'Color','r')

grid on

axis([-1 1 -2.5 2.5])

set(handles.amplitude,'Value',0.5);

set(handles.time,'Value',0.5);

grid on

% Choose default command line output for OOS

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes OOS wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = OOS_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on selection change in selector1.

function selector1_Callback(hObject, eventdata, handles)

% Hints: contents = get(hObject,'String') returns selector1 contents as cell

array

% contents{get(hObject,'Value')} returns selected item from selector1

v=get(hObject,'Value');

if v==1

%s1

handles.out1=sin(2*pi*5*handles.t);

elseif v==2

%c1

handles.out1=cos(2*pi*4*handles.t);

elseif v==3

%u1

handles.out1=ustep(2*pi*4*handles.t);

elseif v==4

%r1

handles.out1=uramp(handles.t);

elseif v==5

%p1

handles.out1=ustep(2*pi*4*(handles.t+.5))-ustep(2*pi*4*(handles.t-0.5));

end

Page 14: Informe 2 Matlab

axes(handles.axes1)

plot(handles.t,handles.out1,'LineWidth',1.5);

axis([-1 1 -1.5 1.5])

grid on

guidata(hObject,handles)

% --- Executes on selection change in selector2.

function selector2_Callback(hObject, eventdata, handles)

v=get(hObject,'Value');

axes(handles.axes2)

if v==1

%s1

handles.out2=sin(2*pi*5*handles.t);

elseif v==2

%c1

handles.out2=cos(2*pi*4*handles.t);

elseif v==3

%u1

handles.out2=ustep(2*pi*4*handles.t);

elseif v==4

%r1

handles.out2=uramp(handles.t);

elseif v==5

%p1

handles.out2=ustep(2*pi*4*(handles.t+.5))-ustep(2*pi*4*(handles.t-0.5));

end

plot(handles.t,handles.out2,'LineWidth',1.5);

axis([-1 1 -1.5 1.5])

grid on

guidata(hObject,handles)

% --- Executes on selection change in popupmenu3.

function popupmenu3_Callback(hObject, eventdata, handles)

axes(handles.axes3);

a=get(hObject,'Value');

t=handles.t;

if a==2

handles.result=handles.out1.*handles.out2;

handles.plot=plot(t,handles.result,'LineWidth',1.5,'Color','r');

else

handles.result=handles.out1+handles.out2;

handles.plot=plot(t,handles.result,'LineWidth',1.5,'Color','r');

end

axis([-1 1 -2.5 2.5])

grid on

% --- Executes on slider movement.

function amplitude_Callback(hObject, eventdata, handles)

f1=1.5*get(handles.time,'Value');

a1=1.5*get(handles.amplitude,'Value');

d1=get(handles.displacement,'Value');

set(handles.lcd1,'String',a1);

axes(handles.axes3)

v=get(handles.selector1,'value');

if v==1

Page 15: Informe 2 Matlab

handles.out11=a1*sin(2*pi*5*handles.t/f1+d1);

elseif v==2

handles.out11=a1*cos(2*pi*4*handles.t/f1+d1);

elseif v==3

handles.out11=a1*ustep(2*pi*4*handles.t/f1+d1);

elseif v==4

handles.out11=a1*uramp(handles.t/f1+d1);

elseif v==5

%p1

handles.out11=a1*(ustep(2*pi*4*(handles.t+f1*.5)+d1)-

ustep(2*pi*4*(handles.t-f1*.5)+d1));

end

plot(handles.t,handles.out11,'r','LineWidth',1.5);

axis([-1 1 -2.5 2.5])

grid on

% Update handles structure

guidata(hObject, handles);

% --- Executes on slider movement.

function time_Callback(hObject, eventdata, handles)

f1=1.5*get(handles.time,'Value');

a1=1.5*get(handles.amplitude,'Value');

d1=get(handles.displacement,'Value');

set(handles.lcd2,'String',f1);

axes(handles.axes3)

v=get(handles.selector1,'value');

if v==1

handles.out11=a1*sin(2*pi*5*handles.t/f1+d1);

elseif v==2

handles.out11=a1*cos(2*pi*4*handles.t/f1+d1);

elseif v==3

handles.out11=a1*ustep(2*pi*4*handles.t/f1+d1);

elseif v==4

handles.out11=a1*uramp(handles.t/f1+d1);

elseif v==5

%p1

handles.out11=a1*(ustep(2*pi*4*(handles.t+f1*.5)+d1)-

ustep(2*pi*4*(handles.t-f1*.5)+d1));

end

plot(handles.t,handles.out11,'r','LineWidth',1.5);

axis([-1 1 -2.5 2.5])

grid on

% Update handles structure

guidata(hObject, handles);

% --- Executes on slider movement.

function displacement_Callback(hObject, eventdata, handles)

f1=1.5*get(handles.time,'Value');

a1=1.5*get(handles.amplitude,'Value');

d1=get(handles.displacement,'Value');

set(handles.lcd3,'String',d1);

axes(handles.axes3)

v=get(handles.selector1,'value');

if v==1

handles.out11=a1*sin(2*pi*5*handles.t/f1+d1);

Page 16: Informe 2 Matlab

elseif v==2

handles.out11=a1*cos(2*pi*4*handles.t/f1+d1);

elseif v==3

handles.out11=a1*ustep(2*pi*4*handles.t/f1+d1);

elseif v==4

handles.out11=a1*uramp(handles.t/f1+d1);

elseif v==5

%p1

handles.out11=a1*(ustep(2*pi*4*(handles.t+f1*.5)+d1)-

ustep(2*pi*4*(handles.t-f1*.5)+d1));

end

plot(handles.t,handles.out11,'r','LineWidth',1.5);

axis([-1 1 -2.5 2.5])

grid on

% Update handles structure

guidata(hObject, handles);

% --- Executes on button press in mirror.

function mirror_Callback(hObject, eventdata, handles)

v=get(hObject,'Value');

if v==1

handles.t=sort(handles.t,'descend');

else

handles.t=sort(handles.t,'ascend');

end

axes(handles.axes3)

plot(handles.t,handles.out11,'r','LineWidth',1.5);

axis([-1 1 -2.5 2.5])

grid on

FUNCION USTEP

…………………………………..

function y=ustep(t,a)

% USTEP Unit Step Function.

%

% Y=URECT(T) generates a step function with u(0) = 1.

% Y=USTEP(T,A) generates a step function with u(0) = A.

%

% USTEP (with no input arguments) invokes the following example:

%

% % generate a DT rectangular pulse between n=3 and n=7

% >>n=0:12;

% >>yn=ustep(n-3) - ustep(n-8); % note n-8, not n-7

% >>dtplot(n,yn,'o') %plus other axis commands

%

% See Also: UDELTA, URAMP, URECT, TRI

if nargin==0,

help ustep

disp('Strike a key to see results of the example')

pause

nn=0:12;

yn=ustep(nn-3)-ustep(nn-8);

v=matver;

if v < 4, eval('clg');else,eval('clf');end

axis([0 12 0 1.5])

Page 17: Informe 2 Matlab

dtplot(nn,yn,'o')

axis([0 12 0 1.5])

hold off

return

end

if nargin == 1,

y=(t>0)+(t==0);

elseif nargin == 2,

y=(t>0)+a*(t==0);

elseif nargin > 2,

error('Too many input arguments');

end

…………………………………………..

FUNCION URAMP

function y=uramp(t)

% URAMP Unit Ramp Function.

%

% Y=URAMP(t) implements the ramp function r(t) = t*u(t)

%

% URAMP (with no input arguments) invokes the following example:

%

% % Plot a triangle between -1 and 1 with height 2

% >>t=-3:.05:3;

% >>yt=2*[uramp(t+1)-2*uramp(t)+uramp(t-1)];

% >>plot(t,yt),grid

%

% See Also: UDELTA, URECT, USTEP, TRI

if nargin==0,

help uramp

disp('Strike a key to see results of the example')

pause

t0=-3:.05:3;

yt=2*[uramp(t0+1)-2*uramp(t0)+uramp(t0-1)];

v=matver;

if v < 4, eval('clg');else,eval('clf');end

plot(t0,yt)

grid

return

end

if nargin == 1,

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

elseif nargin > 1,

error('Too many input arguments');

end

………………………………….

A continuación se va a sumar y a multiplicar dos funciones este caso un tren

de pulsos y una rampa.

SUMA

Page 18: Informe 2 Matlab

MULTIPLICACION

Seno mas tren pulso

SUMA

Page 19: Informe 2 Matlab

MULTIPLICACION

CONCLUSIONES:

Como se puede apreciar el Matlab es una herramienta muy

importante a la hora de realizar cualquier tipo de cálculos tanto

matemáticos como gráficos a nivel de ingeniería.

La manera de utilizar este programa es por medio de comandos que

nos facilitan las operaciones que se requieren.

Con funciones especificas se puede graficar señales básicas con

determinados valores de intervalos tanto para el eje Y como para eje

X.

Se pudo analizar las graficas que se obtuvieron en circuitos RC. de

manera clara el escalamiento y la inversión en el tiempo de una señal

dada.

BIBLIOGRAFIA.

1. Circuitos eléctricos – 7a. ed” de Nilsson, James W., página 286.

2. Señales y Sistemas - Michael J. Roberts