clear clc close all % DATOS y1=[-1,1,2,3]; y2=[0 1 2 3]; pp=0:0.13:2*pi; y3=sin(pp)+cos(3*pp); for m=1:3 if m==1 y=y1;T=length(y); elseif m==2 y=y2;T=length(y); elseif m==3 y=y3;T=2*pi; end n=length(y); w=exp(-2*pi/n*i); W=ones(n,n); W(2,:)=w.^(0:n-1); for k=3:n for j=2:n W(k,:)=W(k-1,:).*W(2,:); end end Y=W*y'; xx=linspace(-2*T,3*T,5000); s=zeros(1,length(xx)); for k=1:ceil(n/2) s=s+Y(k)*exp(2*pi*(k-1)*xx*i/T); end for k=ceil(n/2)+1:n s=s+Y(k)*exp(2*pi*(k-n-1)*xx*i/T); end s=real(s)/n; figure(m) if m==1 || m==2 plot(0:n-1,y,'.','Markersize',20) elseif m==3 plot(pp,y,'.','Markersize',20) end hold on plot(xx,s) axis([min(xx) max(xx) min(s) max(s)]) if m==1 title('Con cuatro puntos','Fontsize',16) elseif m==2 title('Con otros cuatro puntos','Fontsize',16) elseif m==3 title(['Con ',num2str(length(pp)),' puntos'],'Fontsize',16) end if m==3 ss=linspace(-2*T,6*T,5000); plot(ss,sin(ss)+cos(3*ss),'r'); pp=0:2*pi/25:2*pi; y3=sin(pp)+cos(3*pp); legend('nodos','Reconstruida','Verdadera') end pause end