function [] = fftej2(N,D) % Ejemplo de una FFT de una se¤al exponencial sumada a una se¤al % tipo chirp con un desplazamiento desde 60 hasta 100 Hz en 1 segundos. % N es el n£mero de puntos de la funci¢n. Elegir preferiblemente valores % que sean potencias de 2 ts=D/N; d=ts/2; t=0:ts:D-d; df=100-60; x=exp(-2*t)+0.2.*chirp([60 60+df*D]*ts,N); X=fft(x); %Reordenar Y M=N/2; Xaux=X;X(M+1:N)=Xaux(1:M);X(1:M)=Xaux(M+1:N); Xm=abs(X)*ts; Xf=unwrap(angle(X))*180/pi; %Reordenar los ¡ndices k faux(M+1:N)=0:M-1;faux(1:M)=-M:-1; f=faux/D; figure;plot(t,x,'-r');zoom; xlabel('Tiempo (s)');ylabel('x(t)'); title('x(t)=exp(-2t)+0.2·chirp(60-100)'); figure;lines(f,Xm,'oc5','-c5');zoom; xlabel('Frecuencia (Hz)');ylabel('|X[k]|'); title('Módulo de los coeficientes espectrales |X[k]|'); figure;lines(f,Xf,'oc3','-c3'); xlabel('Frecuencia (Hz)');ylabel('Fase(X[k]) (º)'); title('Fase de los coeficientes espectrales X[k]'); % Reconstrucción de la señal a partir de los X[k] % Utilizamos un mayor número de puntos fs=500 Hz fs=500; ts=1/fs; d=ts/2; t=0:ts:D-d; Ns=length(t); x=exp(-2*t)+0.2.*chirp([60 60+df*D]*ts,Ns); 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 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)');