SlideShare uma empresa Scribd logo
1 de 9
Laboratorio de Comunicaciones Digitales
ETSII Telecomunicación
Ingeniería de Telecomunicación
Universidad de Cantabria
Curso 2010/2011
                                      PRACTICA 1
METODOLOGÍA

        El alumno dispone de tres sesiones de laboratorio para realizar esta práctica. La
realización es individual, aunque la evaluación se hará por parejas en función de la entrega
resuelta del cuestionario (uno por pareja) y de un programa ejecutable que resuelva el
epígrafe "PROBLEMA", que vaya mostrando de forma clara y ordenada las respuestas
exigidas y que se denominará X:Practica1problema.m (los alumnos de cada pareja dejarán el
mismo programa en ambas cuentas). Se recomienda la utilización de los comandos
disp('texto'), disp('var'), pause, title, xlabel, ylabel, legend, clg y clc en los ficheros .m para
documentar los resultados presentados en pantalla.

OBJETIVOS

        El objetivo de esta práctica es familiarizar al alumno con la generación y adquisición
de señales de comunicaciones atendiendo a aspectos tales como el muestreo, el aliasing y los
efectos de la cuantificación. Posteriormente se estudiará la caracterización de señales de
comunicaciones y el ruido mediante histogramas, densidad espectral de potencia y
autocorrelación. Finalmente se estudiarán los códigos de línea más comunes y su densidad
espectral de potencia así como el efecto del ruido en los mismos. Para la realización de esta
práctica es conveniente que el alumno lleve al laboratorio unos auriculares que le permitan
escuchar las distintas señales generadas.

1. MUESTREO Y RECONSTRUCCIÓN DE SEÑALES

a) Generación de señales. Generar en MATLAB un seno de frecuencia 2KHz y amplitud 0.5
muestreado a distintas frecuencias de muestreo. Dicha señal se observará tanto en el
ordenador como en el osciloscopio, siendo posible, así mismo, escucharla.

   f=2000;                   % frecuencia del tono a generar
   fso=1e6;                         % frecuencia de muestreo de referencia para los dibujos
   No= fso*1e-3;
   to=(0:No-1)/fso;                 % representaremos 1 ms de la señal
   xo=0.5*sin(2*pi*f*to); % señal de referencia (muy sobremuestreada)
   for fs=[44100 22050 11025];
        N=fs*1;                     % nº de muestras, p.e. 44100 muestras/s * 1 s = 44100
   muestras
        t=(0:N-1)/fs;               % Vector con los instantes de muestreo: 1 s a fs Hz
        x=0.5*sin(2*pi*f*t);        % Señal muestreada
           frec_muestreo(fs);
        envia(x,5);          % Reproducimos la señal 5 veces (5 s) con la tarjeta de sonido
        plot(to*1e3,xo,'k',t*1e3,x,'b-o');axis([0,1,-1,1]);
           legend('Señal original','Señal muestreada');xlabel('milisegundos')
        pause;cierra(0); % Se finaliza la generación cuando se pulse una tecla
   end

Notar que es necesario sobremuestrear (por un factor superior a 10) para que el “dibujo” de
MATLAB se parezca a la señal de tiempo continuo. Sin embargo, mientras se cumpla el

                                                1
teorema de muestreo, la señal observada en el osciloscopio o escuchada con los auriculares es,
efectivamente, un seno de 2 KHz.

b) Muestreo incorrecto. Generar en MATLAB un seno de frecuencia 9 KHz y amplitud 0.5
muestreado a distintas frecuencias de muestreo. Dicha señal se observará tanto en el
ordenador como en el osciloscopio y se escuchará con los auriculares.

   f=9000;                % frecuencia de la señal senoidal
   fso=1e6;                      % frecuencia de muestreo de referencia para los dibujos
   No= fso*2e-3;
   to=(0:No-1)/fso;              % representaremos 2 ms de la señal
   xo=0.5*sin(2*pi*f*to); % señal de referencia (muy sobremuestreada)

    for fs=[44100 22050 11025];
         N=fs*1;                      % nº de muestras en un segundo a fs muestras/s
         t=(0:N-1)/fs;                % Vector con los instantes de muestreo: 1s a fs Hz
         x=0.5*sin(2*pi*f*t);         % Señal muestreada
         fr=rem(f,fs);fr=fr-fs.*(fr>fs/2); % frecuencia de señal reconstruida (con posible
aliasing)
         xr=0.5*sin(2*pi*fr*to);              % Señal reconstruida
         plot(1e3*to,xo,'k',1e3*t,x,'r-o');legend('Señal original','Señal muestreada');axis([0 1 -1 1])
         title(sprintf('frec. señal:%iHz frec. muestreo:%iHz periodo muestreo: %fms',f,fs,1e3/fs))
         xlabel('t (ms)')
         uiwait(msgbox('Observe en la grafica la señal original y la señal muestreada. Luego
    pulse "OK" para escuchar y ver la señal reconstruida'))
         plot(1e3*to,xo,'k',1e3*t,x,'r-o',1e3*to,xr,'b');
         legend('original','muestreada','reconstruida');axis([0 1 -1 1])
         title(sprintf('frec. señal:%iHz frec. muestreo:%iHz periodo muestreo: %fms',f,fs,1e3/fs))
         xlabel('t (ms)')
         frec_muestreo(fs);
         envia(x,5);           % Reproducimos la señal 5 veces (5 s) con la tarjeta de sonido
         pause;cierra(0)
    end

Notar como, para ciertas frecuencias de muestreo (aquellas para las que no se cumple el
teorema de muestreo), la señal reconstruida no se corresponde con la señal original de 9 KHz.
¿Cuáles son dichas frecuencias?. ¿Cuál sería la frecuencia mínima de muestreo para la señal
de 9 KHz?.

c) Efecto del aliasing. En este ejercicio, un alumno generará un seno de frecuencia 9 KHz y
amplitud 0.5 con una frecuencia de muestreo de 44100 muestras/s tal y como se hizo en
anteriores ejercicios. El compañero deberá adquirir dicha señal utilizando diversas frecuencias
de muestreo. Conectar la salida TX del Alumno1 con la entrada RX del Alumno2 y ejecutar
el siguiente código:

ALUMNO1 (el que genera la señal)
   f=9000;                        % frecuencia de la señal senoidal
   fs=44100;                             % frecuencia de muestreo
   N= fs*1;
   t=(0:N-1)/fs;                         % generaremos 1 s de la señal
   x=0.5*sin(2*pi*f*t);                  % señal original
   frec_muestreo(fs);envia(x,60); % Reproducimos la señal 60 veces (1 minuto)
                                         % Ahora el Alumno2 deberá ejecutar su código
   pause;cierra(0)                % pulsar una tecla cuando haya finalizado el Alumno2




                                                  2
ALUMNO2 (el que adquiere la señal)
   fs1=44100;N1=1*fs1;t1=(0:N1-1)/fs1; % Numero de muestras en 1 sg a fs1 muestras/s
   frec_muestreo(fs1);x1=recibe(1,N1); % Adquirimos N1 muestras (1 seg.) a fs1 muestras/s

   % Se adquieren x2 y x3 a 22050 y 11025 muestras/s respectivamente
   fs2=22050;N2=1*fs2;t2=(0:N2-1)/fs2;frec_muestreo(fs2);x2=recibe(1,N2);
   fs3=11025;N3=1*fs3;t3=(0:N3-1)/fs3;frec_muestreo(fs3);x3=recibe(1,N3);

Mientras el Alumno1 ejecuta su programa (genera la señal), el Alumno2 ejecuta el suyo de
forma que adquiere las cuatro señales x1, x2 y x3 (con tres frecuencias de muestreo distintas).
El Alumno2 puede observar las señales adquiridas haciendo, por ejemplo:

   plot(t1,x1,'r',t2,x2,'b',t3,x3,'g'); % dibuja todas las señales
   axis([0 1e-3 -1 1])                  % observamos el primer milisegundo (use también el zoom)

Razone que es lo que ha ocurrido. Ahora, el Alumno1 debe observar la señal original en el
canal 1 del osciloscopio (ejecutando envia(x,100) y conectando su señal al canal 1 del
osciloscopio). Simultáneamente, el Alumno2 debe observar en el canal 2 una cualquiera de
las señales adquiridas (p.e. ejecutando frec_muestreo(fs3);envia(x3,100)), calcule su
frecuencia, compárela con la del canal 1 y compruebe en que casos el muestreo no ha sido
correcto.

2. CUANTIFICACIÓN DE SEÑALES

        Los sistemas digitales, así como los conversores A/D y D/A, poseen una resolución
finita, marcada por el número de bits. Este hecho limita la precisión con la que las señales
pueden ser adquiridas, generadas y procesadas. En este experimento se trata de cuantificar,
con distintas precisiones, una señal de voz contenida en el fichero voz.mat. De esta forma, el
alumno podrá observar como afecta el número de bits de cuantificación al nivel del error de
cuantificación, a la relación señal a ruido de cuantificación, a la función densidad de
probabilidad del error y a su densidad espectral de potencia.

a) Cargamos la señal de voz y observamos su histograma, lo que nos dará idea de la función
densidad de probabilidad de la señal de voz.

   frec_muestreo(11025);          % frecuencia de muestreo 11025 Hz
   load voz.mat                   % en la variable x tenemos la señal de voz
   close all;subplot(221);hist(x,50)       % la función hist(x) dibuja el histograma del vector x
   title('Histograma señal original');xlabel('Voltios')

b) Dibuje la densidad espectral de potencia (DEP) de la señal de voz, de manera que pueda
observar que frecuencias poseen más potencia. Utilize la función:
                    sx=espect (señal, número_de_puntos, frecuencia_máxima)

El número_de_puntos afecta a la estima del espectro, cuanto mayor sea, más muestras se
obtienen, pero también más variabilidad. La frecuencia_máxima determina el límite superior
(el inferior es cero) del eje de abcisas al dibujar el espectro. Si se utiliza una variable de salida
sx, en ella se obtienen las muestras del espectro, si no se utiliza ninguna, la función lo dibuja.
Si no se incluyen el número_de_puntos o la frecuencia_máxima toma valores por defecto.

   subplot(222);espect(x,200); title('DEP de la señal original'); % dibuja la dep




                                                 3
c) Cuantificación de la señal de voz utilizando 10 bits por muestra

  xq=cuantifica(x,10);                                    % cuantificamos la señal con 10 bits
  error=x-xq;
  subplot(224);espect(xq,100);axis([0 6 -110 -40])        % espectro de la señal cuantificada
  hold on;espect(error,100);hold off                      % espectro del error de cuantificación
  grid;legend('Señal Cuantificada','Error Cuantificación')
  subplot(223);hist(error,20)                             %     histograma     del   error     de
  cuantificación
  title('Histograma error');xlabel('Voltios');pause;
  hist(xq,50); title('Histograma señal cuantificada');xlabel('Voltios');
  SNRq=10*log10(mean(x.^2)/mean(error.^2)) % Relación señal-ruido de cuantificación
  envia([ x , xq ]/2);pause;cierra(0)                     % izda = original drcha = cuantificada

d) El alumno deberá repetir el apartado c) para distinto número de bits (probar con 8, 6 y 4)
observando cómo afecta dicho número al espectro de la señal cuantificada y del error; al
histograma del error; y a la calidad de la señal cuantificada, tanto cuantitativa (SNRq) como
cualitativamente (al observarla en el osciloscopio y escucharla).

3. GENERACIÓN DE SEÑALES DE COMUNICACIONES

       En la actualidad, la inmensa mayoría de los sistemas de comunicaciones digitales son
implementados totalmente (salvo las etapas de radiofrecuencia) en el dominio discreto
mediante microprocesadores, DSP's u otros circuitos integrados digitales. En la figura 1 se
muestra un esquema típico de un transmisor digital banda base.



           bits                   símbolos                  muestras                    señal
         Rb bits/s              Rs símbolos/s                 fs                       de línea



             bn                       An                        x[n]                     x(t)
                      Codificador               Filtro                 CONVERSOR
                                      Transmisor                          D/A
                              TRANSMISOR

                          Sistema Digital Discreto



                     Figura 1. Sistema de comunicaciones en banda de base.

       Es importante que el alumno comprenda la relación entre velocidad binaria (Rb bits/s),
velocidad de símbolo (Rs baudios o símbolos por segundo) y frecuencia de muestreo de la
señal de línea (fs muestras/s) para señales de comunicaciones del tipo

                                     x(t) = ∑ A n h(t − nT) .
                                            n




                                                4
a) Generaremos una señal conformada triangularmente de 1102.5 bits/sg con distintas
frecuencias de muestreo, es decir, distinto número de muestras por símbolo.

   b=[1 0 1 0 1 1 0 0 1 0];                 % bits
   A=2*b-1;                                        % símbolos
   subplot(212);stem(b);title('bits');
   subplot(211);stem(A);title('símbolos');pause %dibujamos las secuencias de bits y símbolos
   fs1=44100;frec_muestreo(fs1);
   N1=40; % 40 muestras/símb, fs=44100Hz  Rs=44100/40=1102.5 baudios
   x1=filtro_tx(A,N1);
   t1=(0:length(x1)-1)/fs1;                        % vector de tiempos para el dibujo
   plot(t1,x1,'-o');title('señal de línea')        % dibujamos las muestras de la señal de línea
   envia([x1 ; 1 zeros(1,length(x1)-1)]/2,500);    % observe la señal en el osciloscopio
   pause;cierra(0);                                % realice el Trigger con el canal 2

Repita el filtrado y visualice (tanto en la pantalla del ordenador como en el osciloscopio) la
misma señal pero con frecuencias de muestreo fs2=22050 Hz (N2=20) y fs3=11025 (N3=10).
Compruebe que, en todos los casos, la señal de línea que se observa en el osciloscopio es la
misma (fíjese especialmente en que todas poseen la misma velocidad de símbolo) a pesar de
haber sido generadas con distintas frecuencias de muestreo.

4. CODIGOS DE LÍNEA

         Como se recordará, existen diferentes tipos de codificación en los sistemas digitales.
En los sistemas banda base es común utilizar códigos de línea con objeto de conformar el
espectro de la señal de comunicaciones (por ejemplo para eliminar la componente continua,
facilitar la recuperación de sincronismo, etc.). En este apartado vamos a simular digitalmente
(representándolas mediante sus muestras) señales conformadas mediante diferentes códigos
de línea. Así mismo podremos observar en el osciloscopio las señales reales que viajan por el
canal sin más que enviarlas a la tarjeta de sonido.

                                         ATENCION
        Para que el entorno de simulación funcione adecuadamente es necesario inicializar
una serie de variables globales ejecutando la función iniciar. Al ejecutar iniciar el programa le
solicitará el número de experimento:

   >>Introduzca el número de experimento

       debe introducir un 1. El programa responderá:

   >>=================================================
   >> En esta sesión de MATLAB se utilizan 10 muestras por símbolo.
   >> Asumiendo un régimen binario de 800 bits/seg, la frecuencia
   >> de muestreo es 8 [kHz].
   >> La componente frecuencial más alta que pueden manejar las
   >> rutinas MATLAB es menor o igual que 4.00 [kHz].
   >>===================================================

Esta inicialización implica que se utilizarán 10 muestras por símbolo, con lo que una señal de
comunicaciones binaria a 800 baudios se muestreará a 8 KHz (ancho de banda de simulación
4 KHz). En el caso de que el programa no se comporte de esta manera, ejecute el comando
clear global y repita la operación. Si persisten los problemas pregunte al profesor.


                                               5
a) Generaremos formas de onda digitales usando el comando wave_gen:

          wave_gen( secuencia binaria, 'nombre del código de línea', Régimen binario)

   b= [1 0 1 0 1 1];                           % generamos la secuencia binaria
   x=wave_gen(b,'unipolar_nrz', 800);    % usamos NRZ unipolar y 800 bits por segundo
   waveplot(x)                                 % dibujamos la señal resultante
   envia(x/2,2000);                            % observe la señal en el osciloscopio
   pause;cierra(0);

Nota: En este caso se envía a la tarjeta de sonido la señal x/2 para evitar que se sature el
conversor D/A, que posee un rango de ±0.7V. Esto deberá ser tenido en cuenta por el alumno
al observar los niveles de la señal en el osciloscopio. Recuerde así mismo que la tarjeta de
sonido no es capaz de proporcionar niveles de continua.

b) Repita el apartado a) para los siguientes códigos de línea:
                      • polar NRZ ('polar_nrz');
                      • unipolar RZ ('unipolar_rz');
                      • bipolar RZ ('bipolar_rz');
                      • manchester ('manchester');

Observe como implementa MATLAB el vector x. ¿Cuántas muestras se utilizan por
símbolo?. ¿Por qué las señales observadas en el osciloscopio no son perfectamente
“cuadradas”?. Con el hardware de que dispone, ¿cómo podría paliar este efecto en una señal
de 800bps?.

c) Genere una secuencia binaria de longitud 1000 y dibuje la DEP para cada código de línea
del apartado b), por ejemplo,

   b= binary(1000);
   espect(wave_gen(b,'nombre del código de línea', 800));

d) Para ilustrar la dependencia de la densidad espectral de potencia con el régimen binario
ejecute el programa codlin. Observe la DEP del código de línea manchester con regímenes
binarios de 250 bps, 400 bps, 500 bps y 1 Kbps. Utilice una frecuencia de muestreo de 8000
hercios y calcule el número de muestras por símbolo utilizado en cada caso. Observe las
variaciones de los ceros espectrales y relaciónelos con el régimen binario. Observe así mismo
las señales en el osciloscopio (envíe las señales un número suficientemente alto de veces y
realice el trigger con el canal 2)


5. RUIDO

        Por último, resulta de interés generar ruido para simular su efecto en los sistemas de
comunicación. En la realidad resulta imposible muestrear (adecuadamente) ruido blanco
Gaussiano (¿por qué?), pero si generamos repetidas realizaciones independientes de una v.a.
Gaussiana obtenemos un ruido en tiempo discreto que nos permite simular el efecto del ruido
en comunicaciones. En el apartado siguiente se pretende ilustrar la simulación en tiempo
discreto de señales de comunicaciones en ruido. Así mismo, el alumno podrá observar el


                                               6
efecto del ruido en la señal de línea por medio del osciloscopio.




                                               7
a) Secuencias de ruido. Genere secuencias de 1000 puntos de ruido Gaussiano. Recuerde
ejecutar iniciar con experimento 1

   r=randn(1,10000);    % genera 1x10000 muestras de v.a. Gaussiana (media=0 y
   varianza=1)
   subplot(211);waveplot(r);

Dibuje el histograma de la señal

   subplot(212);hist(r,20);axis([-3 3 0 2000]);xlabel('Voltios');pause;

Dibuje ahora la autocorrelación y la DEP de la señal

   subplot(211);acf(r);   % la función acf(x) estima y dibuja la autocorrelación de la
   secuencia x
   subplot(212); espect(r,256);axis([0 4 -50 0])

Repita el proceso varias veces, comprobando que señales de ruido totalmente distintas dan
lugar a histogramas, autocorrelaciones y densidades espectrales de potencia similares.

b) Efecto del ruido en la forma de onda transmitida: Genere 10 símbolos de una señal
NRZ polar con un régimen binario de 800 bps. Genere ruido Gaussiano discreto. Súmeselo a
la señal x, dibuje ambas señales y obsérvelas en el osciloscopio

   b=binary(10); x=wave_gen (b,'polar_nrz',800);
   ruido=0.1*randn(size(x));
   y=x+ruido;
   subplot(211), waveplot(x);title('Señal')
   subplot(212), waveplot(y);title('Señal + Ruido')       % Observe los valores de pico de la
   señal
   escala=?????            % aplique un valor de escala adecuado para evitar saturar el D/A
   envia([x , y]/escala,2000);    % utilice el valor de escala al enviar las señales a la tarjeta
   pause;cierra(0);

¿Cómo estimaría la potencia de ruido a partir de las muestras del vector "ruido"?¿y la
potencia de la señal y? Genere señales cada vez más largas y compruebe cómo las estimas de
las potencias mejoran.

c) Repita el apartado b) para valores de la potencia de ruido de 0.5,1 y 2.5 (tenga en cuenta en
cada caso la posible saturación de la tarjeta de sonido).

d) También se puede observar el efecto de incrementar la potencia de ruido viendo la
densidad espectral de potencia de la señal de salida.

   b=binary(1000); x=wave_gen (b, 'polar_nrz',800);
   ruido=0.1*randn(size(x));
   espect(x); hold on
   espect(x+ruido); grid; hold off;

Superponga sobre la densidad espectral de potencia de la señal ruidosa la de las otras señales
del apartado c) y compruebe el efecto en el espectro de incrementar el ruido.




                                                 8
6. PROBLEMA

        En este problema los alumnos compararán las prestaciones de un cuantificador
uniforme y de un cuantificador no uniforme (ley A). Partiendo de la señal de voz x incluida
en el fichero voz.mat deberán cuantificarla con 8 bits y obtener la relación señal a ruido de
cuantificación de ambos métodos para distintos niveles de potencia de la señal original.


                                          Cuantificador
                                             Uniforme              y1[n]
                                               8 bits                ↑
 x[n]                                       Rango ±1V              SNR1
        G        x2[n]

                                          Cuantificador
                    Compresor                               bn
                                             Uniforme               Expansor            y2[n]
                         Ley A
                                               8 bits                 Ley A               ↑
                         C( x )
                                            Rango ±1V                                   SNR2
        Para ello, deberá implementar una función que lleve a cabo la compresión de la señal
original siguiendo la expresión:
                                        A| x|                           1
                                    1 + ln( A) sign( x),      0 ≤| x |≤ ;
                                                                         A
                                   
                          C ( x) = 
                                   1 + ln( A | x |)            1
                                                    sign( x),    ≤| x |≤ 1.
                                    1 + ln( A)                 A
        con A=87.56. Así mismo, se realizará una función de matlab que implemente el
expansor, es decir, la función inversa de C(x).

       En resumen, utilizando Matlab deberá aplicar ambos cuantificadores y obtener SNR1
y SNR2 (en decibelios) para la señal original (x2=x). Posteriormente deberá repetir el proceso
para distintos niveles de potencia de la señal, sin más que escalar la señal original ( x2=G*x
con G variando desde 1 hasta 1/100). Finalmente deberá presentar una gráfica que muestre la
potencia de la señal de entrada x2 (en dBWatt) en el eje horizontal y la SNR (en decibelios)
de ambos métodos en el eje vertical. Se deberán repetir las simulaciones y presentar la gráfica
para cuantificadores de 8 y de 5 bits.




                                              9

Mais conteúdo relacionado

Mais procurados

Asignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de SmithAsignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de SmithPaolo Castillo
 
6.2 Propagacion de oonda en linea de transmision
6.2 Propagacion de oonda en linea de transmision6.2 Propagacion de oonda en linea de transmision
6.2 Propagacion de oonda en linea de transmisionEdison Coimbra G.
 
Sistemas de Microondas - Capítulo V Equipos de Radio
Sistemas de Microondas - Capítulo V Equipos de RadioSistemas de Microondas - Capítulo V Equipos de Radio
Sistemas de Microondas - Capítulo V Equipos de RadioAndy Juan Sarango Veliz
 
Mod demod am_2014_1(1)
Mod demod am_2014_1(1)Mod demod am_2014_1(1)
Mod demod am_2014_1(1)gmeneses23
 
filtro FIR pasabanda con MATLAB
filtro FIR pasabanda con MATLABfiltro FIR pasabanda con MATLAB
filtro FIR pasabanda con MATLABchrisleoflg
 
Modulacion en frecuencia fm
Modulacion en frecuencia fmModulacion en frecuencia fm
Modulacion en frecuencia fmGustavo ZellCa
 
Amplificador Realimentado (Entrada, Salida y Ganancia)
Amplificador Realimentado (Entrada, Salida y Ganancia)Amplificador Realimentado (Entrada, Salida y Ganancia)
Amplificador Realimentado (Entrada, Salida y Ganancia)David Díaz
 
MUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALESMUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALESLinda Yesenia
 
Radio labo-1 FIGUEROA UNAC FIEE
Radio labo-1 FIGUEROA UNAC FIEERadio labo-1 FIGUEROA UNAC FIEE
Radio labo-1 FIGUEROA UNAC FIEERicardo Gonzales
 
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...Fernando Marcos Marcos
 
Ruido En Sistemas De Comunicaciones
Ruido En Sistemas De ComunicacionesRuido En Sistemas De Comunicaciones
Ruido En Sistemas De Comunicacionesgbermeo
 
Amplificadores operacionales con funciones de transferencia
Amplificadores operacionales con funciones de transferenciaAmplificadores operacionales con funciones de transferencia
Amplificadores operacionales con funciones de transferenciaMartín E
 

Mais procurados (20)

Teoría Básica de Diodos
Teoría Básica de DiodosTeoría Básica de Diodos
Teoría Básica de Diodos
 
Parametros de AM
Parametros de AMParametros de AM
Parametros de AM
 
Asignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de SmithAsignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de Smith
 
6.2 Propagacion de oonda en linea de transmision
6.2 Propagacion de oonda en linea de transmision6.2 Propagacion de oonda en linea de transmision
6.2 Propagacion de oonda en linea de transmision
 
Filtros activos en general
Filtros activos en generalFiltros activos en general
Filtros activos en general
 
Sistemas de Microondas - Capítulo V Equipos de Radio
Sistemas de Microondas - Capítulo V Equipos de RadioSistemas de Microondas - Capítulo V Equipos de Radio
Sistemas de Microondas - Capítulo V Equipos de Radio
 
Fm 2014 1
Fm 2014 1Fm 2014 1
Fm 2014 1
 
Mod demod am_2014_1(1)
Mod demod am_2014_1(1)Mod demod am_2014_1(1)
Mod demod am_2014_1(1)
 
filtro FIR pasabanda con MATLAB
filtro FIR pasabanda con MATLABfiltro FIR pasabanda con MATLAB
filtro FIR pasabanda con MATLAB
 
Circuitos moduladores y receptores de am
Circuitos moduladores y receptores de amCircuitos moduladores y receptores de am
Circuitos moduladores y receptores de am
 
Modulacion en frecuencia fm
Modulacion en frecuencia fmModulacion en frecuencia fm
Modulacion en frecuencia fm
 
Amplificador Realimentado (Entrada, Salida y Ganancia)
Amplificador Realimentado (Entrada, Salida y Ganancia)Amplificador Realimentado (Entrada, Salida y Ganancia)
Amplificador Realimentado (Entrada, Salida y Ganancia)
 
MUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALESMUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALES
 
Radio labo-1 FIGUEROA UNAC FIEE
Radio labo-1 FIGUEROA UNAC FIEERadio labo-1 FIGUEROA UNAC FIEE
Radio labo-1 FIGUEROA UNAC FIEE
 
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
 
Ccoeficiente y porcentaje de modulación
Ccoeficiente y porcentaje de modulaciónCcoeficiente y porcentaje de modulación
Ccoeficiente y porcentaje de modulación
 
Ruido En Sistemas De Comunicaciones
Ruido En Sistemas De ComunicacionesRuido En Sistemas De Comunicaciones
Ruido En Sistemas De Comunicaciones
 
BANDA LATERAL UNICA
BANDA LATERAL UNICABANDA LATERAL UNICA
BANDA LATERAL UNICA
 
Amplificadores operacionales con funciones de transferencia
Amplificadores operacionales con funciones de transferenciaAmplificadores operacionales con funciones de transferencia
Amplificadores operacionales con funciones de transferencia
 
Pid
PidPid
Pid
 

Destaque

07 cuantificacion escalar (1)
07 cuantificacion escalar (1)07 cuantificacion escalar (1)
07 cuantificacion escalar (1)Rose56
 
Muestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabMuestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabmarco calderon layme
 
Mat lab manipulación de señales de audio
Mat lab manipulación de señales de audioMat lab manipulación de señales de audio
Mat lab manipulación de señales de audioRick P
 
Procesador de imágenes toolbox Matlab
Procesador de imágenes toolbox MatlabProcesador de imágenes toolbox Matlab
Procesador de imágenes toolbox Matlabdave
 
Generador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorGenerador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorkattyusca
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSIng. Electrónica xD
 
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)Elias1306
 
Lecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdLecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdnica2009
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabhamdinho
 

Destaque (9)

07 cuantificacion escalar (1)
07 cuantificacion escalar (1)07 cuantificacion escalar (1)
07 cuantificacion escalar (1)
 
Muestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabMuestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLab
 
Mat lab manipulación de señales de audio
Mat lab manipulación de señales de audioMat lab manipulación de señales de audio
Mat lab manipulación de señales de audio
 
Procesador de imágenes toolbox Matlab
Procesador de imágenes toolbox MatlabProcesador de imágenes toolbox Matlab
Procesador de imágenes toolbox Matlab
 
Generador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorGenerador de señales seno en un microcontrolador
Generador de señales seno en un microcontrolador
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECS
 
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
 
Lecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdLecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psd
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlab
 

Semelhante a Optimized Title for Digital Communications Lab Report on Sampling, Quantization and Line Coding of Signals

Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesDiego Morales
 
Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesDiego Morales
 
Lab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECSLab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECSIng. Electrónica xD
 
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB1.pptx
PROCESAMIENTO DIGITAL DE SEÑALES  CON MATLAB1.pptxPROCESAMIENTO DIGITAL DE SEÑALES  CON MATLAB1.pptx
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB1.pptxandreacarolinaromero5
 
326880093-Senales-y-Filtros-Con-Matlab.ppt
326880093-Senales-y-Filtros-Con-Matlab.ppt326880093-Senales-y-Filtros-Con-Matlab.ppt
326880093-Senales-y-Filtros-Con-Matlab.pptLuisArbeyCorredor
 
EJERCICIOS 4 Análisis de señales.docx
EJERCICIOS 4 Análisis de señales.docxEJERCICIOS 4 Análisis de señales.docx
EJERCICIOS 4 Análisis de señales.docxHUBERMEZARAMOS
 
Practica no. 1 espectros de frecuencia
Practica no. 1 espectros de frecuenciaPractica no. 1 espectros de frecuencia
Practica no. 1 espectros de frecuenciaLeo Flowwers
 
Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03Cristian Ortiz Gómez
 
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLABPROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLABINFOVIC
 
Teorema del muestro y PCM
Teorema del muestro y PCMTeorema del muestro y PCM
Teorema del muestro y PCMJoaquin Vicioso
 

Semelhante a Optimized Title for Digital Communications Lab Report on Sampling, Quantization and Line Coding of Signals (20)

Prácticas tc.docx_
 Prácticas tc.docx_ Prácticas tc.docx_
Prácticas tc.docx_
 
epn filtros
epn filtrosepn filtros
epn filtros
 
Dsp5
Dsp5Dsp5
Dsp5
 
Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señales
 
Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señales
 
Lab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECSLab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECS
 
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB1.pptx
PROCESAMIENTO DIGITAL DE SEÑALES  CON MATLAB1.pptxPROCESAMIENTO DIGITAL DE SEÑALES  CON MATLAB1.pptx
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB1.pptx
 
326880093-Senales-y-Filtros-Con-Matlab.ppt
326880093-Senales-y-Filtros-Con-Matlab.ppt326880093-Senales-y-Filtros-Con-Matlab.ppt
326880093-Senales-y-Filtros-Con-Matlab.ppt
 
Sa fourier con matlab
Sa fourier con matlabSa fourier con matlab
Sa fourier con matlab
 
Solución ejercicios 9 12
Solución ejercicios 9 12Solución ejercicios 9 12
Solución ejercicios 9 12
 
EJERCICIOS 4 Análisis de señales.docx
EJERCICIOS 4 Análisis de señales.docxEJERCICIOS 4 Análisis de señales.docx
EJERCICIOS 4 Análisis de señales.docx
 
laboratorio1 de diniz
laboratorio1 de dinizlaboratorio1 de diniz
laboratorio1 de diniz
 
P5pds
P5pdsP5pds
P5pds
 
Practica no. 1 espectros de frecuencia
Practica no. 1 espectros de frecuenciaPractica no. 1 espectros de frecuencia
Practica no. 1 espectros de frecuencia
 
Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03
 
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLABPROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
 
Teorema del muestro y PCM
Teorema del muestro y PCMTeorema del muestro y PCM
Teorema del muestro y PCM
 
Matlab
Matlab Matlab
Matlab
 
Analissis espectral
Analissis espectralAnalissis espectral
Analissis espectral
 
TRANSFORMADA DISCRETA DE FOURIER
TRANSFORMADA DISCRETA DE FOURIERTRANSFORMADA DISCRETA DE FOURIER
TRANSFORMADA DISCRETA DE FOURIER
 

Optimized Title for Digital Communications Lab Report on Sampling, Quantization and Line Coding of Signals

  • 1. Laboratorio de Comunicaciones Digitales ETSII Telecomunicación Ingeniería de Telecomunicación Universidad de Cantabria Curso 2010/2011 PRACTICA 1 METODOLOGÍA El alumno dispone de tres sesiones de laboratorio para realizar esta práctica. La realización es individual, aunque la evaluación se hará por parejas en función de la entrega resuelta del cuestionario (uno por pareja) y de un programa ejecutable que resuelva el epígrafe "PROBLEMA", que vaya mostrando de forma clara y ordenada las respuestas exigidas y que se denominará X:Practica1problema.m (los alumnos de cada pareja dejarán el mismo programa en ambas cuentas). Se recomienda la utilización de los comandos disp('texto'), disp('var'), pause, title, xlabel, ylabel, legend, clg y clc en los ficheros .m para documentar los resultados presentados en pantalla. OBJETIVOS El objetivo de esta práctica es familiarizar al alumno con la generación y adquisición de señales de comunicaciones atendiendo a aspectos tales como el muestreo, el aliasing y los efectos de la cuantificación. Posteriormente se estudiará la caracterización de señales de comunicaciones y el ruido mediante histogramas, densidad espectral de potencia y autocorrelación. Finalmente se estudiarán los códigos de línea más comunes y su densidad espectral de potencia así como el efecto del ruido en los mismos. Para la realización de esta práctica es conveniente que el alumno lleve al laboratorio unos auriculares que le permitan escuchar las distintas señales generadas. 1. MUESTREO Y RECONSTRUCCIÓN DE SEÑALES a) Generación de señales. Generar en MATLAB un seno de frecuencia 2KHz y amplitud 0.5 muestreado a distintas frecuencias de muestreo. Dicha señal se observará tanto en el ordenador como en el osciloscopio, siendo posible, así mismo, escucharla. f=2000; % frecuencia del tono a generar fso=1e6; % frecuencia de muestreo de referencia para los dibujos No= fso*1e-3; to=(0:No-1)/fso; % representaremos 1 ms de la señal xo=0.5*sin(2*pi*f*to); % señal de referencia (muy sobremuestreada) for fs=[44100 22050 11025]; N=fs*1; % nº de muestras, p.e. 44100 muestras/s * 1 s = 44100 muestras t=(0:N-1)/fs; % Vector con los instantes de muestreo: 1 s a fs Hz x=0.5*sin(2*pi*f*t); % Señal muestreada frec_muestreo(fs); envia(x,5); % Reproducimos la señal 5 veces (5 s) con la tarjeta de sonido plot(to*1e3,xo,'k',t*1e3,x,'b-o');axis([0,1,-1,1]); legend('Señal original','Señal muestreada');xlabel('milisegundos') pause;cierra(0); % Se finaliza la generación cuando se pulse una tecla end Notar que es necesario sobremuestrear (por un factor superior a 10) para que el “dibujo” de MATLAB se parezca a la señal de tiempo continuo. Sin embargo, mientras se cumpla el 1
  • 2. teorema de muestreo, la señal observada en el osciloscopio o escuchada con los auriculares es, efectivamente, un seno de 2 KHz. b) Muestreo incorrecto. Generar en MATLAB un seno de frecuencia 9 KHz y amplitud 0.5 muestreado a distintas frecuencias de muestreo. Dicha señal se observará tanto en el ordenador como en el osciloscopio y se escuchará con los auriculares. f=9000; % frecuencia de la señal senoidal fso=1e6; % frecuencia de muestreo de referencia para los dibujos No= fso*2e-3; to=(0:No-1)/fso; % representaremos 2 ms de la señal xo=0.5*sin(2*pi*f*to); % señal de referencia (muy sobremuestreada) for fs=[44100 22050 11025]; N=fs*1; % nº de muestras en un segundo a fs muestras/s t=(0:N-1)/fs; % Vector con los instantes de muestreo: 1s a fs Hz x=0.5*sin(2*pi*f*t); % Señal muestreada fr=rem(f,fs);fr=fr-fs.*(fr>fs/2); % frecuencia de señal reconstruida (con posible aliasing) xr=0.5*sin(2*pi*fr*to); % Señal reconstruida plot(1e3*to,xo,'k',1e3*t,x,'r-o');legend('Señal original','Señal muestreada');axis([0 1 -1 1]) title(sprintf('frec. señal:%iHz frec. muestreo:%iHz periodo muestreo: %fms',f,fs,1e3/fs)) xlabel('t (ms)') uiwait(msgbox('Observe en la grafica la señal original y la señal muestreada. Luego pulse "OK" para escuchar y ver la señal reconstruida')) plot(1e3*to,xo,'k',1e3*t,x,'r-o',1e3*to,xr,'b'); legend('original','muestreada','reconstruida');axis([0 1 -1 1]) title(sprintf('frec. señal:%iHz frec. muestreo:%iHz periodo muestreo: %fms',f,fs,1e3/fs)) xlabel('t (ms)') frec_muestreo(fs); envia(x,5); % Reproducimos la señal 5 veces (5 s) con la tarjeta de sonido pause;cierra(0) end Notar como, para ciertas frecuencias de muestreo (aquellas para las que no se cumple el teorema de muestreo), la señal reconstruida no se corresponde con la señal original de 9 KHz. ¿Cuáles son dichas frecuencias?. ¿Cuál sería la frecuencia mínima de muestreo para la señal de 9 KHz?. c) Efecto del aliasing. En este ejercicio, un alumno generará un seno de frecuencia 9 KHz y amplitud 0.5 con una frecuencia de muestreo de 44100 muestras/s tal y como se hizo en anteriores ejercicios. El compañero deberá adquirir dicha señal utilizando diversas frecuencias de muestreo. Conectar la salida TX del Alumno1 con la entrada RX del Alumno2 y ejecutar el siguiente código: ALUMNO1 (el que genera la señal) f=9000; % frecuencia de la señal senoidal fs=44100; % frecuencia de muestreo N= fs*1; t=(0:N-1)/fs; % generaremos 1 s de la señal x=0.5*sin(2*pi*f*t); % señal original frec_muestreo(fs);envia(x,60); % Reproducimos la señal 60 veces (1 minuto) % Ahora el Alumno2 deberá ejecutar su código pause;cierra(0) % pulsar una tecla cuando haya finalizado el Alumno2 2
  • 3. ALUMNO2 (el que adquiere la señal) fs1=44100;N1=1*fs1;t1=(0:N1-1)/fs1; % Numero de muestras en 1 sg a fs1 muestras/s frec_muestreo(fs1);x1=recibe(1,N1); % Adquirimos N1 muestras (1 seg.) a fs1 muestras/s % Se adquieren x2 y x3 a 22050 y 11025 muestras/s respectivamente fs2=22050;N2=1*fs2;t2=(0:N2-1)/fs2;frec_muestreo(fs2);x2=recibe(1,N2); fs3=11025;N3=1*fs3;t3=(0:N3-1)/fs3;frec_muestreo(fs3);x3=recibe(1,N3); Mientras el Alumno1 ejecuta su programa (genera la señal), el Alumno2 ejecuta el suyo de forma que adquiere las cuatro señales x1, x2 y x3 (con tres frecuencias de muestreo distintas). El Alumno2 puede observar las señales adquiridas haciendo, por ejemplo: plot(t1,x1,'r',t2,x2,'b',t3,x3,'g'); % dibuja todas las señales axis([0 1e-3 -1 1]) % observamos el primer milisegundo (use también el zoom) Razone que es lo que ha ocurrido. Ahora, el Alumno1 debe observar la señal original en el canal 1 del osciloscopio (ejecutando envia(x,100) y conectando su señal al canal 1 del osciloscopio). Simultáneamente, el Alumno2 debe observar en el canal 2 una cualquiera de las señales adquiridas (p.e. ejecutando frec_muestreo(fs3);envia(x3,100)), calcule su frecuencia, compárela con la del canal 1 y compruebe en que casos el muestreo no ha sido correcto. 2. CUANTIFICACIÓN DE SEÑALES Los sistemas digitales, así como los conversores A/D y D/A, poseen una resolución finita, marcada por el número de bits. Este hecho limita la precisión con la que las señales pueden ser adquiridas, generadas y procesadas. En este experimento se trata de cuantificar, con distintas precisiones, una señal de voz contenida en el fichero voz.mat. De esta forma, el alumno podrá observar como afecta el número de bits de cuantificación al nivel del error de cuantificación, a la relación señal a ruido de cuantificación, a la función densidad de probabilidad del error y a su densidad espectral de potencia. a) Cargamos la señal de voz y observamos su histograma, lo que nos dará idea de la función densidad de probabilidad de la señal de voz. frec_muestreo(11025); % frecuencia de muestreo 11025 Hz load voz.mat % en la variable x tenemos la señal de voz close all;subplot(221);hist(x,50) % la función hist(x) dibuja el histograma del vector x title('Histograma señal original');xlabel('Voltios') b) Dibuje la densidad espectral de potencia (DEP) de la señal de voz, de manera que pueda observar que frecuencias poseen más potencia. Utilize la función: sx=espect (señal, número_de_puntos, frecuencia_máxima) El número_de_puntos afecta a la estima del espectro, cuanto mayor sea, más muestras se obtienen, pero también más variabilidad. La frecuencia_máxima determina el límite superior (el inferior es cero) del eje de abcisas al dibujar el espectro. Si se utiliza una variable de salida sx, en ella se obtienen las muestras del espectro, si no se utiliza ninguna, la función lo dibuja. Si no se incluyen el número_de_puntos o la frecuencia_máxima toma valores por defecto. subplot(222);espect(x,200); title('DEP de la señal original'); % dibuja la dep 3
  • 4. c) Cuantificación de la señal de voz utilizando 10 bits por muestra xq=cuantifica(x,10); % cuantificamos la señal con 10 bits error=x-xq; subplot(224);espect(xq,100);axis([0 6 -110 -40]) % espectro de la señal cuantificada hold on;espect(error,100);hold off % espectro del error de cuantificación grid;legend('Señal Cuantificada','Error Cuantificación') subplot(223);hist(error,20) % histograma del error de cuantificación title('Histograma error');xlabel('Voltios');pause; hist(xq,50); title('Histograma señal cuantificada');xlabel('Voltios'); SNRq=10*log10(mean(x.^2)/mean(error.^2)) % Relación señal-ruido de cuantificación envia([ x , xq ]/2);pause;cierra(0) % izda = original drcha = cuantificada d) El alumno deberá repetir el apartado c) para distinto número de bits (probar con 8, 6 y 4) observando cómo afecta dicho número al espectro de la señal cuantificada y del error; al histograma del error; y a la calidad de la señal cuantificada, tanto cuantitativa (SNRq) como cualitativamente (al observarla en el osciloscopio y escucharla). 3. GENERACIÓN DE SEÑALES DE COMUNICACIONES En la actualidad, la inmensa mayoría de los sistemas de comunicaciones digitales son implementados totalmente (salvo las etapas de radiofrecuencia) en el dominio discreto mediante microprocesadores, DSP's u otros circuitos integrados digitales. En la figura 1 se muestra un esquema típico de un transmisor digital banda base. bits símbolos muestras señal Rb bits/s Rs símbolos/s fs de línea bn An x[n] x(t) Codificador Filtro CONVERSOR Transmisor D/A TRANSMISOR Sistema Digital Discreto Figura 1. Sistema de comunicaciones en banda de base. Es importante que el alumno comprenda la relación entre velocidad binaria (Rb bits/s), velocidad de símbolo (Rs baudios o símbolos por segundo) y frecuencia de muestreo de la señal de línea (fs muestras/s) para señales de comunicaciones del tipo x(t) = ∑ A n h(t − nT) . n 4
  • 5. a) Generaremos una señal conformada triangularmente de 1102.5 bits/sg con distintas frecuencias de muestreo, es decir, distinto número de muestras por símbolo. b=[1 0 1 0 1 1 0 0 1 0]; % bits A=2*b-1; % símbolos subplot(212);stem(b);title('bits'); subplot(211);stem(A);title('símbolos');pause %dibujamos las secuencias de bits y símbolos fs1=44100;frec_muestreo(fs1); N1=40; % 40 muestras/símb, fs=44100Hz  Rs=44100/40=1102.5 baudios x1=filtro_tx(A,N1); t1=(0:length(x1)-1)/fs1; % vector de tiempos para el dibujo plot(t1,x1,'-o');title('señal de línea') % dibujamos las muestras de la señal de línea envia([x1 ; 1 zeros(1,length(x1)-1)]/2,500); % observe la señal en el osciloscopio pause;cierra(0); % realice el Trigger con el canal 2 Repita el filtrado y visualice (tanto en la pantalla del ordenador como en el osciloscopio) la misma señal pero con frecuencias de muestreo fs2=22050 Hz (N2=20) y fs3=11025 (N3=10). Compruebe que, en todos los casos, la señal de línea que se observa en el osciloscopio es la misma (fíjese especialmente en que todas poseen la misma velocidad de símbolo) a pesar de haber sido generadas con distintas frecuencias de muestreo. 4. CODIGOS DE LÍNEA Como se recordará, existen diferentes tipos de codificación en los sistemas digitales. En los sistemas banda base es común utilizar códigos de línea con objeto de conformar el espectro de la señal de comunicaciones (por ejemplo para eliminar la componente continua, facilitar la recuperación de sincronismo, etc.). En este apartado vamos a simular digitalmente (representándolas mediante sus muestras) señales conformadas mediante diferentes códigos de línea. Así mismo podremos observar en el osciloscopio las señales reales que viajan por el canal sin más que enviarlas a la tarjeta de sonido. ATENCION Para que el entorno de simulación funcione adecuadamente es necesario inicializar una serie de variables globales ejecutando la función iniciar. Al ejecutar iniciar el programa le solicitará el número de experimento: >>Introduzca el número de experimento debe introducir un 1. El programa responderá: >>================================================= >> En esta sesión de MATLAB se utilizan 10 muestras por símbolo. >> Asumiendo un régimen binario de 800 bits/seg, la frecuencia >> de muestreo es 8 [kHz]. >> La componente frecuencial más alta que pueden manejar las >> rutinas MATLAB es menor o igual que 4.00 [kHz]. >>=================================================== Esta inicialización implica que se utilizarán 10 muestras por símbolo, con lo que una señal de comunicaciones binaria a 800 baudios se muestreará a 8 KHz (ancho de banda de simulación 4 KHz). En el caso de que el programa no se comporte de esta manera, ejecute el comando clear global y repita la operación. Si persisten los problemas pregunte al profesor. 5
  • 6. a) Generaremos formas de onda digitales usando el comando wave_gen: wave_gen( secuencia binaria, 'nombre del código de línea', Régimen binario) b= [1 0 1 0 1 1]; % generamos la secuencia binaria x=wave_gen(b,'unipolar_nrz', 800); % usamos NRZ unipolar y 800 bits por segundo waveplot(x) % dibujamos la señal resultante envia(x/2,2000); % observe la señal en el osciloscopio pause;cierra(0); Nota: En este caso se envía a la tarjeta de sonido la señal x/2 para evitar que se sature el conversor D/A, que posee un rango de ±0.7V. Esto deberá ser tenido en cuenta por el alumno al observar los niveles de la señal en el osciloscopio. Recuerde así mismo que la tarjeta de sonido no es capaz de proporcionar niveles de continua. b) Repita el apartado a) para los siguientes códigos de línea: • polar NRZ ('polar_nrz'); • unipolar RZ ('unipolar_rz'); • bipolar RZ ('bipolar_rz'); • manchester ('manchester'); Observe como implementa MATLAB el vector x. ¿Cuántas muestras se utilizan por símbolo?. ¿Por qué las señales observadas en el osciloscopio no son perfectamente “cuadradas”?. Con el hardware de que dispone, ¿cómo podría paliar este efecto en una señal de 800bps?. c) Genere una secuencia binaria de longitud 1000 y dibuje la DEP para cada código de línea del apartado b), por ejemplo, b= binary(1000); espect(wave_gen(b,'nombre del código de línea', 800)); d) Para ilustrar la dependencia de la densidad espectral de potencia con el régimen binario ejecute el programa codlin. Observe la DEP del código de línea manchester con regímenes binarios de 250 bps, 400 bps, 500 bps y 1 Kbps. Utilice una frecuencia de muestreo de 8000 hercios y calcule el número de muestras por símbolo utilizado en cada caso. Observe las variaciones de los ceros espectrales y relaciónelos con el régimen binario. Observe así mismo las señales en el osciloscopio (envíe las señales un número suficientemente alto de veces y realice el trigger con el canal 2) 5. RUIDO Por último, resulta de interés generar ruido para simular su efecto en los sistemas de comunicación. En la realidad resulta imposible muestrear (adecuadamente) ruido blanco Gaussiano (¿por qué?), pero si generamos repetidas realizaciones independientes de una v.a. Gaussiana obtenemos un ruido en tiempo discreto que nos permite simular el efecto del ruido en comunicaciones. En el apartado siguiente se pretende ilustrar la simulación en tiempo discreto de señales de comunicaciones en ruido. Así mismo, el alumno podrá observar el 6
  • 7. efecto del ruido en la señal de línea por medio del osciloscopio. 7
  • 8. a) Secuencias de ruido. Genere secuencias de 1000 puntos de ruido Gaussiano. Recuerde ejecutar iniciar con experimento 1 r=randn(1,10000); % genera 1x10000 muestras de v.a. Gaussiana (media=0 y varianza=1) subplot(211);waveplot(r); Dibuje el histograma de la señal subplot(212);hist(r,20);axis([-3 3 0 2000]);xlabel('Voltios');pause; Dibuje ahora la autocorrelación y la DEP de la señal subplot(211);acf(r); % la función acf(x) estima y dibuja la autocorrelación de la secuencia x subplot(212); espect(r,256);axis([0 4 -50 0]) Repita el proceso varias veces, comprobando que señales de ruido totalmente distintas dan lugar a histogramas, autocorrelaciones y densidades espectrales de potencia similares. b) Efecto del ruido en la forma de onda transmitida: Genere 10 símbolos de una señal NRZ polar con un régimen binario de 800 bps. Genere ruido Gaussiano discreto. Súmeselo a la señal x, dibuje ambas señales y obsérvelas en el osciloscopio b=binary(10); x=wave_gen (b,'polar_nrz',800); ruido=0.1*randn(size(x)); y=x+ruido; subplot(211), waveplot(x);title('Señal') subplot(212), waveplot(y);title('Señal + Ruido') % Observe los valores de pico de la señal escala=????? % aplique un valor de escala adecuado para evitar saturar el D/A envia([x , y]/escala,2000); % utilice el valor de escala al enviar las señales a la tarjeta pause;cierra(0); ¿Cómo estimaría la potencia de ruido a partir de las muestras del vector "ruido"?¿y la potencia de la señal y? Genere señales cada vez más largas y compruebe cómo las estimas de las potencias mejoran. c) Repita el apartado b) para valores de la potencia de ruido de 0.5,1 y 2.5 (tenga en cuenta en cada caso la posible saturación de la tarjeta de sonido). d) También se puede observar el efecto de incrementar la potencia de ruido viendo la densidad espectral de potencia de la señal de salida. b=binary(1000); x=wave_gen (b, 'polar_nrz',800); ruido=0.1*randn(size(x)); espect(x); hold on espect(x+ruido); grid; hold off; Superponga sobre la densidad espectral de potencia de la señal ruidosa la de las otras señales del apartado c) y compruebe el efecto en el espectro de incrementar el ruido. 8
  • 9. 6. PROBLEMA En este problema los alumnos compararán las prestaciones de un cuantificador uniforme y de un cuantificador no uniforme (ley A). Partiendo de la señal de voz x incluida en el fichero voz.mat deberán cuantificarla con 8 bits y obtener la relación señal a ruido de cuantificación de ambos métodos para distintos niveles de potencia de la señal original. Cuantificador Uniforme y1[n] 8 bits ↑ x[n] Rango ±1V SNR1 G x2[n] Cuantificador Compresor bn Uniforme Expansor y2[n] Ley A 8 bits Ley A ↑ C( x ) Rango ±1V SNR2 Para ello, deberá implementar una función que lleve a cabo la compresión de la señal original siguiendo la expresión:  A| x| 1  1 + ln( A) sign( x), 0 ≤| x |≤ ; A  C ( x) =  1 + ln( A | x |) 1  sign( x), ≤| x |≤ 1.  1 + ln( A) A con A=87.56. Así mismo, se realizará una función de matlab que implemente el expansor, es decir, la función inversa de C(x). En resumen, utilizando Matlab deberá aplicar ambos cuantificadores y obtener SNR1 y SNR2 (en decibelios) para la señal original (x2=x). Posteriormente deberá repetir el proceso para distintos niveles de potencia de la señal, sin más que escalar la señal original ( x2=G*x con G variando desde 1 hasta 1/100). Finalmente deberá presentar una gráfica que muestre la potencia de la señal de entrada x2 (en dBWatt) en el eje horizontal y la SNR (en decibelios) de ambos métodos en el eje vertical. Se deberán repetir las simulaciones y presentar la gráfica para cuantificadores de 8 y de 5 bits. 9