Coeficientes y transformada de Fourier en Matlab

10
Profesora: Martha Erika Cejudo Torres Orozco Curso: Comunicaciones Analógicas y Digitales Alumno: Analco Bedolla Víctor Hugo 11-002-0102 Practica: Simulación de coeficientes y transformada de Fourier.

Transcript of Coeficientes y transformada de Fourier en Matlab

Page 1: Coeficientes y transformada de Fourier en Matlab

Profesora:

Martha Erika Cejudo Torres Orozco

Curso:

Comunicaciones Analógicas y Digitales

Alumno:

Analco Bedolla Víctor Hugo

11-002-0102

Practica:

Simulación de coeficientes y transformada de Fourier.

Page 2: Coeficientes y transformada de Fourier en Matlab

OBJETIVO

Crear un programa en Matlab que simule y calcule los coeficientes de Fourier para una

señal cuadrada, así como también que permita dibujar n armónicos para dicha señal.

Además crear otro programa que calcule la transformada de Fourier para señal senoidal.

DESARROLLO

Coeficientes y armónicos de Fourier

Planteamiento del problema

Page 3: Coeficientes y transformada de Fourier en Matlab

Crearemos primero el fichero para calcular los coeficientes de Fourier.

Solución a mano

Vemos que la solución para el término constante está en función de tao (ancho del pulso)

y T (periodo), y de la misma forma pasa para la solución de los coeficientes Cn, es decir

podemos variar tanto tao como T para los coeficientes Cn. Para nuestro caso en particular

elegiremos tao=2 y T=6 para obtener nuestros coeficientes.

Page 4: Coeficientes y transformada de Fourier en Matlab

Y podemos apreciar el resultado obtenido con dichos valores, vemos gráficamente los

valores de los coeficientes de Fourier así como también de la magnitud.

Page 5: Coeficientes y transformada de Fourier en Matlab

Solución en Matlab.

% programa que obtiene los coeficientes de Fourier para una señal

cuadrada tao= 2; T = 6; w0 = 2*pi/T; % coeficientes N = 7; c0 = tao/T;

n=1:N; cn = (tao/T)*sinc(n*tao/T); %intervalo de frecuencia w = [w0*n 0 -w0*n]; %amplitudes modcn = [cn c0 cn]; %grafica cada amplitud subplot(2,1,1); stem(w,modcn); grid on; %numero de coeficientes que se muestran axis([-N N 0 0.6]); title(['coeficientes de fourier para N = ',num2str(N)]); ylabel('valores cn'); ylim([-0.2,0.6]);

%magnitud de los coeficientes modcn = abs([cn c0 cn]); %grafica cada amplitud subplot(2,1,2); stem(w,modcn); grid on; %numero de coeficientes que se muestran axis([-N N 0 0.6]); title(['magnitud de los coeficientes de fourier para N = ',num2str(N)]); ylabel('valores |cn|'); ylim([-0.1,0.6]);

Page 6: Coeficientes y transformada de Fourier en Matlab

Si aumentamos los números de coeficientes tenemos

De la solución anterior podemos obtener los enésimos armónicos para la señal cuadrada,

pero para este caso tomaremos a tao=4 y T=8

Solución en Matlab para los enésimos armónicos de la señal cuadrada.

%El siguiente programa determina los armonicos %de la Serie de Fouerier

%ancho del pulso menor a T tao =4; %periodo T=8; w0 = 2*pi/T; %intervalo t = -T:0.0006:T; % amplitud. 1v cc= (tao/T)*ones(1,length(t));

%--numero de armonicos deseados-- N =10;

for n=1:N %serie de fourier obtenida analiticamente cn = (tao/T)*(sinc(n*tao/T)); %representacion del tren de pulsos cc = cc + cn*exp(j*n*w0*t) + cn*exp(-j*n*w0*t); end

plot(t,cc,'r') title(['Grafica de arminicos para N = ',num2str(N)]) xlabel('Tiempo (segundos)') ylabel(['Amplitud (voltaje)']) grid on hold on

Page 7: Coeficientes y transformada de Fourier en Matlab

%señal ideal de referencia

%vector de menos el periodo hasta el periodo con 10k elementos de

pormedio x=linspace(-T,T,10000); %intervalo de la señal d=[-T:T:T]; %comando que genera pulsos rectangulares y=pulstran(x,d,'rectpuls',tao); plot(x,y,'Linewidth',2); ylim([-0.5,1.5]);

Para N=10

Para N=20

Page 8: Coeficientes y transformada de Fourier en Matlab

2. Coeficientes y armónicos de Fourier

Planteamiento del problema

Solución en Matlab.

%Transformada de Fourier

% Intervalo t=-1/2:0.01:1/2; %señal x=sin(2*pi*200*t+sin(2*pi*2*t)); figure(1); % Representacion en el tiempo plot(t,x); title('X(t)=sin(2*pi*200*t+sin(2*pi*2*t))'); xlabel('Tiempo "s" '); ylabel('x(t)');

% Transformada y representacion en frecuencia % Transformada rapida de fourier Xt=fft(x); % Reordenando en frecuencia X=fftshift(Xt);

% Magnitud y fase de la transformada Xm=abs(X); Xf=unwrap(angle(X))*180/pi;

% Base de frecuencias delta_t = t(2)-t(1); f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t; figure(2); plot(f,Xm); zoom; title('Transformada de Fourier de x(t)'); xlabel('frecuencia (Hz)'); ylabel('|X(jw)|');

% señal en el dominio del tiempo a partir de su transformada %Transformada inversa de fourier figure(3); xin=ifft(Xt); plot(t,xin); title('Transformada inversa') xlabel('Tiempo "s" '); ylabel('Xinversa(t)');

Page 9: Coeficientes y transformada de Fourier en Matlab

Señal de la Transformada de Fourier

Transformada de Fourier

Page 10: Coeficientes y transformada de Fourier en Matlab

Transformada inversa de Fourier

CONCLUSIONES

Así pues, podemos decir que se pudo realizar el programa en Matlab para generar tanto los

coeficientes como los armónicos para una señal cuadrada en donde, de acuerdo al problema, se

puede hacer variaciones para el ancho del pulso (tao) y para el periodo (T), así como también se

pudo realizar el programa que genera la transforma de Fourier para una señal senoidal y su

transformada inversa.