Академический Документы
Профессиональный Документы
Культура Документы
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:
eF02Πit δF0(Ί)
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')
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,
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 %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
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 :
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')
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')
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
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?
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')
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')
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.
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.
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:
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
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))