Procesos sobre x(n)

Procesos sobre x(n)

El siguiente programa en Matlab calcula un proceso sobre la señal de tiempo discreto x(n).

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) x(2n) y (b) x(2n-2).

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-2
n: 2*n

Para cada inciso ingresa:
(a) 2*n
(b) 2*n-2

No Comments Yet.