PRÁCTICAS TRANSMISIÓN DIGITAL Alejandro Casal Da Silva 47362793-C
Tarea 1. Demodulación y diezmado. La primera tarea que debemos llevar a cabo en nuestro receptor DRM es demodular la señal DRM para bajarla a bandabase. Se nos dará la señal en frecuencia intermedia de 12 KHz muestreada a 48 KHz. Para la bajada a banda base es necesaria la multiplicación por una exponencial compleja y un filtrado paso-bajo. Posteriormente diezmaremos la señal por 4 para tener una frecuencia de muestreo de 12 KHz. Esto lo llevaremos a cabo de dos formas: con un filtro paso-bajo de fase lineal y una estructura polifase. Con el filtro paso-bajo, tenemos las siguientes operaciones (iremos visualizando los espectros de cada señal intermedia). [y,fs,nbits]=wavread('drm-15435.if.wav'); pwelch(y), title('Señal original');
% Lectura de la señal % Visualización de señal
Señal original 30 20
Power/frequency (dB/rad/sample)
10 0 -10 -20 -30 -40 -50 -60 -70
0
0.1
0.2
0.3 0.4 0.5 0.6 0.7 0.8 Normalized Frequency ( rad/sample)
Ts=1/fs; n=0:length(y)-1; dem=exp(-i*2*pi*n*Ts*12e+3);
0.9
1
% Periodo de muestreo % Exponencial compleja
dem=dem'; BB=y.*dem; pwelch(BB,[],[]);
% para demodular % Señal bandabase % Espectro señal bandabase Señal bandabase
40
Power/frequency (dB/rad/sample)
20
0
-20
-40
-60
-80
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
Diseñamos el filtro con la herramienta fdatool y los siguientes parámetros: tipo FIR Least-Squares, wpass=0.2, Wpass=1, wstop=0.4, Wstop=1, orden=40 y lo exportamos como coeficientes con el nombre LPF. La respuesta al impulso debe ser la siguiente. 0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
0
5
10
15
20
25
30
35
40
Mientras que la respuesta en frecuencia es la siguiente (podemos comprobar que el filtro es de fase lineal).
% FILTRADO PASO BAJO BB_f=filter(LPF,1,BB); pwelch(BB_f),title('Señal filtrada')
% Señal bandabase filtrada % Espectro señal filtrada
Señal filtrada 20
Power/frequency (dB/rad/sample)
0
-20
-40
-60
-80
-100
-120
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
% DIEZMADO BB_f_d=BB_f(1:4:length(BB_f));
1.8
% Señal diezmada
BB_fin_lineal=BB_f_d'; pwelch(BB_fin_lineal),title('Señal final'); % Espectro señal diezmada Señal final 0
Power/frequency (dB/rad/sample)
-10
-20
-30
-40
-50
-60
-70
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
Ahora pasamos a la implementación del filtrado y el diezmado mediante una estructura polifase. Para ello, partimos de la señal bandabase, y creamos 4 señales, cada una de ellas con un retardo k (k = 0,1,2,3) y diezmada por cuatro. También construimos cuatro filtros a partir del ya diseñado, cogiendo muestras de cuatro en cuatro (el primero la 0,4,..., el segundo la 1,5,..., y así sucesivamente). Filtramos cada señal con uno de los filtros y luego las sumamos todas. Debemos obtener exactamente el mismo resultado que con la otra implementación. % CONSTRUCCIÓN DE LAS SEÑALES BB1=BB(1:4:end); BB_2=[0; BB(1:end-1)]; BB2=BB_2(1:4:end); BB_3=[0; 0; BB(1:end-2)]; BB3=BB_3(1:4:end); BB_4=[0; 0; 0; BB(1:end-3)]; BB4=BB_4(1:4:end); % CONSTRUCCIÓN DE LOS FILTROS LPF1=LPF(1:4:end); LPF_2=LPF(2:4:end); LPF2=[LPF_2 0]; LPF_3=LPF(3:4:end); LPF3=[LPF_3 0]; LPF_4=LPF(4:4:end); LPF4=[LPF_4 0]; % FILTRADO DE LAS SEÑALES BB1_f=filter(LPF1,1,BB1); BB2_f=filter(LPF2,1,BB2); BB3_f=filter(LPF3,1,BB3); BB4_f=filter(LPF4,1,BB4);
% % % % % % %
Diezmado: Señal con Diezmado: Señal con Diezmado: Señal con Diezmado:
primera señal un retardo segunda señal dos retardos tercera señal tres retardos cuarta señal
% Primer filtro % Segundo filtro % Tercer filtro % Cuarto filtro
% RECONSTRUCCIÓN DE LA SEÑAL BB_fil=BB1_f+BB2_f+BB3_f+BB4_f; BB_fin_poli=BB_fil'; pwelch(BB_fin_poli),title('Señal final con estructura Polifase'); Señal final con estructura Polifase 0
Power/frequency (dB/rad/sample)
-10
-20
-30
-40
-50
-60
-70
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
Power/frequency (dB/rad/sample) Power/frequency (dB/rad/sample)
Por último, representamos simultáneamente las señales conseguidas con ambos métodos para constatar que son iguales. Filtro de Fase Lineal 0 -20 -40 -60 -80
0
0.2
0.4
0.6 0.8 1 1.2 1.4 Normalized Frequency ( rad/sample) Estructura Polifase
1.6
1.8
0
0.2
0.4
0.6 0.8 1 1.2 1.4 Normalized Frequency ( rad/sample)
1.6
1.8
0 -20 -40 -60 -80
Ahora representamos las figuras obtenidas para la otra señal de ejemplo. Los comandos de MATLAB son los mismos, excepto la lectura de la señal. Tampoco representamos la respuesta al impulso del filtro, porque será la misma.
Señal original 30 20
Power/frequency (dB/rad/sample)
10 0 -10 -20 -30 -40 -50 -60 -70
0
0.1
0.2
0.3 0.4 0.5 0.6 0.7 0.8 Normalized Frequency ( rad/sample)
0.9
Señal bandabase 40
Power/frequency (dB/rad/sample)
20
0
-20
-40
-60
-80
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
1
Señal filtrada 20
Power/frequency (dB/rad/sample)
0
-20
-40
-60
-80
-100
-120
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
Señal final 10
Power/frequency (dB/rad/sample)
0 -10 -20 -30 -40 -50 -60 -70
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
Señal final con estructura Polifase 10
Power/frequency (dB/rad/sample)
0 -10 -20 -30 -40 -50 -60
Power/frequency (dB/rad/sample) Power/frequency (dB/rad/sample)
-70
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
Filtro de Fase Lineal 50
0
-50
-100
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample) Estructura Polifase
1.8
0
0.2
0.4
0.6 0.8 1 1.2 1.4 1.6 Normalized Frequency ( rad/sample)
1.8
50
0
-50
-100