function [] = fftej8(N,D) % fftej8(N,D) % N es el número de puntos de muestreo % D es el periodo de tiempo sobre el que se muestrea % Creamos una señal tipo chirp entre 0 y D con una transición de % frecuencias desde 20Hz hasta 60Hz % Figuras : Coeficientes espectrales % Fase % Reconstrucción df=60-20; ts=D/N; d=ts/2; t=0:ts:D-d; % El tamaño de t es lógicamente N % Creamos una señal tipo chirp entre 0 y D con una transición de % frecuencias desde 20Hz hasta 60Hz x1=chirp([20 20+df*D]*D/N,N); % Señal exponencial x2=0.5*(1-exp(-0.3.*t)); % Señal senoidal con ; x3=(1+0.5*t.^2).*sin(2*pi*5*t); %Señal x(t) x=x3+x1*0.2; 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 radianes % Transformar Indices k en frecuencias faux(M+1:N)=0:M-1;faux(1:M)=-M:-1; f=faux/D; figure;lines(f,Xm,'oc5','-c5');zoom; title('Módulo de los coeficientes espectrales de x(t) |X[k]|'); 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]'); % Reconstrucción de la señal D=1.5*D; ts=1/250; d=ts/2; t=0:ts:D-d; Ns =length(t); x1=chirp([20 20+df*D]*ts,Ns); x2=0.5*(1-exp(-0.3.*t)); x3=(1+0.5*t.^2).*sin(2*pi*5*t); x=x3+x1*0.2; 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-',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)');