convolucion

Download ConvoLuciOn

If you can't read please download the document

Upload: miguel-angel-reyes

Post on 02-Feb-2016

223 views

Category:

Documents


3 download

DESCRIPTION

practicaConvolucionAnalitica

TRANSCRIPT

function y = convolucion()%% 1a)n=-20:20; figure(1) x=(1/2).^n.*(escalon(n,0)-escalon(n,16)); h=(escalon(n,0)-escalon(n,5)); z=conv(x,h,'same'); subplot(2,1,1); stem(n,z); title('Convolucin x1*h1'); xlabel('n') % 1b) x2=(1/3).^n.*(escalon(n,0)-escalon(n,5)); h2=(1/2).^n.*(escalon(n,0)-escalon(n,20)); z2=conv(x2,h2,'same'); subplot(2,1,2); stem(n,z2); title('Convolucin x2*h2'); xlabel('n') %% 2a) n=-20:20; x=(1/2).^n.*(escalon(n,0)-escalon(n,16)); h=(escalon(n,0)-escalon(n,5)); matH=convmtx(h,length(x))'; res=0; for i=22:20+length(x) if i==1 res=sum(matH(i,1:end)*(x')); else res=[res,sum(matH(i,1:end)*(x'))]; end end figure(2); subplot(2,1,1) stem(n,res); title('Convolucin x1*h1'); xlabel('n') n=-20:20; x2=(1/3).^n.*(escalon(n,0)-escalon(n,5)); h2=(1/2).^n.*(escalon(n,0)-escalon(n,20)); matH=convmtx(h2,length(x2))'; res2=0; for i=22:20+length(x2) if i==1 res2=sum(matH(i,1:end)*(x2')); else res2=[res2,sum(matH(i,1:end)*(x2'))]; end end subplot(2,1,2) stem(n,res2); title('Convolucin x2*h2'); xlabel('n')%% 3a) n=-20:20; x=(1/2).^n.*(escalon(n,0)-escalon(n,16)); h=(escalon(n,0)-escalon(n,5)); H=0; for i=1:(length(x)+length(h)) if i==1 H=[h,0]; else H=[H,0]; end end auxH=fliplr([H,0]); aux=toeplitz(H,auxH); conH=aux(1:length(x)+length(x)-1,1:length(x)) res3=0; for i=1:length(x)+length(h)-1 if i==1 res3=sum(conH(i,1:end)*(x')); else res3=[res3,sum(conH(i,1:end)*(x'))]; end end res3=res3(21:end-20); stem(n,res3); title('Convolucin x1*h1'); xlabel('n') %% 3b) n=-20:20; x2=(1/3).^n.*(escalon(n,0)-escalon(n,5)); h2=(1/2).^n.*(escalon(n,0)-escalon(n,20)); H=0; for i=1:(length(x2)+length(h2)) if i==1 H=[h2,0]; else H=[H,0]; end end auxH=fliplr([H,0]); aux=toeplitz(H,auxH); conH=aux(1:length(x2)+length(x2)-1,1:length(x2)) res4=0; for i=1:length(x2)+length(h2)-1 if i==1 res4=sum(conH(i,1:end)*(x2')); else res4=[res4,sum(conH(i,1:end)*(x2'))]; end end res4=res4(21:end-20); stem(n,res4); title('Convolucin x2*h2'); xlabel('n')%% 4a) figure(1) n=-25:25; esp=25; subplot(3,1,1); x=(1/2).^n.*(escalon(n,0)-escalon(n,16)); stem(n,x); title('x1'); xlabel('n') subplot(3,1,2) h=(escalon(n,0)-escalon(n,5)); stem(n,h); title('h1'); xlabel('n') pause(2); total=desplaza(h,esp); subplot(3,1,2); stem(-n,total(1:length(x))); title('h1'); xlabel('n') pause(2); Hdes=fliplr(total(1:length(x))); residuo=total(length(x)+1:end); residuo=rellenar(residuo,length(x)); etiqueta=subplot(3,1,3); hold(etiqueta,'off'); vecfor=[':diamondr']; vecfor2=[':pentagramb']; vecfor3=[':+k']; vecfor4=[':m']; for i=1:length(x) yu=Hdes.*x; Hdes=[residuo(i),Hdes]; Hdes=Hdes(1:length(x)); subplot(3,1,2); stem(n-1,Hdes(1:length(x))); title('x1'); xlabel('n') if i==1 y=sum(yu); else y=[y,sum(yu)]; end if y(i)