Sei sulla pagina 1di 4

PRÁCTICAS TRANSMISIÓN

DIGITAL
Alejandro Casal Da Silva 47362793-C

Tarea 4. Sincronización gruesa de frecuencia.

Una vez que hemos hecho el paso a frecuencia, lo siguiente que debemos llevar
a cabo es una sintonización gruesa, es decir, detectar un posible desplazamiento de la
señal en frecuencia en un número entero de portadoras. Recordemos que la
sintonización fina ya la hemos llevado a cabo antes de calcular la FFT.

Para detectar el desplazamiento frecuencial, disponemos en la señal de tres


portadoras piloto que están realzadas en potencia (para el modo B, la 16, la 48 y la 64).
Sin embargo, en las FFT individuales de cada trama esto no se percibe, lo que debemos
hacer es promediar todas las FFT, y en la señal resultante sí distinguiremos los picos.
Esto se debe a que en cada FFT, las portadoras que no son las pilotos toman valores
altos y otros bajos, con lo cual al promediar quedarán en un valor medio, mientras que
las portadoras piloto tienen un valor alto en todas las FFTs, de forma que en el
promedio quedarán claramente realzadas.

El promediado de FFTs lo haremos basándonos en el método de Welch,


promediando el módulo de las FFTs al cuadrado, ya que las portadoras están realzadas
en potencia, y la forma de relacionar la FFT con la potencia es con el módulo al
cuadrado. Una vez realizado el promedio, construiremos tres vectores auxiliares, cada
una con las portadoras cercanas a las piloto teóricas, y hallaremos el máximo de cada
vector. Al restar el máximo de cada vector con el valor de la portadora piloto teórica,
deberíamos obtener el mismo valor en los tres casos, y ese será el desplazamiento
frecuencial que buscamos.

El código que realiza esto es el siguiente:

% PROMEDIADO DE LAS FFT


Q_suma=zeros(1,Nu); % Inicializamos señal auxiliar
for r=1:length(Q) % En la señal auxiliar vamos
for s=1:Nu % introduciendo la suma del
Q_suma(s)=Q_suma(s)+(abs(Q(r,s)))^2; % valor absoluto de las
end; % FFT al cuadrado.
end;
Qm=Q_suma/length(Q); % Dividimos entre el número de FFTs.
plot([1:Nu],10*log10(Qm)),title('Promediado del módulo de las FFTs al
cuadrado');
pause;

% OBTENCIÓN DE LOS MÁXIMOS


Qm_1=Qm(1:40); % Construimos tres señales a partir de la
Qm_2=Qm(41:60); % señal promedio, cogiéndo las portadoras
Qm_3=Qm(61:150); % cercanas a de referencia teóricas.
[max1,p_m1]=max(Qm_1); % Posición del primer pico.
[max2,p_m2]=max(Qm_2);
p_m2=p_m2+40; % Posición del segundo pico.
[max3,p_m3]=max(Qm_3);
p_m3=p_m3+60; % Posición del tercer pico.

% OBTENCIÓN DEL DESPLAZAMIENTO FRECUENCIAL


d1=p_m1-16;
d2=p_m2-48;
d3=p_m3-64;
if ((d1==d2)&&(d2==d3))
desp_frec=d1;
end;

% CORRECCIÓN DEL DESPLAZAMIENTO


Q_aux=zeros(1,Nu);
Q_suma=zeros(1,Nu); % Señales auxiliares
for r=1:length(Q)
Q_aux(1:Nu-desp_frec)=Q(r,desp_frec+1:Nu);% Principio de la señal
Q_aux(Nu-desp_frec+1:Nu)=Q(r,1:desp_frec);% Final de la señal
Q(r,1:Nu)=Q_aux; % Corrección de la FFT
for s=1:Nu
Q_suma(s)=Q_suma(s)+(abs(Q(r,s)))^2; % Promediado
end;
end;
Qm=Q_suma/length(Q); % Dividimos entre el número de FFTs.
plot([1:Nu],10*log10(Qm)),title('Promediado corregido');

Para la señal ‘drm-6095.if.wav’ obtenemos los siguientes resultados (señal


promedio, posiciones de los picos, desplazamiento frecuencial y promediado corregido):

Promediado del módulo de las FFTs al cuadrado


10

-5

-10

-15

-20
0 50 100 150 200 250 300
p_m1 = 18, p_m2 = 50, p_m3 = 66, desp_frec = 2

Promediado corregido
10

-5

-10

-15

-20
0 50 100 150 200 250 300

Para la señal ‘drm-15435.if.wav’ los resultados son:

Promediado del módulo de las FFTs al cuadrado


10

-5

-10

-15

-20
0 50 100 150 200 250 300
p_m1 = 21, p_m2 = 53, p_m3 = 69, desp_frec = 5

Promediado corregido
10

-5

-10

-15

-20
0 50 100 150 200 250 300

Potrebbero piacerti anche