Procesos sobre x(n)
El siguiente programa en Matlab calcula un proceso sobre la señal de tiempo discreto .
clc, clear
all, close all
disp(‘Variable
independiente -tiempo (nx = nxi:nxf)
para la señal x(n)’);
n=input(‘nxi:nxf : ‘);
sw=input(‘Para ingresar
muestras de x(n), teclee 1, ecuación matemática de x(n), teclee 2: ‘);
if sw ==
1,
disp(‘Ingrese las
muestras de la señal x(n)’);
x=input(‘Utilizar
corchetes [x(nxi) … x(nxf)]:
‘);
else
disp(‘Ingrese la
expresión matemática de la señal x(n)’);
disp(‘Ejemplo:
cos(0.3*pi*n)’);
x=input(‘Señal
x(n) : ‘);
end
xdn=sx(n,x);
an=input(‘Proceso que
desea sobre x(n). Ej. para x(2-2n) ingrese solo 2-2*n: ‘);
gdn=sxp(an,n,x);
subplot(2,1,1), stem(n,xdn,‘LineWidth’,2),
axis([min(n)-1,max(n)+1,min(xdn)-2,max(xdn)+2]);
xlabel(‘n’); ylabel(‘x(n)’); title(‘Señal x(n)’);
ntick = [n(1):n(length(n))];
set(gca,‘XtickMode’,‘manual’,‘XTick‘,ntick,‘FontSize’,10)
subplot(2,1,2), stem(n,gdn,‘LineWidth’,2),
axis([min(n)-1,max(n)+1,min(xdn)-2,max(xdn)+2]);
xlabel(‘n’); ylabel(‘x(n)’); title(‘Señal resultante’);
ntick = [n(1):n(length(n))];
set(gca,‘XtickMode’,‘manual’,‘XTick‘,ntick,‘FontSize’,10)
% Señal x(n) expresada con la función delta(n)
function y=sx(n,x),
y=zeros(1,length(n));
for k=1:length(x);
y = y +
x(k)*delta(n-n(k));
end
end
function y=sxp(an,n,x),
y=zeros(1,length(an));
for jk=1:length(x),
% y=y+x(jk).*(an==n(jk)); % otra opción
y=y+x(jk).*delta(an-n(jk));
end
end
function y=delta(n),
y=1.*(n==0);
end
function y=escalon(n),
y=1.*(n>=0);
end
function y=rampa(n),
y=n.*(n>=0);
end
Nota. Cambiar la comilla simple por apóstrofe en la hoja de editor de Matlab.
Ejemplo: Para la señal ${-3,-2,-1,0,1,2,3,4*,4,4,4,4,4,4}$ calcular los procesos: (a) y (b)
.
Solución: En el programa en Matlab se especifican:
Variable independiente -tiempo (nx = nxi:nxf) para la señal x(n)
nxi:nxf : -10:10
Para ingresar muestras de x(n), teclee 1, ecuación matemática de x(n), teclee 2: 2
Ingrese la expresión matemática de la señal x(n)
Ejemplo: cos(0.3*pi*n)
Señal x(n) : rampa(n+4).*(escalon(n+4)-escalon(n-1))-rampa(-n-4).*(escalon(n+7)-escalon(n+4))+4(escalon(n-1)-escalon(n-7))
Proceso que desea sobre x(n). Ej. para x(2-2n) ingrese solo 2-2n: 2*n
Para cada inciso ingresa:
(a) 2*n
(b) 2*n-2