Вы находитесь на странице: 1из 5

1

UNIVERSIDAD DE LAS AMRICAS PUEBLA





Studying Components of a Communications System

Octavio Alczar Snchez 141530
Comunicaciones Digitales

Lleve a cabo en MatLab, usando el "demo" del toolbox de Comunicaciones, las actividades
de la seccin "Studying Components of a Communications System" y reporte lo entendido
y observado en las subsecciones:

- Modulating a Random Signal
- Plotting Signal Constellations

Desarrollo:

1 Modulation a Random Signal

El siguiente ejemplo en MatLab va a procesar una seal de datos binarios utiliando un
sistema de comunicacin que consiste en un modulador de banda base, un canal y un
demodulador. Entonces debemos computar la tasa de error de bits o Bit Error Rate (VER) y
graficar las seales transmitidas y recibidas en un scatter plot, o grfica dispersa.

Introduciendo la lnea siguiente en la ventana de comandos de MatLab se genera el
archivo.M, donde la solucin arbitraria escoge una banda base 16-QAM como el esquema
de modulacin y el ruido aditivo blanco Gaussiano (AWGN) como el canal.

edit commdoc_mod

%% Modulating a Random Signal
% This example, described in the Getting Started chapter of the
% Communications Toolbox documentation, aims to solve the following
% problem:
%
% Process a binary data stream using a communication system that
% consists of a baseband modulator, channel, and demodulator.
% Compute the system's bit error rate (BER). Also, display
% the transmitted and received signals in a scatter plot
2

% Copyright 1996-2009 The MathWorks, Inc.
% $Revision: 1.1.8.2 $ $Date: 2009/07/20 17:37:57 $

%% Setup
% Define parameters.
M = 16; % Size of signal constellation
k = log2(M); % Number of bits per symbol
n = 3e4; % Number of bits to process
nSamp = 1; % Oversampling rate

%% Create Modulator and Demodulator
hMod = modem.qammod(M); % Create a 16-QAM modulator
hMod.InputType = 'Bit'; % Accept bits as inputs
hDemod = modem.qamdemod(hMod); % Create a 16-QAM based on the modulator

%% Signal Source
% Create a binary data stream as a column vector.
x = randi([0 1],n,1); % Random binary data stream

%% Modulation
% Modulate using 16-QAM.
y = modulate(hMod,x);

%% Transmitted Signal
yTx = y;

%% Channel
% Send signal over an AWGN channel.
EbNo = 10; % In dB
SNR = EbNo + 10*log10(k) - 10*log10(nSamp);
yNoisy = awgn(yTx,SNR,'measured');

%% Received Signal
yRx = yNoisy;

%% Scatter Plot
% Create scatter plot of noisy signal and ideal constellation points
hScatter = commscope.ScatterPlot; % Create a scatter plot
scope
hScatter.Constellation = hMod.Constellation; % Set expected constellation
hScatter.SamplesPerSymbol = nSamp; % Set oversampling rate
hScatter.PlotSettings.Constellation = 'on'; % Display ideal
constellation
update(hScatter, yRx(1:5e3)) % Send received signal to
the scope
title('Received Signal');

%% Demodulation
% Demodulate signal using 16-QAM.
z = demodulate(hDemod,yRx);

%% BER Computation
% Compare x and z to obtain the number of errors and
% the bit error rate.
[number_of_errors,bit_error_rate] = biterr(x,z)
3


Fig. 1 Scatter Plot



Fig. 2 Tasa de Error de Bits

Entonces, definimos los parmetros de entrada (M, n, k) y creamos el modulador y
demodulador 16-QAM (Modulacin de Amplitud en Cuadratura). Creamos nuestra serie
de datos binarios (Stream) con nmeros aleatorios y comenzamos la modulacin.

Se manda la seal a travs de un canal con ruido AWGN y se recibe la seal graficada en
un scatter plot. Se realiza la demodulacin de la seal y se compara la seal demodulada
con la seal original para obtener los errores y el Bit Error Ratio.

En el Scatter Plot tenemos en cruces rojas la constelacin de la seal y en azul clarito la
trayectoria de dicha seal.


4

2 Plotting Signal Constellations

El siguiente ejemplo de MatLab crea una scatter plot de la seccin previa de la seal
modulada. Entonces graficamos una constelacin de seal 16-QAM con anotaciones que
indiquen el mapeo de enteros a puntos de constelacin. Ahora haremos uso del conocido
Cdigo Gray, donde de un nmero binario al siguiente solo cambia un bit, es decir, una
distancia de Hamming de 1. Se utiliza la siguiente lnea en la ventana de comandos para
generar lo anterior:

edit commdoc_const

%% Plotting Signal Constellations
% This example, described in the Getting Started chapter of the
% Communications Toolbox documentation, aims to solve the following
% problem:
%
% Plot a 16-QAM signal constellation with annotations that
% indicate the mapping from integers to constellation points.

% Copyright 1996-2009 The MathWorks, Inc.
% $Revision: 1.1.8.2 $ $Date: 2009/07/20 17:37:54 $

%% Initial Plot, Without Gray Coding
M = 16; % Number of points in constellation
hMod = modem.qammod(M); % Modulator
mapping = hMod.SymbolMapping; % Symbol mapping vector
pt = hMod.Constellation; % Vector of all points in constellation

% Plot the constellation.
hScatter = commscope.ScatterPlot; % Create a scatter plot scope
hScatter.Constellation = pt; % Set expected constellation
hScatter.PlotSettings.Constellation = 'on'; % Display ideal constellation

% Include text annotations that number the points.
text(real(pt)+0.1,imag(pt),dec2bin(mapping));

%% Modified Plot, With Gray Coding
M = 16; % Number of points in constellation
hMod = modem.qammod('M',M,'SymbolOrder','Gray'); % Modulator
mapping = hMod.SymbolMapping; % Symbol mapping vector
pt = hMod.Constellation; % Vector of all points in constellation

% Plot the constellation.
hScatter = commscope.ScatterPlot; % Create a scatter plot scope
hScatter.Constellation = pt; % Set expected constellation
hScatter.PlotSettings.Constellation = 'on'; % Display ideal constellation

% Include text annotations that number the points.
text(real(pt)+0.1,imag(pt),dec2bin(mapping));


5

Entonces tenemos la grfica inicial, sin cdigo Gray, donde se especifica M y el vector de
mapeo, y se grafica la constelacin. Despus se incluyen las anotaciones de texto para
numerar los puntos, se agrega el cdigo Gray y se vuelve a graficar la constelacin.


Fig. 3 Scatter Plot



Bibliografa:

http://es.scribd.com/doc/193755951/1-Studying-Components-of-a-Communication-
System