Você está na página 1de 3

Simulacin de canales AWGN usando MATLAB

Prof. Dr.-Ing. Carlos A. Medina C.


Mayo 2017

Seales, potencia y energa


En MATLAB, las seales se representan por medio de secuencias discretas de muestras y se procesan en
forma de vectores o matrices. Antes de realizar la simulacin para evaluar el desempeo en trminos de la
razn de error de bit, es importante entender y conocer algunos valores asociados a las muestras de la seal,
por ejemplo, qu aspecto de la seal representan las muestras y el intervalo entre muestras consecutivas.

Para las simulaciones que nos interesan, el valor numrico de las muestras representa la amplitud de la seal
continua en instantes especficos de tiempo, y se asume que es una amplitud medida en voltios. Adems, el
tiempo entre muestras corresponde al tiempo de muestreo Ts, que generalmente se asocia a o se especifica por
una frecuencia de muestreo fs. Y, en general, para las simulaciones los valores de las muestras de la seal se
miden con referencia a una resistencia de un ohm.

As, para una seal de tiempo discreto x(n), donde n es el ndice de la muestra, se define la potencia
instantnea de la seal como:
= |()|2

Para las muestras medidas en voltios, la potencia est medida en watts.

Una medida que generalmente resulta ms til es la potencia promedio, que corresponde simplemente al
promedio de la potencia instantnea de cada muestra en la seal. Entonces, para la seal x(n), de N muestras,
se tiene:

1
= |()|2

=1

En MATLAB, N corresponde a la longitud del vector x que contiene las muestras de la seal, y la potencia
promedio puede calcularse como:
Pa = (sum(abs(x).^2)/length(x)

Si la seal tiene media cero, es decir, que no contiene componente DC, la potencia promedio corresponde a la
varianza de la seal, ya que:
() = [ 2 ] ([])2

Por otro lado, la energa de la seal es la integral en el tiempo de la potencia. Para seales discretas en el
tiempo, la integracin se reduce a una sumatoria. Adems, la energa es el producto de la potencia y el tiempo,
entonces la energa total de una seal debe ser igual a su potencia promedio multiplicada por su duracin. Ms
an, la duracin de una seal es su longitud en muestras, divida por la frecuencia de muestreo, en muestras
por segundo. Por lo tanto,
Simulacin de canales AWGN usando MATLAB. 2017


1
= = |()|2

=1

1
= |()|2

=1

En MATLAB, la energa de la seal x que tiene una frecuencia de muestreo fs, puede calcularse como:

Et = (sum(abs(x).^2)/fs

Canal AWGN
Para la simulacin se especifica un vector SNR con los valores de inters en decibeles.

i) Ruido usando la funcin awgn de MATLAB


La funcin awgn permite simular directamente un canal awgn y retorna la seal de salida del canal para una
razn seal-a-ruido dada. Los principales parmetros de entrada de esta funcin son: la seal de entrada, la
razn seal-a-ruido (S/N) en dB y la potencia de la seal,

y = awgn(x,snr,sigpower)

Esta funcin suma ruido Gaussiano blanco al vector de seal x. El escalar snr especifica la razn seal-a-ruido por
muestra, en dB. Si x es complejo, la funcin adiciona ruido complejo. Si no se especifica sigpower se asume que la
potencia de x es 0 dBW. Si sigpower es un escalar, entonces el mismo corresponde a la potencia de x en dBW.
Tambin sigpower puede especificarse como 'measured' y entonces la funcin mide la potencia de la seal x para
ajustar la varianza del ruido al valor snr especificado antes de sumar el ruido.

ii) Ruido a partir de funcin propia


Otra alternativa para simular el canal AWGN es calcular el vector de ruido con la varianza adecuada para
obtener la razn SNR de inters a partir de la seal modulada x. Para esto, se debe convertir el valor SNR en
dB a escala lineal,
SNR = 10.^(SNRdB/10)

Calcular la potencia promedio de la seal transmitida x,

Px = (sum(abs(x).^2)/length(x)

y generar el vector de ruido blanco Gaussiano correspondiente,

ruido = sqrt(Px/SNR)*randn(1,L) si x es real


o
ruido = sqrt(Px/(2*SNR))*(randn(1,L)+1i* randn(1,L)) si x es complejo
Simulacin de canales AWGN usando MATLAB. 2017

Finalmente, sumar el ruido a la seal transmitida para obtener la seal recibida,

y = x + ruido

Referecias
[1] James Gilley, Bit-Error-Simulation Using Matlab, Manuscript, Aug. 2003.

[2] Mathuranathan Viswanathan, How to generate AWGN noise in Matlab/Octave (without using in-built
awgn function), Manuscript, http://www. gaussianwaves.com, Jun. 2015.

Você também pode gostar