Vous êtes sur la page 1sur 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
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
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)
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)
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
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)
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
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
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)
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)
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)
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)
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
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
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);
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])
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
MULTIPLICACION

Seno mas tren pulso

SUMA
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