Diferencia entre revisiones de «Transformada de Fourier y muestreo de señales»

De MateWiki
Saltar a: navegación, buscar
Línea 376: Línea 376:
 
[[Archivo:Ainara31.jpg|centro|imagen]]
 
[[Archivo:Ainara31.jpg|centro|imagen]]
  
 +
 +
{{matlab|codigo=
 +
 +
clear all
 +
 +
%frecuencia de muestreo
 +
Fs=32;
 +
 +
%intervalo
 +
 +
t=0:1/Fs:1-1/Fs; 
 +
 +
%frecuencia senal
 +
 +
F0=-7;
 +
 +
%senal
 +
 +
xs=exp(i*2*pi*F0*t);
 +
 +
%ventana de Gauss
 +
 +
P=32;
 +
n=0:1:P-1;
 +
t1=0:1/32:1-1/32;
 +
wh=exp(-0.5*((n-P/2)/(P/4)).^2);
 +
 +
%multiplicacion
 +
 +
ys=xs.*wh
 +
 +
%dibujar
 +
 +
hold on
 +
plot(t,xs,'r')
 +
plot(t1,wh,'g')
 +
plot(t,ys)
 +
legend('xs','wh','ys')
 +
}}
 +
 +
[[Archivo:Ainara32.jpg|centro|imagen]]
 +
 +
===Dibujar la DTFT de la muestra original y la DTFT de la muestra ventaneada (con N=2<sup>12</sup> puntos) en la misma gráfica, reescaladas por la frecuencia de muestreo para que representen las aproximaciones de la FT.¿Qué se observa?===
 +
 +
{{matlab|codigo=
 +
clear all
 +
%Funcion original
 +
Fs=32;
 +
t=0:1/Fs:1-1/Fs; 
 +
F0=-7;
 +
xs=exp(i*2*pi*F0*t);
 +
 +
%Ventana de Gauss
 +
P=32;
 +
n=0:1:P-1;
 +
t1=0:1/32:1-1/32;
 +
wh=exp(-0.5*((n-P/2)/(P/4)).^2);
 +
 +
%Producto gauss por original
 +
ys=xs.*wh
 +
 +
%Transformadas del producto
 +
 +
N=2^12
 +
dtftg=abs(fftshift(fft(ys,N)))
 +
tau=-(1/2):1/N:1/2-1/N;
 +
 +
% Transformada de la original
 +
dtft=abs(fftshift(fft(xs,N)))
 +
 +
 +
% Dibijo de la transformada original
 +
subplot(1,3,1)
 +
plot(tau*Fs,dtft/Fs)
 +
title('dtft de la original')
 +
 +
%dibujo de la transformada del producto
 +
subplot(1,3,2)
 +
plot(tau*Fs,dtftg/Fs,'r')
 +
title('dtft de ys=xs*wh')
 +
 +
% Dibujo de las dos juntas
 +
subplot(1,3,3)
 +
plot(tau*Fs,dtftg/Fs,'r')
 +
hold on
 +
plot(tau*Fs,dtft/Fs)
 +
title('original y producto')
 +
}}
  
  
 
[[Categoría:Máster en Ingeniería Geodésica y Cartografía]]
 
[[Categoría:Máster en Ingeniería Geodésica y Cartografía]]
 
[[Categoría:Análisis de Series Temporales y Procesamiento Digital de la Imagen]]
 
[[Categoría:Análisis de Series Temporales y Procesamiento Digital de la Imagen]]

Revisión del 23:40 12 nov 2014


Contenido

1 Ejercicio

Consideramos la señal:

f(t)= eF02Πit + 1/2 cos(F12Πt) + cos (F22Πt)

con F0=8; F1=8.2 y F2=40.

Se pide:

1.1 Calcular la transformada de Fourier.

Descomponemos la señal:

Señal → FT

eF02Πit → δ0(Ί)

cos(F12Πt) → (δa(Ί)+ δ-a(Ί))/2

cos (F22Πt) → (δa(Ί)+ δ-a(Ί))/2

%ejercicio1

clear all

%Frecuencias 

F0=8; F1=8.2; F2=40;

P=100;

%Intervalo

t=0:1/P:1;

%Senal 

f=exp(F0*2*pi*t*i);

g=(1/2)*cos(F1*2*pi*t);

h=cos(F2*2*pi*t);

i=f+g+h;

%Transformada de fourier

dft=abs(fftshift(fft(f)))

dft1=abs(fftshift(fft(g)));

dft2=abs(fftshift(fft(h)));

dft3=abs(fftshift(fft(i)));

%Para rescalar

tau2=[-1/2:1/P:1/2];

%Dibujamos

figure(1)

subplot (1,3,1)

plot(tau2*P,dft/P,'k')

title('exp(F0*2*pi*t*i)')

subplot (1,3,2)

plot(tau2*P,dft1/P,'b')

title('(1/2)*cos(F1*2*pi*t)')

subplot (1,3,3)

plot(tau2*P,dft2/P,'g')

title('cos(F2*2*pi*t)')

figure (2)

plot(tau2*P,dft3/P,'r')


imagen


imagen

1.2 Muestrearla a 12 Hz en el intervalo [0,1] y representar la señal muestreada.

1.2.1 Representar también la aproximación de la Transformada de Fourier (FT) usando la DFT con el mismo número de puntos que la muestra.

1.2.2 ¿En qué frecuencias están los picos de la DFT y dónde debería estar?

%ejercicio1_ap2

clear all

%Frecuencias

F0=8; F1=8.2; F2=40;

%Frecuencia de muestreo

Fs=12; 

%Intervalo

t=0:1/Fs:1;

%Senal

f=exp(F0*2*pi*t*i);

g=(1/2)*cos(F1*2*pi*t);

h=cos(F2*2*pi*t);

i=f+g+h;

%Dibujo del muestreo

figure (1)

plot(t,i,'*-')

title('senal muestreada')

%DFT

dft3=abs(fftshift(fft(i)));

p=length(t);

%Rescalar

tau2=[-1/2:1/p:1/2-1/p];

%Dibujo de la dft

figure(2)

plot(tau2*Fs,dft3/Fs,'ro-')

title('DFT')


imagen


imagen


Los picos de la DFT estan aproximadamente en el -4 y en el 3, cuando deberíamos de tener 5 picos. Esto sucede ya que la frecuencia de muestreo es inferior a 2B (Dos veces el ancho de la banda). La frecuencia más alta es de 40 Hz, por lo que la frecuencia de muestreo mínima para obtener los resultados esperados debería de ser de 80 Hz.

1.3 Repetir el caso anterior con un muestreo a 5 Hz, 20 Hz, 40 Hz, 50 Hz y 100 Hz. En todos los casos mantener la ventana temporal t € [0,1]. ¿Mejora el error que cometemos en las frecuencias?

Como hemos comentado en el apartado anterior hasta que la frecuencia de muestreo no sea mayor a 80 Hz, los resultados no serán los correctos, como podemos ver en las siguientes imágenes.

imagen


imagen


imagen


imagen


Esto se debe al aliasing, es decir, al ser las frecuencias de muestreo muy bajas, se meten dentro de manera descolocada (sin ningún tipo de orden).


imagen


1.4 Ahora vamos a aumentar la ventana temporal fijando la frecuencia de muestreo a 30 Hz. Muestrear la señal en los intervalo temporales [0,1],[0,2],[0,10] y [0,100]. ¿ En qué frecuencia están los picos de la FT y donde deberían estar? ¿Qué error se comete?

%ejercicio1_ap2
clear all
%frecuencia

F0=8; F1=8.2; F2=40;

%frecuencia de muestreo

Fs=30; 

%intervalo [0,1][0,2][0,10][0,100]
a=1; 
t=0:1/Fs:a;

%senal

f=exp(F0*2*pi*t*i);
g=(1/2)*cos(F1*2*pi*t);
h=cos(F2*2*pi*t);
i=f+g+h;

%Dibujar senal muestreada

figure (1)
plot(t,i,'*-')
title('senal muestreada [0,1]')

%DFT

dft3=abs(fftshift(fft(i)));
p=length(t);
tau2=[-1/2:1/p:1/2-1/p];

%dibujar DFT

figure(2), hold on
plot(tau2*Fs,dft3/Fs,'r')
title('DFT [0,1]')


imagen


imagen


imagen


imagen


La frecuencia de muestreo es de 30 Hz, por lo que únicamente podremos ver aquellas frecuencias inferiores a 15 Hz. Debido a ello, las frecuencias de 40 Hz, no se ven en su correspondiente lugar por el efecto del aliasing. Por otro lado, tenemos que mencionar que debido al intervalo de tiempo, a medida que aumentamos el intervalo las campanas se van estrechando cada vez más.

1.5 ¿Qué diferencias hay entre el apartado 2 y 3?

1.6 El Teorema de Shanon nos dice que con un muestreo a 12 Hz es posible reconstruir una señal banda-limitada mediante la siguiente formula.

imagen


1.6.1 Dibujar F(t), tomando sumando desde n=-40 hasta n=40. Comparar en la misma gráfica f(t) y su reconstrucción F(t). ¿Qué relación hay entre ellas?

2 Ejercicio

En este ejercicio se trata de entender cómo diferentes ventanas afectan a la DTFT. Tomaremos una señal f(t)= e2ΠiF0t con F0=-7. Se pide :

2.1 Dibujar la señal y su muestreo a 32 Hz en el tiempo T=1 en la misma gráfica.

%frecuencia de muestreo

Fs=32;

%intervalo 

t=0:1/Fs:1;  

%frecuencia senal

F0=-7;

%senal

f=exp(i*2*pi*F0*t)

%dibujar
hold on
plot(t,f,'r') %Señal
plot(t,f,'*')   %Muestreo


imagen


2.2 Dibujar la DFT y la DTFT (con N=212 puntos) en la misma gráfica, reescaladas por la frecuencia de muestreo para que representen las aproximaciones de la FT.

%Frecuencia de muestreo

Fs=32;

%intervalo

t=0:1/Fs:1;  

%frecuencia de la senal

F0=-7;

%senal

f=exp(i*2*pi*F0*t)

%numero d puntos de la DTFT

N=2^12

%DTFT 

dtft=abs(fftshift(fft(f,N)))
tau=-(1/2):1/N:1/2-1/N;

%DFT 

dft=abs(fftshift(fft(f)))
p=length(t);
tau2=-1/2:1/p:1/2-1/p;

hold on
figure (1)
subplot(1,2,1)
plot(tau,dtft)
title('dtft')
subplot(1,2,2)
plot(tau2,dft)
title('dft')

figure (2)
subplot(1,2,1)
plot(tau*Fs,dtft/Fs)
title('dtft reescalada')
subplot(1,2,2)
plot(tau2*Fs,dft/Fs,'*-')
title('dft reescalada')


imagen

2.3 Consideramos ahora la ventana de Gauss, donde P es el número de valores de nuestra muestra. Dubujar la Ventana de Gauss cuando tomamos P=32 valores del intervalo [0,1] (empezando en t=0 y terminando en t=1-1/32).

imagen


%valores de la muestra

P=32;
n=0:1:P-1;

%intervalo 

t=0:1/32:1-1/32;

%ventana de gauss

wh=exp(-0.5*((n-P/2)/(P/4)).^2)

%dibujar la ventana de gauss

plot(n,wh)
title('ventana de Gauss')


imagen

2.4 Multiplicar la muestra obtenida en el apartado 1, que llamaremos xs(n) por la ventanda de Gauss, es decir, calcular:

imagen


clear all

%frecuencia de muestreo
Fs=32;

%intervalo 

t=0:1/Fs:1-1/Fs;  

%frecuencia senal

F0=-7;

%senal

xs=exp(i*2*pi*F0*t);

%ventana de Gauss

P=32;
n=0:1:P-1;
t1=0:1/32:1-1/32;
wh=exp(-0.5*((n-P/2)/(P/4)).^2);

%multiplicacion

ys=xs.*wh

%dibujar 

hold on
plot(t,xs,'r')
plot(t1,wh,'g')
plot(t,ys)
legend('xs','wh','ys')


imagen

2.5 Dibujar la DTFT de la muestra original y la DTFT de la muestra ventaneada (con N=212 puntos) en la misma gráfica, reescaladas por la frecuencia de muestreo para que representen las aproximaciones de la FT.¿Qué se observa?

clear all
%Funcion original
Fs=32;
t=0:1/Fs:1-1/Fs;  
F0=-7;
xs=exp(i*2*pi*F0*t);

%Ventana de Gauss
P=32;
n=0:1:P-1;
t1=0:1/32:1-1/32;
wh=exp(-0.5*((n-P/2)/(P/4)).^2);

%Producto gauss por original
ys=xs.*wh

%Transformadas del producto

N=2^12
dtftg=abs(fftshift(fft(ys,N)))
tau=-(1/2):1/N:1/2-1/N;

% Transformada de la original
dtft=abs(fftshift(fft(xs,N)))


% Dibijo de la transformada original
subplot(1,3,1)
plot(tau*Fs,dtft/Fs)
title('dtft de la original')

%dibujo de la transformada del producto
subplot(1,3,2)
plot(tau*Fs,dtftg/Fs,'r')
title('dtft de ys=xs*wh')

% Dibujo de las dos juntas
subplot(1,3,3)
plot(tau*Fs,dtftg/Fs,'r')
hold on
plot(tau*Fs,dtft/Fs)
title('original y producto')