You are on page 1of 21

FUNDAMENTOS DE TRANSMISIN DE DATOS

PRCTICA 2
Anlisis de sistemas de comunicaciones con MATLAB: Communications Toolbox
1

INDICE Introduccin Ejemplo de un sistema de comunicaciones Seales aleatorias Anlisis de errores Codificacin fuente Modulacin

COMMUNICATIONS TOOLBOX
Funciones MATLAB para el diseo y anlisis de sistemas de comunicaciones
Generacin de seales aleatorias Anlisis de error, diagramas de ojos, grficos de dispersin (scatter plots) Codificacin de fuentes Cdigos de control de errores Modulacin/demodulacin analgico/digital Filtrado de datos usando filtros especiales Clculos en cuerpos de Galois (GF)
3

PRODUCTOS RELACIONADOS CON COMMUNICATIONS TOOLBOX


CDMA Reference Blockset
Bloques Simulink para el diseo y simulacin del estndar de comunicaciones inalmbricas IS-95A

Communications Blockset
Bloques Simulink para modelar la capa fsica de los sistemas de comunicaciones

DSP Blockset
Bloques Simulink para el diseo y simulacin de sistemas de procesamiento de seales digitales

Signal Processing Toolbox


Herramientas para el desarrollo de algoritmos de anlisis de seales y sistemas lineales

Simulink
Entorno grfico interactivo para el modelado, simulacin y prototipado de sistemas dinmicos
4

DISEO DE UN SISTEMA DE COMUNICACIN

signal FUENTE M-ARIA

modsignal
MODULADOR M-QASK

noisy

newsignal
DEMOD M-QASK

CANAL RUIDOSO

RECEPTOR

Tx

Rx

CLCULO ERRORES

CARACTERSTICAS DEL SISTEMA DE COMUNICACIN


Crear un mensaje digital aleatorio que consta de nmeros enteros entre 0 y 7 Modular smbolos usando dos variedades de QASK con constelaciones de los mismos puntos
Puntos de la constelacin con cdigo Gray Puntos de la constelacin etiquetados de forma arbitraria

Aadir ruido a las seales moduladas Demodular las seales con ruido Calcular el BER (bit error rate) en los dos casos Representar la constelacin de seales en ambos casos
6

DESCRIPCIN DEL SISTEMA Configuracin de parmetros


M = 8; % Numero de smbolos en el alfabeto len = 10000; % Numero de smbolos en el mensaje original Fd = 1; % Mensaje original muestreado a 1 muestra por segundo Fs = 3; % Seal modulada muestreada a 3 muestras por segundo

Creacin de la seal
% Crear una seal aleatoria signal = randint(len,1,M); % Mensaje digital aleatorio de % enteros entre 0 y M-1

DESCRIPCIN DEL SISTEMA Modulacin de la seal


% Usa modulacin QASK M-aria con dos constelaciones % cuadradas etiquetadas de forma diferente modsignal(:,1) = dmodce(signal,Fd,Fs,'qask',M); % Cdigo Gray inphase = [-3:2:3 -3:2:3]; quad = [ones(1,4), -1*ones(1,4)]; modsignal(:,2) = dmodce(signal,Fd,Fs,'qask/arb',inphase,quad);

Aadir ruido a las seales moduladas


% Aade ruido a las partes real e imaginaria de las seales moduladas noisy = modsignal+.5*randn(len*Fs/Fd,2)... +j*.5*randn(len*Fs/Fd,2);
8

DESCRIPCIN DEL SISTEMA


Demodular la seal con ruido
% Demodula para recuperar el mensaje original newsignal(:,1) = ddemodce(noisy(:,1),Fd,Fs,'qask',M); newsignal(:,2) = ddemodce(noisy(:,2),Fd,Fs,... 'qask/arb',inphase,quad);

Calcular y visualizar BER


% Comprobar cmo el cdigo Gray produce menos errores % Compara signal con cada columna de newsignal [num,rate] = biterr(newsignal,signal); disp(BER para las dos constelaciones usadas') disp('-------------------------------------------------') disp([Constelacion codigo Gray: ', num2str(rate(1))]) disp([Constelacion sin codigo Gray: ', num2str(rate(2))])

Representar constelacin
% Representa la constelacin etiquetada con Gray modmap('qask',M);
9

SEALES ALEATORIAS
Utilizadas para generar ruido, errores o como fuentes de seal en un sistema de comunicaciones Tipos de seales aleatorias:
MATLAB
rand randn

Communications toolbox:
wgn, para generar ruido blanco gaussiano randsrc, para generar smbolos aleatorios randint, para generar enteros aleatorios uniformemente distribuidos randerr, para generar patrones de error de bits aleatorios

10

ANLISIS DE ERRORES
Comparar mensajes antes y despus de la transmisin Evaluar la calidad del sistema de comunicaciones Funciones MATLAB
biterr : Compara 2 mensajes y calcula el nmero de bits errneos, as como la BER symerr: Compara 2 mensajes y calcula el nmero de smbolos errneos, as como la SER

Ejemplo
a = [1 2 3]'; b = [1 4 4]'; format rat % Visualiza fracciones en lugar de decimales [snum,srate] = symerr(a,b) [bnum,brate] = biterr(a,b)
11

ANLISIS DE ERRORES Diagramas de ojos


Herramienta para estudiar el efecto de la interferencia entre smbolos y otras irregularidades del canal de transmisin Funcin: eyediagram

Diagramas de dispersin
Muestran los valores de la seal en un punto de decisin determinado Funcin: scatterplot
12

CODIFICACIN DE FUENTES
Procesar datos para reducir redundancia y para un procesado posterior Conversin analgico-digital y compresin de datos Codificacin: Convierte la seal de la fuente en seal digital usando cuantificacin Decodificacin: Recupera la informacin original Posibilidades de la codificacin-decodificacin de fuentes
Cuantificacin de acuerdo a una particin y cdigos especificados Optimizacin de parmetros para un conjunto de datos conocido Codificacin-decodificacin de seales usando DPCM Operaciones con compresores-expansores con -law A-law
13

CUANTIFICACIN DE SEALES
Ejemplo 1:
partition = [0,1,3]; codebook = [-1, 0.5, 2, 3]; samp = [-2.4, -1, -.2, 0, .2, 1, 1.2, 1.9, 2, 2.9, 3, 3.5, 5]; [index,quantized] = quantiz(samp,partition,codebook); quantized quantized = Columns 1 through 6 -1.0000 -1.0000 -1.0000 -1.0000 0.5000 0.5000 Columns 7 through 12 2.0000 2.0000 2.0000 2.0000 2.0000 3.0000 Column 13 3.0000
14

CUANTIFICACIN DE SEALES Ejemplo 2


% Tiempos de muestreo de la funcion seno 1 0.8 t = [0:.1:2*pi]; 0.6 % Seal original, una onda senoidal 0.4 sig = sin(t); 0.2 partition = [-1:.2:1]; 0 % Longitud 11, para representar 12 intervalos -0.2 codebook = [-1.2:.2:1]; -0.4 % Longitud 12, un valor para cada intervalo -0.6 % Cuantificacion y codificacion -0.8 [index,quants] = quantiz(sig,partition,codebook); -1 plot(t,sig,'x',t,quants,'.') axis([-.2 7 -1.2 1.2]) 0

15

OPTIMIZACIN DE PARMETROS DE CUANTIFICACIN ESCALAR Ejemplo


t = [0:.1:2*pi]; sig = sin(t); partition = [-1:.2:1]; codebook = [-1.2:.2:1]; % Ahora optimiza, usando codebook como gua inicial [partition2,codebook2] = lloyds(sig,codebook); [index,quants,distor] = quantiz(sig,partition,codebook); [index2,quant2,distor2] = quantiz(sig,partition2,codebook2); % Compara distorsiones entre los valores iniciales y los optimizados [distor, distor2] % parametros ans = 0.0148 0.0024
16

DIFFERENTIAL PULSE CODE MODULATION (DPCM) Cuantificacin predictiva: Suposiciones sobre la seal basadas en valores anteriores Ejemplo: Modulacin delta
predictor = [0 1]; % y(k)=x(k-1) partition = [-1:.1:.9]; codebook = [-1:.1:1]; t = [0:pi/50:2*pi]; x = sawtooth(3*t); % Seal original % Cuantifica x usando DPCM. encodedx = dpcmenco(x,codebook,partition,predictor); % Intenta recuperar x a partir de la seal modulada decodedx = dpcmdeco(encodedx,codebook,predictor); plot(t,x,t,decodedx,'--') distor = sum((x-decodedx).^2)/length(x) % Error cuadrtico medio distor = 0.0327

17

MODULACIN
Posibilidades del toolbox
Modular seal Demodular seal Mapearseal digital a analgica Demapear una seal analgica Mapear,demapear y representar constelaciones para QASK Mtodos de modulacin seales analgicas

Funciones de modulacin
Modulacin analgica amod ademod Modulacin digital dmod ddemod

Mtodos de modulacin seales digitales

18

MODULACION DEMODULACION
MODULACION: mapping de la seal digital a una seal analgica y modulacin de la seal analgica

DEMODULACIN: demodulacin de la seal analgica y demapping de la seal demodulada

19

DISEO DE UN SISTEMA DE COMUNICACIN DIGITAL


SENSOR signal CODIFIC. FUENTE analog MEDIDA DISTORSIN modsignal
MODULADOR 256-QASK

newanalog

RECEPTOR

noisy

newsignal
DEMOD 256-QASK

CANAL RUIDOSO

DECODIFIC FUENTE

Tx

Rx

CLCULO BER SER


20

DISEO DE UN SISTEMA DE COMUNICACIN DIGITAL


SENSOR signal CODIFIC. FUENTE analog MEDIDA DISTORSIN modsignal
MODULADOR 256-QASK

newanalog

RECEPTOR

noisy

newsignal
DEMOD 256-QASK

CANAL RUIDOSO

DECODIFIC FUENTE

Caractersticas sensor Seal:

Tx
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Rx

-2

-4

-6

5*sin(2*pi*t)+2*cos(2*pi*2*t)

-8

Muestreo: 200 Hz

CLCULO BER SER

Particin uniforme 256 intervalos Cdigo: 0 ... 255


21

You might also like