function []=fftej7(N,D) % fftej7(N,d) % x(t)=exp(-2*t)*sin(2*pi*3*t) % ts=D/N; d=ts/10; t=0:ts:D-d; x=exp(-2*t).*sin(2*pi*3*t); X=fft(x); % Reordenar M=N/2; Xaux=X;X(M+1:N)=Xaux(1:M);X(1:M)=Xaux(M+1:N); % Separar Modulo y Fase de los coeficientes X(k) Xm=abs(X)*ts; Xf=unwrap(angle(X))*180/pi; %En grados % Transformar Indices k en frecuencias faux(M+1:N)=0:M-1;faux(1:M)=-M:-1; f=faux/D; % Reconstruir los muestreos originales a partir de los X(k) xr=zeros(1,N); for i=1:N for k=1:N xr(i)=xr(i)+X(k)*exp(j*2*pi*f(k)*ts*(i-1)); end end xr=xr/N; %Plots figure;lines(t,x,'oc5','-c5');hold on;lines(t,xr,'xc3','-c3');zoom; title('Puntos de muestreo (o) y Reconstrucción a partir de X[k] (x)'); xlabel('Tiempo (s)');ylabel('x(t)'); figure;lines(f,Xm,'oc5','-c5');zoom; title('Módulo de los coeficientes espectrales de x(t)'); xlabel('Frecuencia (Hz)'); ylabel('|X[k]|'); figure;lines(f,Xf,'oc3','-c3');zoom; title('Fase de los coeficientes espectrales X[k]'); xlabel('Frecuencia (Hz)'); ylabel('Fase X[k]'); %Reconstruccion de la señal original a partir de los X(k) %Utilizamos un mayor número de puntos ts=ts/10 ts=1/64; d=ts/2; t=0:ts:2*D-d; x=exp(-2*t).*sin(2*pi*3*t); Ns=length(x); xr=zeros(1,Ns); for i=1:Ns for k=1:N xr(i)=xr(i)+X(k)*exp(j*2*pi*f(k)*ts*(i-1))/N; end end %plots figure;plot(t,x,'g-');hold on;plot(t,xr,'r--');zoom; title('Comparación entre x(t) y su reconstrucción a partir de X[k]'); xlabel('Tiempo (t)'); ylabel('x(t)');