Upload
gasdsingle6952
View
1.583
Download
4
Embed Size (px)
Citation preview
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