Вы находитесь на странице: 1из 33

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 Transformada de Fourier

eF02Πit δF0(Ί)

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

cos(F22Πt) ((δF2(Ί)+ δ-F2(Ί))/2i

Transformadas de Fourier de los elementos de la señal


1 %ejercicio1_ap1
2 clear all
3 %Frecuencias
4 F0=8; F1=8.2; F2=40;
5 P=100;
6 %Intervalo
7 t=0:1/P:1-1/P;
8 %Señal
9 f=exp(F0*2*pi*t*i);
10 g=(1/2)*cos(F1*2*pi*t);
11 h=cos(F2*2*pi*t);
12 i=f+g+h;
13 %Transformada de fourier
14 dft=abs(fftshift(fft(f)))
15 dft1=abs(fftshift(fft(g)));
16 dft2=abs(fftshift(fft(h)));
17 dft3=abs(fftshift(fft(i)));
18 %Para reescalar
19 tau2=[-1/2:1/P:1/2-1/P];
20 %Dibujamos
21 figure(1)
22 subplot (1,3,1)
23 plot(tau2*P,dft/P,'k')
24 title('exp(F0*2*pi*t*i)')
25 subplot (1,3,2)
26 plot(tau2*P,dft1/P,'b')
27 title('(1/2)*cos(F1*2*pi*t)')
28 subplot (1,3,3)
29 plot(tau2*P,dft2/P,'g')
30 title('cos(F2*2*pi*t)')
31 figure (2)
32 plot(tau2*P,dft3/P,'r')
Transformada de Fourier de la Señal
Como se puede observar, la Transformada de Fourier de la función son 5 deltas de Dirac
situadas en los valores de las frecuencias. En -40, 8, -8.2, 8.2 y 40

1.2 Muestrearla a 12 Hz en el intervalo [0,1] y representar la


señal muestreada.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.¿En qué frecuencias están
los picos de la DFT y dónde debería estar?
Señal muestreada a la izquierda y DFT a la derecha

1 %ejercicio1_ap2
2 clear all
3 %Frecuencias
4 F0=8; F1=8.2; F2=40;
5 %Frecuencia de muestreo
6 Fs=12;
7 %Intervalo
8 a=1;
9 t=0:1/Fs:a;
10 %Señal
11 f=exp(F0*2*pi*t*i);
12 g=(1/2)*cos(F1*2*pi*t);
13 h=cos(F2*2*pi*t);
14 i=f+g+h;
15 %Dibujo del muestreo
16 figure (1)
17 plot(t,i,'*-')
18 title('senal muestreada')
19 %DFT
20 dft3=abs(fftshift(fft(i)));
21 p=length(t);
22 %Reescalar
23 tau2=[-1/2:1/p:1/2-1/p];
24 %Dibujo de la dft
25 figure(2)
26 plot(tau2*Fs,dft3/Fs,'ro-')
27 title('DFT')

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.
El código utilizado es el mismo que en el apartado anterior, únicamente cambiando para
cada caso el valor de Fs

Señal muestreada y DFT a 5Hz


Señal muestreada y DFT a 20Hz

Señal muestreada y DFT a 40Hz


Señal muestreada y DFT a 50Hz
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).

Señal muestreada y DFT a 100Hz


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?
El código utilizado es el mismo que en el ejercicio 2, únicamente cambiando para cada
caso el intervalo temporal (a=1;a=2,a=10 y a=100) y fijando una frecuencia de muestreo
Fs de 30Hz

Señal muestreada y DFT en 1 segundo


Señal muestreada y DFT en 2 segundos
Señal muestreada y DFT en 10 segundos
Señal muestreada y DFT en 100 segundos

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, aumentando la
precisión del muestreo

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


La única manera de aumentar la precisión y la resolución de un muestreo de la DFT es
aumentando el tiempo de muestreo y no la frecuencia de muestreo.

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.

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?
Reconstrucción de la señal y detalle de la misma

1 %ejercicio1_ap6
2 clear all
3 F0=8; F1=8.2; F2=40; %frecuencia de la señal
4 Fs=12; %frecuencia de muestreo
5 a=10; %maximo del intervalo
6 t=0:1/Fs:a; %intervalo de muestreo
7 f=exp(F0*2*pi*t*i)+(1/2)*cos(F1*2*pi*t)+cos(F2*2*pi*t);
%señal
8 dft3=abs(fftshift(fft(f))); % dft
9 %Teorema de Shanon
10 Fa=0
11 N=2^8;
12 t1=0:1/N:a;
13 for n=1:81;
14 Fa=Fa+f(n).*((sin(12.*pi.*(t1-n./12)))./(pi.*(t1-
n./12)));
15 end
16 F=(1/Fs)*Fa;
17 %dibujo de la reconstrucción
18 plot(t1-1/Fs,F,'r') %se traslada la reconstrucción para que
19 %coincida con el muestreo
20 %Dibujo del muestreo
21 hold on
22 plot(t,f,'*-')
1.7 Calcular con MATLAB el valor de la frecuencia de
muestreo Fs y del número de sumandos N que hacen que
la diferencia entre la reconstrucción y la señal original sea
menor 1/300. Es decir,

(Para evaluar la parte izquierda de la parte anterior en MATLAT usar un tiempo t


muestreado con frecuencia 1000 para que aproxime bien el tiempo continuo.)
Interpretar los valores Fs y N en términos de frecuencia de muestreo y tiempos
necesarios para conseguir una buena aproximación de la señal.

1.8 Repetir los apartados 1-5 anteriores cambiando la


señal por una que no sea banda limitada. Tomar por
ejemplo,
f(t)=e(−2t/10)f(t)=e(−2t/10)
1.8.1 Calcular la transformada de Fourier.

Transformada de Fourier

1 %ejercicio1_ap8_1
2 clear all
3 P=100;
4 a=1;
5 t=0:1/P:a-1/P; %Intervalo de representación
6 f=exp(-2*t/10); %función
7 N=2^12; %numero de puntos del muestreo
8 %calculo la DTFT
9 dtft=abs(fftshift(fft(f,N)));
10 tau2=[-1/2:1/N:1/2-1/N]; % intervalo de representacion DTFT
11 %represento la dtft escalada
12 figure(1)
13 plot(tau2*N,dtft/N,'k')

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


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. ¿En qué frecuencias
están los picos de la DFT y dónde debería estar?

Señal muestreada y Transformada de Fourier

1 %ejercicio1_ap8_2
2 clear all
3 Fs=12; %Frecuencia de muestreo
4 a=1;
5 t=0:1/Fs:a-1/Fs; %intervalo
6 f=exp(-2*t/10); %función
7 %Dibujo del muestreo
8 figure (1)
9 plot(t,f,'*-')
10 axis([-0.05 1.05 0.8 1.05])
11 %Transformada
12 dft=abs(fftshift(fft(f)));
13 p=length(t); %longitud de la señal muestreada
14 tau2=[-1/2:1/p:1/2-1/p]; %intervalo de DFT
15 %Dibujo de la dft
16 figure(2)
17 plot(tau2*Fs,dft/Fs,'ro-')

1.8.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?
El código utilizado es el mismo que en el apartado anterior, únicamente cambiando
para cada caso el valor de Fs

Señal a la izquierda y Transformada de Fourier a la derecha muestreadas a 5 Hz

Señal a la izquierda y Transformada de Fourier a la derecha muestreadas a 20 Hz


Señal a la izquierda y Transformada de Fourier a la derecha muestreadas a 40 Hz

Señal a la izquierda y Transformada de Fourier a la derecha muestreadas a 50 Hz


Señal a la izquierda y Transformada de Fourier a la derecha muestreadas a 100 Hz
1.8.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?
El código utilizado es el mismo que en el apartado anterior, únicamente va variando el
intervalo temporal (a=1, a=2, a=10 y a=100) y fijando una frecuencia de muestre Fs a
32Hz

Señal a la izquierda y Transformada de Fourier a la derecha muestreadas durante 1 segundo


Señal a la izquierda y Transformada de Fourier a la derecha muestreadas durante 12 segundos

Señal a la izquierda y Transformada de Fourier a la derecha muestreadas durante 10 segundos


Señal a la izquierda y Transformada de Fourier a la derecha muestreadas durante 100
segundos
1.8.5 ¿Qué diferencias hay entre el apartado 3 y 4?
Esta función, no es banda-limitada pero se puede considerar banda-limitada de F0=27
aproximadamente ya que a partir de ese valor, la función se hace 0. Con una
frecuencia de muestreo de 60Hz se podría recuperar la señal sin producir ningún tipo
de error sin embargo, como se comprueba en las imágenes, aumentando el tiempo de
muestreo se consigue capturar la DFT de la señal de una manera más precisa y con
mayor resolución que aumentando la frecuencia de muestreo.

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.

Señal y puntos muestreados

1 %dibujamos la señal
2 Fs=1000;
3 t=0:1/Fs:1-1/Fs;
4 F0=-7;
5 f=exp(i*2*pi*F0*t)
6 hold on
7 plot(t,f,'r')
8 %dibujamos el muestreo a 32 Hz
9 Fs=32;
10 t=0:1/Fs:1-1/Fs;
11 F0=-7;
12 f=exp(i*2*pi*F0*t)
13 plot(t,f,'*')
14 legend('Señal','Muestreo')

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.

DFT a la izquierda y DTFT a la derecha de la función f

1 %Frecuencia de muestreo
2 Fs=32;
3 %intervalo
4 t=0:1/Fs:1-1/Fs;
5 %frecuencia de la senal
6 F0=-7;
7 %señal
8 f=exp(i*2*pi*F0*t)
9 %numero d puntos de la DTFT
10 N=2^12
11 %DTFT
12 dtft=abs(fftshift(fft(f,N)))
13 tau=-(1/2):1/N:1/2-1/N;
14 %DFT
15 dft=abs(fftshift(fft(f)))
16 p=length(t);
17 tau2=-1/2:1/p:1/2-1/p;
18 hold on
19 figure (1)
20 subplot(1,2,1)
21 plot(tau,dtft)
22 title('dtft')
23 subplot(1,2,2)
24 plot(tau2,dft)
25 title('dft')
26 figure (2)
27 subplot(1,2,1)
28 plot(tau*Fs,dtft/Fs)
29 title('dtft reescalada')
30 subplot(1,2,2)
31 plot(tau2*Fs,dft/Fs,'*-')
32 title('dft reescalada')

2.3 Consideramos ahora la ventana de Gauss, donde


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

1 %valores de la muestra
2 P=32;
3 n=0:1:P-1;
4 %intervalo
5 t=0:1/32:1-1/32;
6 %ventana de gauss
7 wh=exp(-0.5*((n-P/2)/(P/4)).^2)
8 %dibujar la ventana de gauss
9 plot(n,wh)
10 title('ventana de Gauss')

Ventana de Gauss

2.4 Multiplicar la muestra obtenida en el apartado 1,


que llamaremos xs(n) por la ventanda de Gauss, es
decir, calcular:
Muestra original, Ventana de Gauss y Resultado Final

1 clear all
2 %frecuencia de muestreo
3 Fs=32;
4 %intervalo
5 t=0:1/Fs:1-1/Fs;
6 %frecuencia señal
7 F0=-7;
8 %senal
9 xs=exp(i*2*pi*F0*t);
10 %ventana de Gauss
11 P=32;
12 n=0:1:P-1;
13 t1=0:1/32:1-1/32;
14 wh=exp(-0.5*((n-P/2)/(P/4)).^2);
15 %multiplicacion
16 ys=xs.*wh
17 %dibujar
18 hold on
19 plot(t,xs,'r')
20 plot(t1,wh,'g')
21 plot(t,ys)
22 legend('xs','wh','ys')
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?

DTFT y DTFT ventaneada

1 clear all
2 %Funcion original
3 Fs=32;
4 t=0:1/Fs:1-1/Fs;
5 F0=-7;
6 xs=exp(i*2*pi*F0*t);
7 %Ventana de Gauss
8 P=32;
9 n=0:1:P-1;
10 t1=0:1/32:1-1/32;
11 wh=exp(-0.5*((n-P/2)/(P/4)).^2);
12 %Producto gauss por original
13 ys=xs.*wh
14 %Transformadas del producto
15 N=2^12
16 dtftg=abs(fftshift(fft(ys,N)))
17 tau=-(1/2):1/N:1/2-1/N;
18 % Transformada de la original
19 dtft=abs(fftshift(fft(xs,N)))
20 % Dibujo de la transformada original
21 subplot(1,3,1)
22 plot(tau*Fs,dtft/Fs)
23 title('dtft de la original')
24 %dibujo de la transformada del producto
25 subplot(1,3,2)
26 plot(tau*Fs,dtftg/Fs,'r')
27 title('dtft de ys=xs*wh')
28 % Dibujo de las dos juntas
29 subplot(1,3,3)
30 plot(tau*Fs,dtftg/Fs,'r')
31 hold on
32 plot(tau*Fs,dtft/Fs)
33 title('original y producto')

Se puede observar que al realizar la DTFT de la función ventaneada


se han eliminado las perturbaciones a sendos lados de la frecuencia
F0=-7, por contra el resultado es menos resolutivo.

2.6 Dibujar la DFT de la muestra original y la


DFT de la muestra ventaneada en la misma
gráfica, reescaladas por la frecuencia de
muestreo para que representen las
aproximaciones de la FT. ¿Qué se
observa?Repetir el experimento con F0=6.4.
DFT y DFT ventaneada F0=-7

1 clear all
2 %Funcion original
3 Fs=32;
4 t=0:1/Fs:1-1/Fs;
5 %Frecuencia de la senal (F0=-7 y 6.4)
6 F0=-7;
7 xs=exp(i*2*pi*F0*t);
8 %Ventana de Gauss
9 P=32;
10 n=0:1:P-1;
11 t1=0:1/32:1-1/32;
12 wh=exp(-0.5*((n-P/2)/(P/4)).^2);
13 %Producto gauss por original
14 ys=xs.*wh
15 %Transformadas del producto
16 dftg=abs(fftshift(fft(ys)))
17 p=length(t);
18 tau2=-1/2:1/p:1/2-1/p;
19 % Transformada de la original
20 dft=abs(fftshift(fft(xs)))
21 % Dibujo de la transformada original
22 subplot(1,3,1)
23 plot(tau2*Fs,dft/Fs)
24 title('dft senal original')
25 %dibujo de la transformada del producto
26 subplot(1,3,2)
27 plot(tau2*Fs,dftg/Fs,'r')
28 title('dft ventana de gauss')
29 % Dibujo de las dos juntas
30 subplot(1,3,3)
31 plot(tau2*Fs,dftg/Fs,'r')
32 hold on
33 plot(tau2*Fs,dft/Fs)
34 title('dft juntas')

A continuación se muestra el mismo experimento con la frecuencia


F0=6.4.
DFT y DFT ventaneada F0=6.4
Como se puede observar, las perturbaciones del seno cardinal han
sido reducidas a cambio de una pérdida de resolución.

3 Ejercicio
Partimos de una variable aleatoria discreta X que representa el
símbolo transmitido en un sistema de comunicaciones, y puede tomar
valores de 0 y 1. Por lo tanto la probabilidad de que salga cualquiera
de ellos es la misma.

A parte del símbolo transmitido, ha que tener en cuenta un ruido que


puede aparecer en el momento de la transmisión de la señal. El valor
de este ruido viene determinado por unas variables aleatorias
continuas de distribución normal. La variable N0 representa el ruido a
la hora de transmitir el símbolo 0, y sigue una distribución normal de
media 0 y desviación típica 5. Y la variable N1 es el ruido al transmitir
el valor 1, tiene una media de 0 y desviación de 1.
Una vez transmitida la señal, esta le va a llegar al receptor con un
cierto valor, que viene definida por la variable aleatoria continua Y, y el
receptor tiene que decidir si el símbolo recibido es 0 ó 1 en función de
un cierto umbral (z). Si el valor recibido es mayor que el umbral, el
receptor decide que el simbolo es 1. En cambio si es menor, el
receptor decide que el simbolo enviado es el 0.
El valor que toma la variable aleatoria Y cuando X tome el valor 0 es:

El valor que toma la variable aleatoria Y cuando X tome el valor 1 es:

3.1 Apartado 1
Tenemos que calcular la función f(z) que indica la probabilidad de que
el receptor cometa un error al identificar el símbolo transmitido.

En donde estas son funciones de densidad, definidas de esta manera:


Por lo tanto la probabilidad total de error sera:

3.2 Apartado 2
Ahora vamos a definir una nueva variable aleatoria W z que sera
discreta, ya que tomara el valor 1 si se comete un error al identificar el
símbolo, y el valor 0 si lo lee correctamente. Ahora, para un
determinado valor del umbral (z=1/2), tenemos que calcular la
esperanza de esta nueva variable:

Ahora vamos a sacar estas probabilidades de manera exacta


mediante la estadística, y después haremos la aproximación con
MatLab
Para realizar esta aproximación en MatLab usamos el siguiente
código:

1 clear all
2
3 v=10 % Hacerlo para 10,100,1.000 y 10.000
4 z=0.5;
5
6 % Valores de N0(0,5)
7 a=0+5.*randn(1,v) ;
8 for n=1:v;
9 if a(n)>z;
10 A(n)=1;
11 else
12 A(n)=0;
13 end
14 end
15
16 A;
17 s=sum(A);
18 N=length(A);
19 mediaA=s./N
20
21 % Valores de N1(0,1)
22 b=0+1.*randn(1,v);
23 for n=1:v;
24 if b(n)>z;
25 B(n)=1;
26 else
27 B(n)=0;
28 end
29 end
30
31 B;
32 s1=sum(B);
33 N1=length(B);
34 mediaB=s1./N1
35
36 Ew=mediaA+mediaB

A continuación se han realizado 4 experimentos cada uno con un


valor diferente de valores tomados (10,100,1.000 y 10.000) que han
sido representados en un gráfico para realizar una comparativa entre
ellos. Se puede observar como a medida que se aumenta el número
de puntos las medias de cada una de las variables se va estabilizando
en torno a un cierto valor, que aproximadamente coincide con el valor
anteriormente calculado con las tablas de la distribución normal.
3.3 Apartado 3
Vamos a elegir el umbral más óptimo de z que nos minimice el error
esperado. Para ello tomamos 100 valores equidistribuidos a lo lago
del intervalo [-1,2], y a cada uno le asociamos la esperanza obtenido
según el anterior apartado. Posteriormente representamos estas
esperanzas en una gráfica.

Representación de las esperanzas obtenidas en un experimento


aleatorio, indicando la menor con un círculo

1 clear all
2
3 v=100;
4 z=0.5;
5
6
7 for j=1:100
8
9 a=0+5.*randn(1,v) ;
10 for n=1:v
11 if a(n)>z
12 A(n)=1;
13 else
14 A(n)=0;
15 end
16
17 end
18
19 mediaA(j)=sum(A)/100
20
21
22 b=0+1.*randn(1,v);
23 for n=1:v;
24 if b(n)>z;
25 B(n)=1;
26 else
27 B(n)=0;
28 end
29 end
30
31 mediaB(j)=sum(B)/100
32
33 Ex=mediaA+mediaB
34 end
35
36
37 % Intervalo [-1,2] con 100 puntos
38 zi=linspace(-1,2,100);
39
40 plot(zi,Ex)
41 axis([-1 2 0 1])
42
43 [m,k]=min(Ex)
44 hold on
45 xh=@(x)+m
46 fplot(xh,[-1,2],'r')
47 vk=zi(k)
48 plot(vk,m,'ko')
49
50 x=vk
51 x1=[x x]
52 y=[-1,2]
53 plot(x1,y,'r')
54
55 gtext(num2str(vk))
56 gtext(num2str(m))

Вам также может понравиться