54
SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE BANDA ANCHA USANDO MODELOS ARMA SUBMUESTREADOS E INTERPOLACIÓN MULTIETAPAS MARIA XIMENA HINCAPIÉ ORDOÑEZ Asesor: ROBERTO BUSTAMANTE MILLER, Ph.D UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Bogotá, Colombia, Diciembre de 2006

SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE BANDA ANCHA USANDO MODELOS ARMA SUBMUESTREADOS E INTERPOLACIÓN MULTIETAPAS

MARIA XIMENA HINCAPIÉ ORDOÑEZ

Asesor: ROBERTO BUSTAMANTE MILLER, Ph.D

UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

Bogotá, Colombia, Diciembre de 2006

Page 2: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

1

INDICE

INTRODUCCIÓN………………………………………………………………………………………………….4 1. CANALES DE RADIO MÓVILES…………………………………………………………………….……....5

1.1 Canales de desvanecimiento (Fading Channels)……………………………………………..5

1.2 Espectro Doppler (Doppler’s Spectrum)………………………………………………………7

1.3 Espectro Doppler de Jakes……………………………………………………………….……7 2. TÉCNICA DE SIMULACIÓN PROPUESTA…………..…………………………………………………….9 3. FILTROS ARMA……………………………………………………………………………………………...10 4. INTERPOLACIÓN MULTIETAPAS…………………………………………………………………………12 5. CÁLCULO DE LOS COEFICIENTES ARMA………………………………………………………………14

5.1 Obtención de los parámetros ARMA submuestreados por el método Prony ………………....14

5.1.1 Análisis de los coeficientes obtenidos por método Prony 5.1.2 Simulaciones modelos ARMA por método Prony

5.2 Obtención de los parámetros ARMA submuestreados por el método Prony ex tendido……19

5.2.1 Cálculo de los coeficientes AR

5.2.1.1 Análisis de los coeficientes AR 5.2.2 Cálculo de los coeficientes MA

5.2.2.1 Método de Durbin 4.2.2.2 Método ex tendido de Prony

Page 3: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

2

6. SIMULACIONES FINALES……………………………………………………………………………….....26

6.1 Simulaciones de canales de radio móv iles de banda ancha.………………………….........26

6.1.1 Comparación entre las simulaciones de canal obtenidas y las simulaciones obtenida en la inv estigación de la Univ ersidad Tecnológica de Viena

6.1.2 Comparación entre las simulaciones de canal obtenidas y las simulaciones obtenida

en la inv estigación de la Univ ersidad Tecnológica de Viena

6. 2 Simulaciones de Canal Real…………………………………………………………...............28

6.2.1 Comparación entre las simulaciones de canal obtenidas y las simulaciones obtenidas en la inv estigación de la Univ ersidad Tecnológica de Viena

CONCLUSIONES………………………………………………………………………………………………..31 REFERENCIAS.......................................................................................................................................32 APENDICES……………………………………………………………………………………………………. 34 APÉNDICE 1: Conceptos importantes ………………………………………………………………………34 − Densidad Espectral de Potencia − Autocorrelación − Transformada de Fourier APÉNDICE 2: Otras técnicas para modelación de canales de radio móv iles…………………………..36 − Técnica de Simulación SOS (sum-of-sinusoids) de Jakes y sus ex tensiones − Técnica de simulación por método Monte Carlo − Ventajas y Desventajas de la técnica de simulación con filtros ARMA submuestreado e

interpolación multietapas APENDICE 3: Códigos existentes en Matlab utilizados…………………………………………………. ..41 − Función ‘prony’ de Matlab − Función ‘decimate’ de Matlab − Función ‘aryule’ de Matlab − Función ‘interp’ de Matlab − Función ‘Durbin’ de Matlab − Función ‘lblack’ de Matlab − Función ‘lrader’ de Matlab

Page 4: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

3

APENDICE 4: Códigos diseñados en Matlab ………………………………………………………………46 − Función ‘jakes_spectrum’ diseñada en Matlab: − Función ‘mi_prony _1’ diseñada en Matlab: − Función ‘mi_prony _2’ diseñada en Matlab: − Función ‘mis_AR_1’ diseñada en Matlab: − Función ‘mis_ARMA_Durbin’ diseñada en Matlab: − Función ‘mi_ary ule’ diseñada en Matlab: − Función ‘cálculob’ diseñada en Matlab: − Función ‘mis_ARMA_Prony_Ex tendido’ diseñada en Matlab: − Función ‘mis_ARMA_min’ diseñada en Matlab − Función final ‘ARMAminSOLO’ diseñada en Matlab: − Función final ‘ARMAminSUBeINTERP’ diseñada en Matlab: − Función final ‘ARMA_order’ diseñada en Matlab: − Función final ‘ARMAmaxSUBeINTERP’ diseñada en Matlab: − Función ‘Canal_Real’ diseñada en Matlab:

Page 5: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

4

INTRODUCCIÓN

Los sistemas de comunicaciones están compuestos de tres partes básicas: el transmisor, el canal y el receptor. El canal es el medio que se utiliza para transmitir la información de un lado a otro y puede determinar en gran parte el funcionamiento del sistema. Existen dos tipos de canales de comunicación: los alambrados, en los que ex iste una conex ión sólida entre transmisor y receptor (como la fibra óptica);y los inalámbricos , que no tienen esta conex ión. En estos últimos, se basa esta investigación. Para el desarrollo y la evolución de los sistemas de comunicaciones móviles es importante conocer las propiedades de los canales inalámbricos o canales de radio móviles. Estas propiedades se pueden obtener mediante mediciones experimentales. Sin embargo, estas pruebas pueden ser lentas, considerablemente costosas, y pueden necesitar permiso de las autoridades competentes. Por esta razón, quienes desarrollan este tipo de sistemas se han visto en la necesidad del desarrollar modelos matemáticos y simulaciones en softw are que caractericen los canales de radio, muestren sus propiedades y se acerquen cada v ez más a la realidad. En la actualidad, uno de los retos más grandes de la ingeniería es lograr un modelo que logre acercarse de manera ex acta al espectro Doppler, efecto producido por el mov imiento del receptor o transmisor, para así mejorar las técnicas inalámbricas de comunicación actual [1]. Se debe considerar que una señal que se transmite por un canal inalámbrico se puede reflejar en diferentes lugares (como los edificios de una ciudad) y por lo tanto puede seguir diferentes tray ectorias (multipath). Durante su recorrido, y debido a los obstáculos que se pueden interponer entre transmisor y receptor, la señal transmitida puede sufrir básicamente tres cambios principales: reflex ión, difracción y dispersión. Además de esto, para un canal de radio móvil, si el receptor (o el transmisor) está en mov imiento se introduce el ‘mov imiento’ o desplazamiento Doppler (Doppler Shi ft) que es un desplazamiento en frecuencia generado debido al mov imiento. Como resultado de estos diferentes fenómenos la señal recibida por el receptor es una señal distorsionada o desv anecida de la señal original que sufre dispersión en cada tray ectoria (canales multicaminos de desv anecimiento- multipath fading channels). Este es el may or problema que se puede encontrar en la comunicación inalámbrica y por eso es también importante realizar la aproximación a este fenómeno. Para modelar los canales de desv anecimiento multicamino se han propuesto diferentes métodos. El más común es el método propuesto por Jakes para el espectro Doppler y está basado en la suma de sinusoides [2] y [3] (v er Apéndice 2). Durante este proy ecto se desarrollan las simulaciones pertinentes para diseñar una técnica de simulación basada en el paso de ruido gaussiano blanco por filtros ARMA con submuestreo e interpolación multietapas [4]. La técnica con filtros ARMA permite una buena aprox imación al pequeño desplazamiento Doppler obtenido especialmente en los canales de radio móv iles de banda ancha, como OFDM (Orthogonal Frecuency Div ision Multiplex er) y CDMA (Code Div ision Multiple Access). La contribución de esta investigación es el desarrollo y análisis de la técnica y su producto final son las simulaciones obtenidas en Matlab que sustentarán el correcto funcionamiento de la técnica de simulación. Esta inv estigación esta div idida en seis partes principales: primero se encuentra la teoría básica sobre los canales de radio móv iles, luego la descripción de la técnica de simulación propuesta para canales de radio móv iles, la teoría básica sobre los filtros ARMA, la teoría básica de la interpolación multietapas, el cálculo de los coeficientes ARMA; y por último, las simulaciones finales. Finalmente, se muestran las conclusiones del proy ecto y , en los anexos, alguna teoría importante a lo largo de la inv estigación (como la transformada de Fourier y el análisis espectral de potencia), otras técnicas de simulación para canales de radio y, para terminar, los códigos de Matlab usados e implementados durante el proy ecto.

Page 6: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

5

1. CANALES DE RADIO MÓVILES

1.1 Canales de desvanecimiento (Fading Channels): Para el estudio de canales inalámbricos es importante entender el concepto de canal de desv anecimiento o ‘fading channel’. Un canal de desv anecimiento representa un canal entre un transmisor de radio y un receptor en mov imiento. En este canal las ondas pueden seguir diferentes tray ectorias debido a que las ondas se reflejan en diferentes lugares (como los edificios de una ciudad) y, por lo tanto, la señal recibida por el receptor es una señal distorsionada o desvanecida de la señal original que sufre dispersión en cada tray ectoria (ver Figura 1). La dispersión sufrida por la señal de llegada se caracteriza por el número de reflex iones que se dan debido a los objetos cercanos al móvil y dan lugar el desv anecimiento multicanal (multipath fading), o desv anecimiento Rayleigh, que sigue una distribución de Rayleigh (1) para un canal sin línea directa LOS (line-of-sight) o un desv anecimiento de Rician que sigue la distribución de Rician para una canal con línea directa LOS (line-of-sight). La distribución Ray leigh asume que cada onda llega con un ángulo de llegada y por lo tanto con su propio desplazamiento Doppler con distribución uniforme (entre [0,2π]) independiente de las otras ondas.

Figura 1: Desvanecimiento multicanal

⎪⎩

⎪⎨⎧

<

≥−=0,0

0)2/exp()(2

r

rbrbr

rP (1)

El desplazamiento Doppler se caracteriza porque todas las ondas llegan con un ángulo diferente (v er Figura 2) y todas tienen diferente desplazamiento Doppler en particular. El desplazamiento Doppler de una onda particular está dado por (fm cuando ex isten muchos ángulos alrededor del móv il) :

)cos( nnvf αλ

=∆ o cm fcvf = (2)

Figura 2 : Ondas de llegada al receptor en canal multicamino

Durante este proy ecto se diseñan modelos ARMA para la simulación de canales de radio móv iles que se acercan eficientemente al desplazamiento Doppler debido al movimiento. Cada modelo ARMA representa un proceso (“Tap Proccess”) del canal mientras que un canal de radio móv il real de banda ancha está compuesto por muchos de estos procesos.

Page 7: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

6

Para dar a entender la afirmación anterior se puede ver que el modelo de canal discreto en el tiempo utilizado está dado por la siguiente relación entrada – salida.

∑ −

=−= 1

0][][][ M

m m mnxnhny (3)

Donde x [n] es la salida del canal, y[n] es la entrada del canal, hm[n] es la respuesta impulso v ariante en el tiempo con retardo m y M-1 es el retardo máximo. Debido a que el canal es variable en el tiempo, la técnica desarrollada en esta inv estigación asume canales estacionarios en sentido amplio y no correlacionados (WSSUS) donde se puede asumir estacionalidad para un interv alo de tiempo y donde las secuencia del proceso (tap w eight) hm[n] y hm’[n] no están correlacionadazas entre sí. En este sentido el canal WSSUS solo requiere de dos parámetros principales para caracterizar el decaimiento y los efectos multicaminos: El Retardo en Potencia (Pow er Delay Profile) y el Espectro Doppler de Potencia (Doppler Pow er Spectra). El espectro de potencia Doppler o la función de dispersión (Scattering Function) de hm[n] está dado por:

∑∞

−∞=− −==

tvlj

mm MmelrvS 1,,1,0,][)( 2 Lπ (4)

Donde v es la frecuencia Doppler. La simulación de canales WSSUS requiere la generación de M procesos no correlacionadas y estacionarios hm[n] (m=0, 1,…, M-1). Para los sistemas de banda ancha (como CMDA y OFDM) la frecuencia de muestreo es significativ amente may or que el desplazamiento Doppler máx imo por lo que el ancho de banda Doppler es ex tremadamente pequeño. La técnica desarrollada durante este proy ecto permite un acercamiento bastante adecuado a la realidad de este pequeño espectro Doppler. Para obtener el canal real de banda ancha se deben sumar cada uno de los filtros ARMA diseñados dependiendo de la cantidad de procesos que se quieran sumar y del ancho de banda que se desee obtener (v er Figura 3 donde cada hm donde m=0…K-1 es un proceso o ‘ tap process’ del canal real).

Figura 3 : “Tapped delay line” de un canal de radio multicamino de banda ancha.1

1 A.Silvennoinen, Multipath propagation and LTV channel model. Postgraduate Course in Radio Communications, Autumn 2004 [En Línea] Disponible en: http://www.comlab.hut.fi/opetus/333/2004_2005_slides/Multipath_propagation_text.pdf

Page 8: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

7

1.2 Espectro Doppler (Doppler’s Spectrum): El espectro Doppler es un fenómeno que se da cuando una onda es emitida por un sistema en mov imiento y la longitud de onda percibida es diferente a la emitida. Evaluando la correlación para el retardo debido al movimiento del móvil:

∫ ∆==∆+=∆ −π γπ πγγτ

2

0

)cos(2 )2()()(*)((),( tfJdeptththEtQ dofj

nnd (5)

Donde f

cv

fd = es la frecuencia Doppler, Jo es la función de Bessel de primer orden y p(γ ) es la

distribución de dirección de potencia incidente (asumida como uniforme). Así, aplicando la transformada de Fourier a Q(τ ∆ t) se obtiene el espectro Doppler. Además, existe un espectro Doppler desarrollado por Jake (con forma de U, ver Figura 4) llamado el espectro Doppler de Jakes que se obtiene cuando p(γ ) es uniforme y que asume movilidad (moviendo el v alor de v que es la velocidad del móvil) y está uniformemente distribuido disperso alrededor del móv il (vmax es la frecuencia máx ima) [2] y [3].

⎪⎩

⎪⎨

⎧ ≤−=

dlc

vvvv

vvS

,0

,,)( max22

max

max

0 o

⎪⎪⎩

⎪⎪⎨

⎧ ≤−=

.,0

,,)(1

11

)(max

2

max

max0

dlc

vv

vvv

vSπ (6)

Figura 4: Jake’s Doppler Spectrum2

1.3 Espectro Doppler de Jakes La función utilizada por la Univ ersidad Tecnológica de Viena para el Espectro Doppler de Jakes es la siguiente (v er Figura 5):

3

2 J.M. Brossier, Channel Modeling Jakes Doppler spectrum. Grenoble: Institut National Poly technique de Grenoble. [En Línea] Disponible en: http://www.lis.inpg.fr/pages_perso/brossier/c-1.pdf

Page 9: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

8

A partir de la ecuación anterior se realizan las siguientes simulaciones donde se puede comparar el desplazamiento Doppler especificado por Jakes con las simulaciones obtenidas por la técnica con y sin submuestreado e interpolación multietapas.

1 Figura 5: Simulaciones obtenidas en la investigación de la Universidad de Viena

Para v isualizar el espectro de Jakes se diseño el código ‘jakes_spectrum’ en Matlab (v er Apéndice 4) con una frecuencia Doppler de 10-4 :

Simulación 1: Espectro Doppler de Jakes

Como se observa en la simulación 1, el efecto Doppler tiende a in finito en el v alor de la frecuencia v max, que en este caso es igual a 10-4, y es igual a cero para frecuencias may ores a esta. 3 Schafhuber, Dieter. Matz, Gerald. Hlawatsch, Franz. “Simulation Of Wideband Mobile Radio Channels Using Subsampled Arma Models And Multistage Interpolation” Institute of Communications and Radio-Frequency Engineering, Vienna University of Technology. Vienna, Austria. In Proc. 11th IEEE-SP Workshop on Statistical Signal Processing, Singapore, Aug. 2001, pp. 571-574.

Page 10: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

9

2. TECNICA DE SIMULACION PROPUESTA

La técnica que se desarrolla y se profundiza en este proyecto fue desarrollada inicialmente en el Instituto de Ingeniería de Comunicaciones y Radio frecuencia en la Universidad Tecnológica de Viena y es una técnica oficialmente ex puesta en Agosto del año 2001 por la IEEE en el trabajo en Procesamiento estadístico de señales por los Doctores Dieter Schafhuber, Gerald Matz y Franz Hlaw atsch. [4]. Como se dijo anteriormente es importante profundizar en este tema debido a que, a diferencia de otros simuladores, esta técnica logra acercarse satisfactoriamente a los pequeños espectros Doppler obtenidos debido al mov imiento del móvil. El éx ito de esta técnica se basa en la correcta utilización de filtros ARMA submuestreados e interpolación multietapas. Los modelos ARMA [5,6,7] se usan comúnmente para aprox imar procesos discretos v ariables en el tiempo y en este caso se utilizan para diseñar los filtros lineales de respuesta impulso infinita (IIR). Los filtros ARMA pueden usarse para simular los canales de radio debido a que si se pasa ruido gaussiano blanco por un fil tro lineal, con una respuesta en frecuencia igual al espectro Doppler, se puede generar una señal con el espectro de potencia Doppler requerido. Para ev itar el alto orden de los modelos ARMA se propone la utilización de los modelos ARMA submuestreados que básicamente utilizan solo los v alores más importantes; adicionalmente para compensar este submuestreados se le agrega la interpolación multietapas que permite v ariar las condiciones de la simulación sin realizar cambios en el modelos ARMA (v er Figura 6 [4]).

Figura 6: Estructura del simulador de canal propuesto.

Page 11: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

10

3. FILTROS ARMA Un modelo ARMA es una herramienta utilizada para entender y predecir v alores futuros en una serie de tiempo de datos Xt. Un filtro ARMA es básicamente un filtro digital de tipo respuesta impulso infinita (IIR) que está compuesto por dos partes: una auto-regresiv a (autoregressiv e – AR) que se basa en los datos anteriores es decir que regresa o mira hacia atrás usando la señal y los v alores previos en el tiempo; y una de promedio en mov imiento (moving av erage - MA) que toma un segmento de la señal, hace un promedio y se v a moviendo en el tiempo [5,6,7]. La parte auto regresiv a AR (donde p es el orden del filtro y ap los polos) tiene función de transferencia y ecuación diferencial respectiv a:

][][]1[][

)(1

1)(

)0()()( 1

0

nxPnyAnyAnyzkAzA

bzHpAR PP

k

kP

P

=−++−+→−

==→

∑=

L (7)

La parte de promedio en mov imiento MA (donde q es el orden del fil tro y bq los ceros) tiene función de transferencia y ecuación diferencial respectiv a:

][]1[][][1

)(

)0()(

)()( 100 QnxBnxBmxBny

zkB

azR

zHqMA Q

Q

k

kQ

Q −++−+=→==→∑

=

L (8)

Finalmente, la función de transferencia final del filtro ARMA (donde p y q son los respectiv os órdenes; y ap y bq los respectiv os polos y ceros) es entonces:

P

P

QQ

P

k

kP

Q

k

kQ

P

Q

zAzAzBzBB

zkA

zkB

zAzR

zHqpARMA−−

−−

=

=

++++

=−

==→

∑L

L1

1

110

0

0

1)(1

)(

)()(

)(),( (9)

La ecuación diferencial que describe el filtro ARMA es: ][]1[][][]2[]1[][ 1021 QnxBnxBnxBPnyAnyAnyAny QP −++−+=−++−+−+ KK (10)

La ecuación diferencial también se puede escribir de la forma:

1]0[],[][]`[][0 0

=−=−∑ ∑= =

P

k

Q

kconaknwkbknhka (11)

Donde a[k] y b[k] son los coeficientes AR y MA respectiv amente, P y Q son los ordenes de los filtros AR y MA respectiv amente, h[n] es la salida del filtro y w[n] es la entrada. En esta implementación de los modelos ARMA en específico, se agrega sub-muestreo para evitar que el filtro tome un orden demasiado alto. Este sub-muestreo consiste de un factor entero L>1 que guarda uno de cada L v alores muestreados y elimina las L-1 muestras intermedias generando una señal de salida x[n] de acuerdo a la relación x[n]=x [nL].

Page 12: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

11

Para agregar este sub-muestreo la ecuación diferencial se multiplica por h’*[n-l]:

(12)

Donde r’[n]=r[nL] es la auto-correlación sub-muestreada y c[n] es la respuesta impulso del filtro ARMA. La ecuación no es lineal en los coeficientes ARMA a[k] y b[k] porque c[n] depende de a[k] y b[k]. En el dominio de la frecuencia la ecuación está dada por:

2

2

)()(

)(*)()()('

vAvB

vCvAvBvS == (13)

Donde S’(v ), A(v), B(v) y C(v)=B(v )/A(v ) son las transformadas de Fourier de r’[n], a[n], b[n] y c[n] respectiv amente [4].

Ζ∈−=−∑ ∑= =

lconlkckbklrkaP

k

Q

k0 0

],[*][]['][

Page 13: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

12

4. INTERPOLACIÓN MULTIETAPAS La interpolación y el submuestreo [12] son procesos muy utilizados en el procesamiento digital de señales y son procesos duales debido a que el submuestreo quita M-1 muestras de la señal con una taza de muestreo a Fs/M, mientras que la interpolación agrega L-1 ceros entre los puntos muestreados de una señal aumentando a una frecuencia de Fs*L (v er Figura 7).

Submuestreo Interpolación Dominio Del Tiempo ][][ nMxny =

⎭⎬⎫

⎩⎨⎧ ±±=

=dlc

LLparanLnxnxu 0

...2,,0]/[][

Dominio De La

Frecuencia ∑−

=

−=1

0

1

)()(M

k

kM

M WzXzY

)()( Lu zXzX =

Figura 7: Tabla de ecuaciones de submuestreo e interpolación

El espectro de la interpolación es:

)()()()( 22 LfXemxemxfXm

fLmjz

m

fmjzz === ∑∑

−∞=

−∞

−∞=

− ππ (14)

El submuestreo del Filtro ARMA se realiza para evitar el uso de un orden de filtro mucho más alto, por lo que es necesario diseñar también una etapa de interpolación multietapas que compensa de alguna forma este submuestreado y que permite v ariar las condiciones de los filtros ARMA diseñados en diferentes etapas si es deseado. El proceso de interpolación es muy importante para el procesamiento digital de señales y es utilizado dentro de muchos contex tos especialmente para conv ersión entre diferentes tazas de muestreo. La interpolación de una señal por un factor entero se puede lograr procesando una señal x[n] con una cascada de filtros pasabajas. Si la señal de entrada x [n], por ejemplo, tiene una frecuencia de muestreo de f en una etapa, entonces a la salida de la señal interpolada y[n] es una señal con una frecuencia de muestra de Lf. A partir de este principio se pueden diseñar sistemas mucho más complejos con múltiples etapas de filtros pasabajas a lo que se le llama la interpolación multietapas. Esto quiere decir que se escoge L como sucesivas etapas de interpolación con factores de interpolación Lk donde cada etapa de interpolación se puede representar usando una descomposición polifásica. Lk debe ser un entero y debe cumplir:

∏=

=K

kkLL

1

(15)

Para v isualizar más la interpolación multietapas, un sistema de una sola etapa (v er Figura 8) y con un factor de interpolación de L se puede representar como:

Figura 8: Sistema de interpolador de una sola etapa

Page 14: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

13

Si Lk cumple la condición mencionada anteriormente no produce ninguna v entaja sobre la inicial y se puede ex presar el sistema (v er Figura 8):

Figura 8: Sistema de interpolador de una sola etapa con Lk

Si además de esto, se introducen filtros pasabajas entre cada taza de muestreo se obtiene un sistema donde el aumento de la taza de muestreo ocurre en una serie de ‘I’ etapas (v er Figura 9) donde cada etapa es una etapa de interpolación independiente como se ve a continuación:

Figura 9: Sistema de interpolador multietapas

La relación entrada-salida de cada etapa de interpolación es la siguiente:

1,...,1,0,][][1

0

)()1( −=−⎥⎦

⎥⎢⎣

⎢= ∑

=

+ KkiLn

unhkL

i k

ki

k (16)

Donde ⎥⎦

⎥⎢⎣

kLn

es el entero más largo menor o igual que n/Lk, con

∑−

−=

−=−=1

)()()( 1,..,1,0],[][][k

k

V

Vlk

kKi

ki Lilnhlpnu (17)

Aquí, h(k)[n] y h(k+1)[n] son la entrada y salida respectiv amente de la k-esima etapa de interpolación (h(0)[n]= h’[n] y h(k)[n]= h[n]; además pi(k)[n] y ui(k)[n] son la respuesta impulso de largo 2Vk y la secuencia de salida respectiv amente del i-ésimo filtro polifase de la k-esima etapa de interpolación). Lo ideal es que el factor de interpolación no sea demasiado grande y, debido a que el factor de submuestreo elegido fue de 1000, se decide realizar una interpolación multietapas de 3 etapas con factores de interpolación de L1=5, L2=40 y L3=5 de manera que L1*L2*L3=1000.

Page 15: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

14

5. CÁLCULO DE LOS COEFICIENTES ARMA Para desarrollar los modelos ARMA, es indispensable encontrar los coeficientes del modelo que permitan su correcto funcionamiento y estabilidad. En este caso, los coeficientes B para la parte de promedio en mov imiento (MA o ceros) y los coeficientes A para la parte auto-regresiva (AR o polos). Ex isten diferentes métodos para calcular los coeficientes ARMA simultáneamente y otros para calcular los coeficientes AR y MA por separado. En este caso, para desarrollar los métodos se utilizará la herramienta Matlab debido a que ésta proporciona una buena aprox imación los v alores buscados utilizando métodos recursiv os y funciones y a ex istentes dentro del softw are. El cálculo de los coeficientes AR, por separado, es relativ amente fácil de realizar mientras que el de los coeficientes MA no lo es. Inicialmente el cálculo de los coeficientes A y B fue realizado por el método Prony que permite encontrar los coeficientes del filtro (polos y ceros) simultáneamente y que puede modelarse fácilmente mediante un algoritmo recursiv o y a ex istente en Matlab. Este método utiliza la v ariación del método de la covarianza para encontrar los coeficientes del denominador AR (coeficientes A o polos) y después encuentra los coeficientes del numerador MA (coeficientes B o ceros) que encajen ex actamente en las primeras n+1 muestras de x. 5.1 Obtención de los parámetros ARMA submuestreados por el método Prony. Utilizando la función ‘prony ’ y a existente en Matlab (v er Apéndice 3) se diseñó un nuevo código ‘mi_prony _1’ (ver Apéndice 4) en el que se agregan algunos detalles como la entrada de ruido Gaussiano blanco mediante la función ‘randn’ que agrega números aleatorios normalmente distribuidos (v er Simulación 3); y el factor de sub-muestreo mediante la función ‘decimate’ (v er Apéndice 3) que sub-muestrea la información de entrada a una taza más baja dependiendo del factor insertado. Inicialmente se realizó un código para observ ar la obtención de los coeficientes A y B con un orden pequeño de P=10 y Q=10 (Ver Apéndice 4) [8, 9].

Simulación 2: Coeficientes ARMA con P=10 y Q=10 por Prony

Como se v e en la simulación 2 (en el ‘command w indow’ de Matlab) se obtienen correctamente los v alores de los coeficientes A y B, cada uno en un vector fila llamado con su respectiv o nombre.

Page 16: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

15

Simulación 3: Gráfica del Ruido Gaussiano Blanco insertado al filtro con su respectivo histograma que muestra valor medio cero del ruido.

5.1.1 Análisis de los coeficientes obtenidos por método Prony Con la función ‘mi_prony _2’ (ver Apéndice 4) se ingresaron los ordenes mínimos (p,q)=(10, 100) y máx imos (p,q)=(50,1000) de los filtros requeridos y se obtuv ieron las simulaciones de las respuestas impulso y gráficas del plano-z de los coeficientes obtenidos [b,a]=mi_prony(x,10,100,1000) y [b,a]=mi_prony (x,50,1000,1000) (v er Simulación 4 y 5).

Simulación 4: Respuesta impulso y Plano z para P=10 Q=100 factor de submuestreo=1000

Page 17: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

16

Simulación 5: Respuesta impulso y Plano z para P=50 Q=100 factor de submuestreo=1000

En las simulaciones anteriores, se puede observ ar que aunque la función ‘mi_prony_1’ (v er Apéndice 4) obtiene los coeficientes b y a del filtro de acuerdo al orden m y n; no se obtienen el mismo número de coeficientes n y m. Como se pueden v er en el plano z (Simulación 4 y 5), sólo un pequeño número de coeficientes fueron obtenidos (solo cinco ceros y tan solo un polo) tanto para el filtro de orden (p,q)=(10,100) como para el filtro de orden (p,q)=(50,100). Esto quiere decir que la obtención de los coeficientes por el método prony todav ía no es la correcta. Se descubrió entonces que el número de polos y ceros era bajo debido al alto número de submuestreo (factor submuestreo=1000) y a que solo se le estaba poniendo a la entrada un ruido Gaussiano Blanco con 5000 muestras. A consecuencia de esto se realizó un cambio al número de muestras del ruido Gaussiano a 500000 y se repitieron las simulación para ver el comportamiento primero de la respuesta impulso y luego de los polos ceros en el plano z para mirar la estabilidad del filtro (v er Simulación 6 y 7).

Simulación 6: Respuesta impulso y Plano z para P=10 Q=100 factor de submuestreo=1000

Page 18: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

17

Simulación 7: Respuesta impulso y Plano z para P=50 Q=100 factor de submuestreo=1000 El primero de estos filtros (el de (p,q)=(10,100)) si presenta estabilidad mientras que el segundo (p,q)=(50,1000) no. Se volv ió a bajar el número de muestras del ruido Gaussiano Blanco a 50000 para permitir que ambos filtros ARMA diseñados (el de menor orden (p,q)=(10,100) y el de mayor orden (p,q)=(50,1000)) fueran sistemas estables y se repitieron una v ez más las simulaciones pero se observ ó que el número de coeficientes del denominador era apenas uno y por lo tanto no funcionaba el método prony no funcionaba correctamente para el propósito de esta investigación. 5.1.2 Simulaciones modelos ARMA por método Prony Para observ ar el funcionamiento de los modelos ARMA se diseñó el código ‘mi_prony _2’ (v er Apéndice 4) por el método Prony se realizaron simulaciones del Ruido Gaussiano blanco antes y después del filtro ARMA de orden P=10 y Q=10 y su respectiv a respuesta impulso:

Simulación 8: Gráfica p=10 y q=10 de entrada y salida del filtro y respuesta impulso del filtro. Con el mismo código, se realizaron las mismas simulaciones anteriores pero ahora con factor de sub-muestreo de 1000 y con los ordenes mínimos que serian P=10 (P=10…50) y Q=100 (Q=100…1000), es decir, [b,a]=mi_prony _2(x,10,100,1000).

Page 19: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

18

Simulación 9: Gráfica factor de submuestreo=1000 p=10 q=100 y respuesta impulso del filtro.

Finalmente, obtuv ieron las simulación para un factor de sub-muestreo de 1000 y con los ordenes máx imos que serian P=50 (P=10…50) y Q=1000 (Q=100…1000) [b,a]=mi_prony _2(x,50,1000,1000).

Simulación 10: Gráfica factor de submuestreo=1000 p=50 q=100 y respuesta impulso del filtro. Además, también se realizaron diferentes simulaciones para P=10 y Q=100 con diferentes factores de submuestreo para observar el comportamiento del submuestreo con respecto al tiempo.

Page 20: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

19

Simulación 11: Gráficas diferentes submuestreos a la salida del filtro.

En las simulaciones anteriores se nota para un factor de sub-muestreo de 1 el ruido queda entre -40 y 40, para uno de 10 entre -4 y 4 y para uno de 100 entre -0.4 y 0,4. Esto indica que a medida en que el factor de sub-muestreo es may or, mejor es el filtrado que realiza el filtro ARMA con una entrada de Ruido Gaussiano Blanco que es ex actamente lo que se desea realizar para poder disminuir el orden del filtro y obtener una mejor aprox imación. 5.2 Obtención de los parámetros ARMA submuestreados por el método Prony extendido. Debido a que por el método de prony (donde los coeficientes se calculan simultáneamente) los filtros no dieron un muy buen funcionamiento, se calcularon los coeficientes AR y MA por separado por el método ex tendido de Prony. 5.2.1 Cálculo de los coeficientes AR Generalmente los coeficientes a[n] son hallados para grandes retardos de r’[n] y la parte MA no los influencia. En este caso, se incluy en los v alores más altos de r’[n] para proporcionar una mejor aprox imación [2]. Por esta razón, primero se hallan los coeficientes de la parte auto regresiva (AR) y después se hay an los parte de media en mov imiento (MA) dependiendo de la auto-correlación residual4. Para este proceso se pone Q=0 y así sólo queda la parte auto regresiv a del filtro. Debido a que la respuesta impulso del filtro ARMA es causal5 para l=1,2,…,N con a[0]=1 surge la ecuación de Yule-Walker, donde

rRa −= (18) 4 La auto-correlación residual consiste en la existencia de un determinado nivel de correlación entre los errores. 5 Un sistema causal es aquel que no se anticipa es decir que las salidas dependen de entradas presentes y pasadas pero no de futuras.

Page 21: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

20

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

+−+−−

=

][']2[']1['

]2[']0[']1[']1[']1[']0['

PNrNrNr

PrrrPrrr

R

L

MMM

L

L

(19)

TPaaa ]][]1[[ L= y TNrrr ]][']1['[ L= (20) Siendo N el número de muestras de r’[n] usados para el cálculo. Para entender mejor el funcionamiento del método Yule-Walker se debe observar que cuando p=1:

1,1)1( arxx = (21)

Cuando p=2:

⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

2,2

1,2

1)1()1(1

)2()1(

aa

rr

rr

xx

xx

xx

xx (22)

Y en general:

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

−−

−−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

pp

p

p

xxxx

xxxxxx

xxxxxx

xx

xx

xx

a

aa

PrPr

PrrrPrrr

Pr

rr

,

2,

1,

1)3()1(

)2()1(1)1()1()2()1(1

)(

)2()1(

M

L

MOMMM

L

L

M (23)

Los coeficientes ak,k que se encuentran en la ecuación de Yule-Walker pueden hallarse entonces cuando p=k y son llamados los coeficientes de auto-correlación parcial. Estos coeficientes son la medida del efecto de la entrada trasladada en k X(n-K) en X(n). Por ejemplo, cuando p=3, rxx(3)=a3,1rxx(2)+ a3,2rxx(1)+ a3,3 donde los primeros dos términos describen el efecto de rxx(2) y rxx(1) en rxx(3) y el último término es la correlación de rxx(3) después de este efecto (a3,3 es la correlación parcial de x (n) y x (n-3)). De esta forma, el problema se reduce a encontrar los coeficientes por medio de la solución de las ecuaciones diferenciales anteriores prov enientes de Ra=-r.

Para hallar los coeficientes A, se utilizó la función ‘aryule’ (v er Apéndice 3) existente en Matlab. Esta función resuelv e las ecuaciones diferenciales de la auto-correlación y encuentra así los coeficientes por el método de Yule-Walker (v er Simulación 12).

Page 22: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

21

Simulación 12: Obtención de los coeficientes AR por método de Yule-Walker

5.2.1.1 Análisis de los coeficientes AR: Se diseñó el código ‘mis_AR.m’ (ver Apéndice 4) para generar los coeficiente ‘a del modelo AR con orden p=10. Esta función permite que los coeficientes se mantengan todos dentro del círculo unitario y por lo tanto asegura que el sistema diseñado sea estable como se v e en la simulación 13.

Simulación 13: Plano z para un factor de submuestreo de 1000 con p=10 y p=50 respectivamente.

5.2.2 Cálculo de los coeficientes MA Después de haber obtenido los coeficientes A del denominador, se procede a buscar los coeficientes B del numerador. Para hallar los coeficientes MA ex isten también muchos métodos. Uno de ellos (de los más conocidos) es el método Durbin; y otro es el método implementado en la inv estigación de la Universidad Tecnológica de Viena [4] llamado método ex tendido del método Prony.

Page 23: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

22

5.2.2.1 Método de Durbin:

Se hallaron los coeficientes MA por el método de Durbin con la función diseñada ‘mis_ARMA_Durbin’ (v er Apéndice 4) haciendo uso de la función ‘Durbin’ ex istente en Matlab (v er Apéndice 3):

- 1.5 - 1 -0.5 0 0.5 1 1.5

- 1

-0 .8

-0 .6

-0 .4

-0 .2

0

0 .2

0 .4

0 .6

0 .8

1

Re al Part

Imaginary Part

90

Pole/Z ero Plo t

Simulación 14: Plano z de Polos y Ceros obtenidos por Yule Walker (polos) y método de Durbin

(ceros).

Como se puede v er en el plano z, los coeficientes obtenidos (tanto polos como ceros) por el método de Durbin están todos dentro del circulo unitario y no se acercan a 1. Estos coeficientes hacen que éste sea un filtro estable. Sin embargo, este método pierde su eficiencia para oórdenes más altos.

5.2.2.2 Método extendido de Prony: El método ex tendido de Prony [4] se basa en el estimador espectral de Blackman-Tukey6 con una v entana de Barlett y la obtención del Cepstrum (coeficientes ‘C’). Básicamente, cuando ya han sido obtenidos los coeficientes AR, se aplica un filtro inv erso de x [n] para obtener el MA residual z[n], luego se estima el Cepstrum de z[n]; y, finalmente se estiman los parámetros MA con ak=0 y a0=1 para k>0. Para la obtención de los coeficientes del Cepstrum ex iste todo un procedimiento en el que primero se mira observ a si la función de transferencia del modelo ARMA H(z) es estable y causal, y entonces se saca el logaritmo natural de la función de transferencia que es una función analítica en el circulo unitario y por lo tanto se puede representar como una ex pansión de Laurent:

∑∑

∑ ∞

=

=

=

=+

=0

1

0 )1

ln()(lni

iip

k

kk

q

m

mm

ZCza

zbzH (24)

A partir de esta ecuación se cambia la v ariable por u=z-1, se deriv a con respecto a u, se organizan las sumatorias obtenidas y finalmente se obtienen los parámetros ‘c’. Los parámetros ‘c’ se obtienen con:

)}({ln^

1^

jweFk Sc −= (25)

6 Blackman-Tukey es un estimador espectral basado en la auto-correlación rxx. El algoritmo que lo modela produce el estimador Sbtxx de la densidad de potencia espectral Sxx basada en la auto-correlación rxx.

Page 24: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

23

Donde S(ejw) es un estimador espectral no paramétrico como el periodograma y F-1{} es la transformada inv ersa de Fourier. El estimador espectral utilizado es el de Blackman-Tukey cuya idea básica es estimar la función de cov arianza cxx (k) y aplicarle una v entana. El estimador espectral de Blackman-Tukey se define como:

dueWeSeWeSeS jwjwmaperiodogra

jwjwaperiodogrm

jwBT )()(

21)()(

21)(

^

∫−

==π

πππ (26)

=

−=m

mk

jkwk

jwBT ekwkreS )()()(

^^ (27)

Donde w (k) es la v entana aplicada utilizada para que los v alores no sean complejos, queden dentro de un soporte finito de [-Q,Q] y con una transformada de Fourier positiv a real. En este caso se utiliza la v entana de Barlett o v entana triangular donde:

^

)]()([)]([ ∑∞

−∞=

−=k

jwkBp ekrkwwPE )()( wWDTFTkwCon BB →←→ (28)

^

)()(21

)]([ ∫− −=π

πψψψ

πdwWPwPE Bp (29)

La v entana de Barlett se define como:

⎪⎩

⎪⎨

−≤≤−

−−

−≤≤−=

12

1,

12

22

10,1

2

)(Nn

NN

n

NnN

n

nw (30)

Finalmente, usando los coeficientes Ck del estimador espectral Cesptral y los parámetros AR obtenidos anteriormente, se obtienen los parámetros MA del modelo asumiendo b0=1 y 1<=k<=q de con alguna de las ecuaciones mostradas a continuación (ecuación 27 obtenida de “Spectral Estimation of ARMA Processes Using ARMA Cepstrum Recursion” [10] y 28 de “On Moving Average Estimation” [11])

⎥⎦

⎤⎢⎣

⎡ ++−= ∑∑∑∑−

=−−

==−

=−

ik

mmikm

k

ii

k

mmkm

k

mmkmkk baicbmaambbkc

kb

0

1

11

1

10

1 (31)

∑−

=−−=

1

0

)(1 j

pppjj bCpj

jb (32)

Se diseño la función ‘calculob’ (ver Apéndice 4) que implementa la ecuación obtenida de “Spectral Estimation of ARMA Processes Using ARMA Cepstrum Recursion.” [10] y que permite obtener los coeficientes MA a partir de los coeficientes AR y de los coeficientes cepstrum. Utilizando la función ‘calculob’ se diseñó la función ‘mis_ARMA_Prony _Ex tendido’ (v er Apéndice 4) y con ella se realizaron las simulaciones para los coeficientes AR y MA con y sin submuestreo ni interpolación (v er Simulación 15 y 16).

Page 25: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

24

-1 .5 -1 -0 .5 0 0.5 1 1.5

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Re al Par t

Imaginary Part

89

Pole/Zero Plo t

Simulación 15: Plano z de Polos y Ceros por método extendido de Prony (p, q)= (10,100) sin

submuestreo ni interpolación.

Como se puede v er en el plano z anterior, el método prony ex tendido sin submuestreo ni interpolación con (p, q)= (10,100) permite que todos los coeficientes queden dentro del circuito unitario manteniendo así la estabilidad del filtro ARMA. Los polos del filtro quedan más cerca del origen que de la unidad por lo cual nos indica que este filtro es bastante estable y que funciona correctamente. Luego, se diseñó la función ‘mis_ARMA_min’ (v er Apéndice 4) con la que se simulo el la obtención de los coeficientes AR y MA por el método Prony ex tendido usando la función ‘calculob’:

-1 .5 -1 - 0.5 0 0 .5 1 1.5

- 1

-0 .8

-0 .6

-0 .4

-0 .2

0

0 .2

0 .4

0 .6

0 .8

1

Real Pa rt

Imaginary Part

89

Pole/Zero Plot

Simulación 16: Plano z de Polos y Ceros por método extendido de Prony (p, q)= (10,100) con

submuestreo e interpelación.

Como se puede v er en el plano z, el método prony ex tendido con submuestreo de 1000 e interpolación con tres etapas de 5, 40 y 5 respectiv amente y (p, q)= (10,100) permite que todos los coeficientes queden dentro del circuito unitario manteniendo así la estabilidad total del filtro ARMA. Esto indica que el filtro realizado está correctamente diseñado. Se realizaron simulación para los ordenes del filtro máx imos (p, q)= (50,1000) sin submuestreo y luego con submuestreo (v er Simulación 17 y 18).

Page 26: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

25

-1.5 -1 -0.5 0 0.5 1 1.5

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Real Part

Imaginary Part

49

Pole/Zero Plot

Simulación 17: Plano z de Polos y Ceros por método extendido de Prony (p, q)= (50,1000).

Como se puede ver en el plano z, el método prony ex tendido sin submuestreo ni interpolación con (p, q)= (50,1000) permite que todos los coeficientes queden dentro del circuito unitario manteniendo así la estabilidad del filtro ARMA. Esto indica que también con el orden más alto los coeficientes ARMA so calculados satisfactoriamente y permiten la estabilidad del filtro diseñado.

-1. 5 -1 -0.5 0 0. 5 1 1.5

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Real Part

Imaginary Part

49

Pole/ Zero Plot

Simulación 18: Plano z de Polos y Ceros por método extendido de Prony (p, q)= (50,1000).

Como se puede v er en el plano z, el método prony ex tendido con submuestreo de 1000 e interpolación con tres etapas de 5, 40 y 5 respectiv amente y (p, q)= (50,1000) también permite que todos los coeficientes queden dentro del circuito unitario manteniendo así la estabilidad total del filtro ARMA. Esto indica que el filtro realizado está correctamente diseñado también para el orden más alto y que funciona correctamente.

Page 27: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

26

6. SIMULACIONES FINALES 6.1 Simulaciones de canales de radio móviles de banda ancha Se desarrolló el código ‘ARMAminSOLO’ (v er Apéndice 4) y se halló la densidad espectral de potencia del filtro ARMA sin submuestreo ni interpolación. Luego se desarrolló el código ‘ARMAminSUBeINTERP’ (v er Apéndice 4) y se halló también la densidad espectral de potencia tras la segunda etapa de interpolación: >> [a,b, ARMA, primera, segunda, tercera]=mis_AR_MA_1; >> x=logspace(-6,0); >> n=fft(ARMA)*jakes_spectrum(x,10 -̂4); >> loglog(x,n(20,:)); >> n=fft(tercera)*jakes_spectrum(x,10̂ -4); >> loglog(x,n(500000,:)); >> n=fft(segunda)*jakes_spectrum(x,10̂ -4); >> loglog(x,n(100000,:));

El factor de submuestreo e interpolación utilizado en las simulaciones es de L=1000 El orden del filtro es P=20 y Q=100 y la interpolación multietapas se realizó en tres etapas con L0=5, L1=40 y L2=5 respectiv amente. 6.1.1 Comparación entre las simulaciones de canal obtenidas y las simulaciones obtenida en la investigación de la Universidad Tecnológica de Viena:

Simulación 20: Simulación del Espectro Doppler vs. Desplazamiento Doppler relativo sin y con interpolación

Al lado derecho se puede ver la simulación obtenida por la Universidad Tecnológica de Viena (mostrada en la Figura 2.a del ‘paper’). Esta gráfica muestra el espectro Doppler de Jakes (especificado) S0(v ), el espectro doppler obtenido sin submuestreo ni interpolación y el espectro doppler obtenido con submuestreo e interpolación para un canal de una sola muestra “Single Tap channel” . Al lado izquierdo se muestran las mismas simulaciones para el canal desarrollado en este proy ecto. Como se puede observ ar que las simulaciones de esa inv estigación funcionan de la misma manera que las de la Universidad Tecnológica de Viena. Los espectros Doppler obtenidos se acercan claramente al espectro Doppler especificado de Jakes donde M=1 y la vmax es 10-4 que equiv ale a un ancho de banda Doppler de 100Hz con una frecuencia de muestreo de 1MHz:

Page 28: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

27

⎪⎩

⎪⎨

⎧ ≤−=

dlc

vvvv

vvS

,0

,,)( max22

max

max

0 (33)

Se concluye entonces que la densidad espectral de Potencia se acerca claramente al espectro Doppler de Jakes especificado [1] . Además de esto, también se puede observ ar que la técnica de simulación con submuestreo e interpolación es mucho mas precisa para la aproximación al espectro Doppler de Jakes que sin submuestreo ni interpolación. 6.1. 2 Comparación entre las simulaciones de canal obtenidas y las simulaciones obtenida en la investigación de la Universidad Tecnológica de Viena:

Simulación 21: Simulación del Espectro Doppler vs. Desplazamiento Doppler relativo

Al lado derecho se puede ver la simulación obtenida por la Universidad Tecnológica de Viena (mostrada en la Figura 2.b del paper). Esta gráfica muestra la simulación de un canal de una sola muestra donde es tá el espectro Doppler obtenido después de la segunda etapa de in terpolación. Al lado izquierdo se muestran las mismas simulaciones para el canal desarrollado en este proy ecto. Como se puede observar claramente las simulaciones funcionan ex actamente de la misma manera. Los espectros Doppler obtenidos se acercan claramente al espectro Doppler especificado de Jakes. Debido a que este espectro se obtiene después de la segunda etapa de interpolación, antes de la tercera etapa L2=5, ésta tiene ancho de banda doppler de LVmax=5x 10-4. Esto muestra que se pueden generar simultáneamente canales con el mismo perfil Doppler pero con diferentes anchos de banda Doppler. Lo anterior quiere decir que se pueden obtener modelos acertados del espectro en cada una de las etapas de interpolación y , por lo tanto, se podrían v ariar condiciones de la técnica en cada una de las etapas si se requiriera en algún momento. 6.1. 3 Comparación entre la simulación del canal sin submuestreo ni interpolación pero con considerable mayor orden del filtro ARMA y la simulación con submuestreo e interpolación

Page 29: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

28

Para realizar la comparación entre la simulación del canal sin submuestreo ni interpolación pero con considerable mayor orden del filtro ARMA y la simulación con submuestreo e interpolación se desarrollo el código ‘ARMA_orden’ (ver Apéndice 4) y se le aumentó el orden al filtro ARMA sin submuestreo ni interpolación hasta obtener resultados similares a los que se obtuv ieron con submuestreo e interpolación.

Simulación 22: Simulación del Espectro Doppler vs. Desplazamiento Doppler relativo con

submuestreo e interpolación y orden del filtro ARMA de (p,q)=(20,100) y comparación con la simulación del canal sin submuestreo ni interpolación pero con orden del filtro ARMA (p,q)=(50,1000) Se concluy e entonces que para obtener los mismos resultados de la técnica con filtros ARMA submuestreados e interpelación multietapas se debe aumentar el orden del filtro considerablemente hasta P=50 y Q=1000. En este sentido es ev idente que el submuestreo y la interpolación permiten trabajar con ordenes de filtros mucho menores y obtener los mismos resultados. Esto simplifica el costo computacional de la técnica y hace que sea considerablemente eficiente. 6.2 Simulación de canal real Finalmente, para simular el canal real se sumaron seis realizaciones (‘Tap-Processes’) de filtros ARMA con entrada de ruido gaussiano blanco: M=6 (tap processes) m= 0,1, 2, 3, 4, 5 para obtener el canal real de banda ancha. Para cada uno de los espectros Doppler se diseñó un filtro ARMA submuestreado de orden P=5- y Q=1000 usando N=500 y factor de submuestreado y de interpolación de 1000 de orden. Finalmente, se halló la función de distribución de canal, conocida también como función de dispersión o “scattering function” (v er Simulación 23).

Page 30: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

29

Simulación 23: Simulación del Canal Real

Se puede observ ar que se obtiene un muy buen resultado de simulación pues muestra el espectro Doppler relativ o al desplazamiento en función del retardo del temporal. El espectro Doppler máx imo simulado es de 0.0006 y se puede v er claramente la forma de U que obtiene el espectro en función del desplazamiento Doppler relativ o (Doppler shift) y que tiende a infinito justo en 0.0006. Se concluy e que la técnica desarrollada es ex itosa para los pequeños anchos de banda Doppler de las comunicaciones inalámbricas de banda ancha como lo es en este caso 0.0006. Se puede v er como a trav és del tiempo, y tras realizar los seis procesos (‘tap procces’), la funcion de dispersión (‘scattering function’) se acerca al espectro Doppler de Jakes especificado [1]. 6.2.1 Comparación entre las simulaciones de canal obtenidas y las simulaciones obtenidas en la investigación de la Universidad Tecnológica de Viena La simulación obtenida en la investigación de la universidad de Viena fue la siguiente:

Figura 24: Canal Real obtenido por la Universidad Tecnológica de Viena

Page 31: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

30

La simulación anterior obtenida por la Univ ersidad Tecnológica de Viena muestra el espectro doppler en función de cada retardo simulado. Según indica la inv estigación [4] este resultado se acerca a un área suburbana de Alemania determinado. Desafortunadamente, los modelos de decaimiento para las señales de entrada al canal no fueron especificados en el ‘paper’ [4] por lo que no se puede comparar con la simulación 23 en la que sólo se tuv o en cuenta el ruido Gaussiano blanco como entrada. Sin embargo, ambas simulaciones muestran de manera correcta la forma del espectro Doppler de Jakes y, por lo tanto, ambas funciones de dispersión (‘scattering functions’) son cercanas a las de canales reales [2].

Page 32: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

31

CONCLUSIONES La técnica de simulac ión de canales de radio móviles de banda ancha desarrollada en este trabajo, consis te básicamente en una correcta combinación de filtros ARMA submuestreados y una interpolación multietapas. Debido a que esta técnica se div ide en el submuestreo y luego tres etapas de interpolación, se pueden realizar cambios en cada una de las etapas independientemente, permitiendo así flex ibil idad en el diseño de cada parte de la técnica. Para obtener respuestas similares a las obtenidas para los fil tros ARMA con submuestreo e interpolación pero sin usar submuestreo ni interpolación se debe aumentar el orden del fil tro de 20 a por lo menos 50 para los polos y de 100 a por lo menos 1000 para los ceros. Por esta razón, se puede decir que el submuestreo e interpolación se usan para ev itar altos órdenes en los fil tros ARMA diseñados y , de esta forma, reducir la complejidad computacional de la técnica. Aunque ex isten diferentes métodos para calcular los coefic ientes ARMA, en este caso la técnica más adecuada para el cálculo de éstos es calcular los coeficientes AR por el método de Yule Walker y luego los coefic ientes MA por el método extendido de Prony. Este método permite calcular los coeficientes ARMA de manera correcta al darle estabilidad al filtro: los polos y ceros del fi ltro quedan todos dentro del círculo unitario (en el Plano Z) y , además, como son pocos los polos cerca del límite unitario, se puede decir que el sistema no tiende a la inestabilidad. En este proyecto, se reprodujo la técnica propuesta en Viena [2] y se demostró que con ella es posible simular canales de radio que reproducen condiciones reales como el espectro Doppler de Potencia y la función de dispersión. El espectro de frecuencia, obtenido a partir de esta técnica es bastante preciso ya que se acerca al espectro Doppler especificado por Jakes [6], tendiendo a infinito para el valor del desplazamiento Doppler máximo (‘Maximum Doppler Shift’). Además. la función de dispersión de canal real obtenida muestra el comportamiento de dos caracterís ticas importantes de los canales de radio móviles: el Perfil de Retardo en Potencia y el Espectro Doppler de Potencia. Por todo lo mencionado anteriormente, la técnica de simulación desarrollada durante este proyecto funciona correctamente y es una técnica optimizada, flex ible y precisa para los canales de radio móviles y especialmente para los sis temas de banda ancha que tienen pequeños anchos de banda Doppler, generados por el movimiento del transmisor y /o del receptor.

Page 33: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

32

REFERENCIAS [1] S. Gaurav y S. Mehakdeep, Fading Channel Simulator. School of Electrical and Computer Engineering, Purdue Univ ersity . West Lafay ette, U.S.A: 2002, pp 8-31. [En Línea] Disponible en: https://engineering.purdue.edu/people/gaurav .sharma.3/Reports/final_report.pdf [2] W.C. Jakes, Microwave Mobile Communications. New York: Wiley , 1974. Chapter 1. [3] J.M. Brossier, Channel Modeling Jakes Doppler spectrum. Grenoble: Institut National Poly technique de Grenoble. [En Línea] Disponible en: http://www.lis.inpg.fr/pages_perso/brossier/c-1.pdf [4] D. Schafhuber, G. Matz y F. Hlaw atsch, “Simulation Of Wideband Mobile Radio Channels Using Subsampled Arma Models And Multistage Interpolation” Institu te of Communications and Radio-Frequency Engineering, Vienna University of Technology. Vienna, Austria. Presentado en: Proc. 11th IEEE-SP Workshop on Statistical Signal Processing, Singapore, Aug. 2001, pp. 571-574. [5] D. Mandic, Lecture 2: Linear Stochastic Models Special Types of Random Processes: AR, MA, and ARMA Dept. of Electrical and Electronic Engineering, Imperial College London: [En Línea] Disponible en: http://www.commsp.ee.ic.ac.uk/~mandic/ASP_Slides/ASP_Lecture_2_ARMA_Modelling.pdf [6] L. Jian EEL 6537–Spectral Estimation. Gainesv ille, Florida: Department of Electrical and Computer Engineering Univ ersity of Florida. [En Línea] Disponible en: http://www.ece.osu.edu/~randy/SAtex t/li-slides.pdf [7] C.W. Therrien, Discrete Random Signals and Statistical Signal Processing. Englewood Cliffs (New Jersey): Prentice Hall, 1992. Capítulos 8-9. [8] J.G. Proakis,. y D.G. Manolakis, Digital Signal Processing: Principles, Algorithms, and Applications. Third Edition. U.S.A.: Prentice Hall, 1995, Cap. 8.5, 11-12. [9] T.W. Parks y C.S. Burrus, Digital Filter Design, U.S.A.: John Wiley and Sons, 1987, pp.226. [10] A. Kaderli y A.S. Kay han. “Spectral Estimation of ARMA Processes Using ARMA Cepstrum Recursion.” Presentado en: IEEE Sign. Proc. Lett., v ol. 7, pp.256-261, 2000. [11] N.Sandgren y P. Stoica. On Moving Average Estimation. Department of Information Technology , Uppsala Univ ersity. Uppsala, Sweden. [En Línea] Disponible en: http://www.it.uu.se/research/publications/reports/2006-022/2006-022-nc.pdf [12] R.E. Crochiere y L.R. Rabiner. “ Interpolation and A Decimation of Digital Signals” . Presentado en: Proceedings of the IEEE, v ol. 69, no. 3, march 1981. pp. 300-331. [13] S.Benedetto y E.Biglieri. Principles of Digital Transmission with Wireless Applications. New York: Kluwer Academiic/Plenum Pubilshers. 1999. pp. 686-710. [14] M.F. Pop y N.C. Beaulieu, “Limitations of sum-of- sinusoids fading channel simulators" Presentado en: IEEE Trans. Comm., v ol. 49, no. 4, pp. 699-708, 2001. [15] G. Wetzker, U. Kaage,y F. Jondral, “A simulation method for Doppler spectra". Presentado en: 5th IEEE Int. Symposium on Spread Spectrum Techniques and Applications, pp. 517, 521, 1998.

Page 34: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

33

[16] M. Pop. “Limitations of Sum-of-Sinusoids Fading Channel Simulators.“ Thesis submitted to the Department of Electrical and Computer, Queen's Univ ersity . Ontario, Canada. Presentado en: IEEE Transactions on Communications, pp.699-708, 2001. [17] M. Patzold y F. Laue. “Statistical Properties of Jakes Fading Channel Simulator.” Department of Digital Communication Systems, Technical Univ ersity of Hamburg. Germany: Presentado en: Vehicular Technology Conference, 1998. VTC 98. 48th IEEE. Publication. v ol.2 pp. 712-718, 1998. [18] C.A. Londoño. Simulations Of Mobile Radio Rayleigh Fading Channels. Departamento de Ingeniería Eléctrica y Electrónica, Univ ersidad De Los Andes. Bogotá, Colombia: 2006. [19] P. Häoher. “A statistical discrete-time model for the WSSUS multipath channel" Presentado en IEEE Trans. Veh. Technol., vol. 41, no. 4, pp. 461-468, 1992. [20] M. Pätzold, U. Killat, Y. Shi y F. Laue. “A Discrete Simulation Model for the WSSUS Multipath Channel Deriv ed from a Specified Scattering Function”. Presentado en: European Transactions on Telecommuncations and Related Technologies. RWTH Aachen, Germany, 23. - 25. March 1994, pp. 347-351. [21] J.S. Sadowsky y V .Kafedziski,. “On the Correlation and Scattering Functions of the WSSUS Channel for Mobile Communications” . Presentado en: IEEE Transactions On Vehicular Technology, Vol. 47, No. 1, February 1998.

Page 35: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

34

APÉNDICES APÉNDICE 1: Conceptos importantes − Densidad Espectral de Potencia

La densidad espectral de potencia es una herramienta matemática que describe como la potencia de la señal o de una serie de tiempo se distribuy e con la frecuencia y es la transformada de Fourier de la autocorrelación de la señal que puede ser tratada como procesos aleatorios estacionarios. La densidad espectral de potencia solo ex iste si es una señal de un proceso estacionaros debido a que si no es estacionaria la autocorrelación tiene dos v ariables. Para realizar el cálculo de la densidad espectral de potencia (PSD) ex isten v arios métodos que se pueden clasificar en: métodos no paramétricos, métodos paramétricos y métodos de sub espacio. Los métodos no paramétricos son aquellos en los que se estima la PSD di rectamente de la señal como por ejemplo, el periodograma, el método de Welch y el método de multitaper. A diferencia de éstos, los métodos paramétricos son aquellos en los que la señal ala que se le quiere calcular la PSD se sume como una salida de un sistema lineal con entrada de ruido blanco y en ellos se estima primero los parámetros (coeficientes) del sistema lineal que genera la señal. Estos métodos pueden producir mejores resultados que los métodos clásicos no paramétricos cuando el largo de la información es relativ amente pequeño y un ejemplo de éstos son el método autoregressiv o de Yule-Walker y el método de Burg. Finalmente, los métodos de sub-espacio (métodos de alta resolución o de súper resolución) son los que generan los estimadores de componentes de frecuencia basándose en el eigen- análisis o eigen descomposición. Éstos sirven para espectros lineales (espectros de salida a señales sinusoidales) y son efectiv os en la detección de sinusoides con ruido como los son el método de clasificación múltiple de la señal (MUSIC) y el método de eigen-vector (EV). − Autocorrelación

La autocorrelación es una herramienta matemática utilizada frecuentemente en el procesamiento de señales y es importante para encontrar patrones repetitiv os dentro de una señal, para identificar la frecuencia fundamental de una señal que no contiene esa componente pero aparecen muchas frecuencias armónicas de ésta. La función de autocorrelación se define como la correlación cruzada de la señal consigo misma:

)]()([ ),( 2121 ττττ −−=−− uxtxEutRx Para definir la autocorrelación de la salida en relación con la entrada de un proceso se sigue el siguiente procedimiento:

])()()()([)]()([),( 222111 ∫∫∞

∞−

∞−−−== ττττττ duxhdtxhEuYtYEutRy

Si el v alor cuadrático medio es finito y estable se puede intercambiar:

)]()([)()(),( 212211 ττττττ −−= ∫∫∞

∞−

∞−uxtxEdhdhutRy

Page 36: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

35

),()()(),( 212211 ττττττ −−= ∫∫∞

∞−

∞−utRdhdhutR xy

)()(),(),( uhthutRutR xy ∗∗=

Además, si la entrada es estacionaria:

)()()(),()()()( 2121221 τττττττττττ −∗∗=−−= ∫ ∫∞

∞−

∞−hhRddutRdhhR xxy

Por esta razón la autocorrelación de la salida se define como la conv olución de la autocorrelación de entrada y la respuesta impulso en τ y –τ . La función de autocorrelación Rx(f) y la densidad espectral de potencia Sx(f) de un proceso estacionario forman un par transformado de Fourier que reciben el nombre de Wiener-Khintchin. La característica principal de éstas es que son equivalentes y nos dan la representación del proceso una en el dominio del tiempo y otra en el dominio de la frecuencia por lo que si se conoce la densidad espectral de potencia se puede calcular la autocorrelación y v icev ersa.

Densidad Espectral de Potencia:

∫∞

∞−

−= ττ τπ deRfS fjxx

2)()(

Función de Autocorrelación:

∫∞

∞−= dfefSR fj

xxτπτ 2)()(

− Transformada de Fourier: Por su parte, las transformadas son una forma de representar las señales en términos de una combinación de señales elementales conocidas como funciones básicas y permitir así sus análisis, interpretación, modificación y síntesis. La transformada de Fourier tiene como señales elementales las sinusoides (senos y cosenos) con diferentes periodos de repetición que dan lugar al concepto de frecuencia. El par de Transformadas de Fourier se define como:

Transformada de Fourier de x(t):

∫∞

∞−

−= dtetxfX ftj π2)()(

Transformada Inversa de Fourier de X(f):

∫∞

∞−= dfefXtx ftj π2)()(

Page 37: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

36

APÉNDICE 2: Otras técnicas para modelación de canales de radio móviles. − Técnica de Simulación SOS (sum-of-sinusoids) de Jakes y sus extensiones [14] – [19]: Debido a que la orientación y las propiedades de la materia de los obstáculos entre el transmisor y el receptor en un canal de radio móvil no se conocen, y que además pueden ser v ariables en el tiempo, la señal recibida se puede asumirse como una señal estocástica tal y como se asumió en la técnica con filtros ARMA. En el caso de los simuladores SOS (sum-of-sinusoids) como el de Jakes, el proceso Gaussiano estocástico se obtiene como la suma de estas sinusoides y simula los canales móv iles de radio únicamente para canales de banda estrecha debido a la limitación por el número de sinusoides. El simulador de Jakes es uno de los modelos más aceptados y usado durante casi tres décadas. Sin embargo, de acuerdo a los resultados obtenidos en diferentes inv estigaciones actuales, este modelo muestra que no produce propiedades importantes del canal de decaimiento real y ev idencias algunas debilidades estadísticas importantes. El simulador de Jakes se basa en el siguiente sistema:

Figura 23: Técnica de simulación de canal por suma de sinusoides de Prony

Teóricamente el componente del campo X(t) en un punto en radio móvil está dado por:

)sin()()cos()( twtjXtwXtX cscc −=

Por lo que el campo real recibido es de: ])(Re[)( tjwcetXtR =

Como consecuencia del limite central, Xc(t) y Xs(t) son procesos Gaussianos para v alores altos de N y se pueden representar como:

∑=

+=N

nnndnc twCEtX

10 )coscos()( φα Y ∑

=

+=N

nnndns twCEtX

10 )cossin()( φα

Page 38: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

37

Siendo E0 la potencia del campo eléctrico. Además, como Xc(t) y Xs(t) son Gaussianos tienen la densidad de probabilidad de la forma:

bx

X eb

xpc

2

2

21)(

−=

π

La env olv ente X está dada por: 22sc XXX +=

Siendo la función de probabilidad de IXI: ⎪⎩

⎪⎨⎧

<

≥=−

0,0

0,)(2

2

r

rebr

rpb

r

x

Donde P(r) corresponde a la función de densidad de Ray leigh por lo que IXI está distribuido de forma Ray leigh.

En resumen, si el número total de sinusoides es N, el proceso de Rayleigh está dado por:

∑=

+−=

N

n

tNn

j ne

Ntr

1

))2cos(2(2)(

θππ

Debido por el teorema del límite central mientras que crece el número de sinusoides la suma se aproxima a un proceso Gaussiano aleatorio con las propiedades del proceso de decaimiento de Rayleigh.

Para generar los decaimientos de Rayleigh, Jakes selecciona los Cn, αn, φn que son la ganancia del camino, la componente del ángulo de llegada y la fase inicial respectiv amente como:

NCn

1= on NnN

n,,2,1,

2K==

πα Y Nnn ,,2,1,0 K==φ

Reemplazando y despejando finalmente Xc(t) y Xs(t) quedan dadas como:

⎥⎦

⎤⎢⎣

⎡+= ∑

0

coscos2coscos22)(N

ndnnc twtw

NtX αβ Y ⎥

⎤⎢⎣

⎡+= ∑

0

cossin2cossin22)(N

ndnns twtw

NtX αβ

Sin embargo, muchos inv estigadores han estudiado el comportamiento del simulador de Jakes para canales de decaimiento y han propuestos mejoras para este incluy endo al estudiante Camilo Londoño en su tesis de maestría de la Univ ersidad de los Andes en Junio 2006 [4]. Los dos problemas más importantes del simulador de Jakes son la estacionalidad y la correlación entre las sinusoides calculadas. Estacionalidad en el sentido amplio (Wide Sense Stationarity ) significa que el canal es aprox imadamente estacionario para interv alos de tiempo suficientemente largos como para definir subclases de canales mientras que no correlacionados significa que las diferentes distribuciones (scatterers) no están correlacionadas entre ellas.

Page 39: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

38

Para solucionar el problema de estacionalidad en [2] y [4] se ha propuesto agregar a la técnica fases aleatorias en v ez de fases cero como las propuestas inicialmente por Jakes, para el de las correlaciones todav ía no se han propuesto mejorar significativ as y este empeora a medida que el número de sinusoides aumenta. Ventajas y Desventajas: Es una técnica fácil de implementar debido a la facilidad para obtener sinusoides en el área computacional y ha sido aceptada durante décadas para la simulación de canales de radio móv iles por lo que es ampliamente conocida e inv estigada por todos los conocedores del tema. Muchas correcciones y adelantos se le han realizado a la técnica (incluy endo los propuestos en [2] y [4]) y cada v ez esta técnica se encuentra más cercana a las propiedades estadísticas requeridas para caracterizar el sistema de canales de radio móviles adecuadamente. Las fallas de la técnica SOS de Jakes son ev identes en lo se refieren especialmente a la no estacionalidad del sistema obtenida debido a la fase cero y la no correlación entre las sinusoides obtenidas. El primer problema es aparentemente solucionable agregando una fase aleatoria que permita la estacionalidad momentánea del modelo para poder a firmar que el canal es estacionario en sentido amplio (WSS). Sin embargo, el segundo problema no es fácil de corregir especialmente para un alto número de sinusoides. Este método, es aplicable únicamente a banda estrecha debido a que el número alto de sinusoides alcanza para obtener un ancho de banda may or en canales de radio móv iles. Este método, aunque tiene la capacidad de generar v ariables con características cercanas al proceso de decaimiento de Ray leigh, requiere un número grande de sinusoides y a medida en que este número aumentas el problema de las correlaciones cruzadas entre ellas es cada vez más evidente. − Técnica de simulación por método Monte Carlo [20] y [21]: Fundamentalmente los canales de comunicación móv iles de radio son canales multicaminos variables en el tiempo. Debido a que el funcionamiento de los sistemas de comunicación digital por radio es afectado por la propagación multicamino en la forma de distribución, reflex ión y refracción, es necesario inv estigar su comportamiento estadístico que lleva a los modelos estocásticos del canal. Asumiendo que el canal es WSSUS, ex iste un método de simulación basado en Monte Carlo, con filtrado y muestreado, que se acerca bastante bien a los procesos reales y permite una simulación eficiente de los canales continuos [20]. El principio de este método es la generación de un solo proceso Gaussiano WSSUS. Asumiendo ergodicidad, cada realización del proceso aleatorio equiv alente describe el canal. Este modelo mezcla un modelo propuesto por Forney en el que realiza el efecto del filtro transmisor, el canal físico, el filtro receptor y el muestreado con un filtro de respuesta impulso finito (filtro FIR) con un modelo propuesto por Shulze basado en el método Monte Carlo.

Page 40: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

39

Teóricamente, la respuesta impulso del canal se puede escribir como:

∑=

+ −∞→

=N

nn

fj tnDneNN

tf1

2( )(1lim):( ) ττςτ πθ

En el limite cuando N tiende a infinito el factor 1/(N)^(1/2) conv erge a infinito por el teorema del limite central por lo que las componentes de cuadratura están distribuidas gaussianamente como en el simulador de Jakes por suma de sinusoides. Los v alores de 1/(N)^(1/2) se escogen de tal forma que la potencia promedio sea uno e independiente al número de ecos. En este método, a diferencia del de Jakes, no se tienen en cuenta las amplitudes debido a que la caracterización estadística solo esta determinada por la función de distribución. Se tiene en cuenta entonces el desplazamiento en frecuencia de la portadora y la ecuación principal del modelo es entonces:

∑=

++ −∞→

=N

nn

tffj nhoptnDneNN

tf1

))(22( )(1lim

):( ττςτ τππθ

Donde f(t) es el desplazamiento en frecuencia de la portadora. Ventajas y Desventajas: La simulación por este método es más rápida debido a que no se necesita implementar ex plícitamente un filtro digital y a que el método estadístico Monte Carlo es bastante rápido. Además, solo se necesitan las entradas uniformemente distribuidas durante inicio de la simulación en v ez de las v ariable gaussianas. El diseño del filtro FIR es fácil y reduce la computación debido a que no incluy e cascada, decimación, interpolación y transformación en frecuencia. Además, solo se necesita un número pequeño de realizaciones N para aprox imarse a las características del canal de radio móv il. − Ventajas y Desventajas de la técnica de simulación con filtros ARMA submuestreado e

interpolación multietapas. La v entaja más importante de esta técnica de simulación es que se pueden simular tanto canales de banda estrecha, con un simple filtro ARMA, y de banda ancha, simulando en cascada v arios filtros ARMA para diseñar un canal real. Ex isten otra técnicas ex itosas para canales de banda estrecha como el desarrollo de los simuladores de suma de sinusoides por lo que esta técnica de filtros ARMA está diseñada especialmente para acercarse satisfactoriamente a los pequeños anchos de banda Doppler encontrados en las comunicaciones CDMA y OFDM de banda ancha debido a que en éstos la frecuencia de muestreo es considerablemente mayor que el desplazamiento Doppler máx imo y por esto, este desplazamiento es tan difícil de visualizar. Otra v entaja es que es una técnica es mucho más flex ible porque se puede cambiar el oorden del filtro de acuerdo el resultado que se desee obtener y se puede actualizar en cada realización mientras que las otras técnicas obtienen los parámetros y éstos permanecen fijos durante las realizaciones.

Page 41: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

40

La may or desv entaja de esta técnica es que no muestra todas de las propiedades estadísticas de los canales de radio móv iles claramente como la autocorrelación o la correlación cruzada entre cada uno de los procesos (taps). Además, solo se puede producir espectros de potencia racionales. Tanto en la técnica de suma de sinusoides como en la de modelos ARMA se puede producir la salida ideal requerida si no ex istiera ningún límite de complejidad computacional. Sin embargo, en la realidad, esta complejidad computacional no es infinita por lo que a v eces la suma de sinusoides no es suficiente para modelar el canal real.

Page 42: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

41

APENDICE 3: Códigos existentes en Matlab utilizados − Función ‘prony’ de Matlab: function [b,a] = prony(h, nb ,na) % PRONY Prony's method for time-domain IIR filter design. % [B,A] = PRONY(H, NB, NA) finds a filter with numerator order NB, denominator order NA, and % having the impulse response in vector H. The IIR filter coefficients are returned in % length NB+1 and NA+1 row vectors B and A, ordered in descending powers of Z. H may be % real or complex. If the largest order specified is greater than the length of H, H is % padded with zeros. See also STMCB, LPC, BUTTER, CHEBY1, CHEBY2, ELLIP, INVFREQZ. % Author(s): L. Shure, 5-17-88 L. Shure, 12-17-90, revised Copyright 1988-2002 % The %MathWorks, Inc. $Revision: 1.7 $ $Date: 2002/04/15 01:13:19 $ References: [1] T.W. % Parks and %C.S. Burrus, Digital Filter Design, John Wiley and Sons, 1987, p226. K = length(h) - 1; M = nb; N = na; if K <= max(M,N) % zero-pad input if necessary K = max(M,N)+1; h(K+1) = 0; end c = h(1); if c==0 % avoid divide by zero c=1; end H = toeplitz(h/c,[1 zeros(1,K)]); % K+1 by N+1 if (K > N) H(:,(N+2):(K+1)) = []; End % Partition H matrix H1 = H(1:(M+1),:); % M+1 by N+1 h1 = H((M+2):(K+1),1); % K-M by 1 H2 = H((M+2):(K+1),2:(N+1)); % K-M by N a = [1; -H2\h1].'; b = c*a*H1.';

− Función ‘decimate’ de Matlab: function odata = decimate(idata,r,nfilt,option) %DECIMATE Resample data at a lower rate after lowpass filtering. % Y = DECIMATE(X,R) resamples the sequence in vector X at 1/R times the % original sample rate. The resulting resampled vector Y is R times % shorter, i.e., LENGTH(Y) = CEIL(LENGTH(X)/R). By default, DECIMATE % filters the data with an 8th order Chebyshev Type I lowpass filter with % cutoff frequency .8*(Fs/2)/R, before resampling. error(nargchk(2,4,nargin)); error(nargoutchk(0,1,nargout)); % Validate required inputs msg = validateinput(idata,r); error(msg); if fix(r) == 1 odata = idata; return end fopt = 1; if nargin == 2 nfilt = 8; else if ischar(nfilt) if nfilt(1) == 'f' || nfilt(1) == 'F' fopt = 0; elseif nfilt(1) == 'i' || nfilt(1) == 'I' fopt = 1; else error('Filter options are FIR and IIR.') end if nargin == 4 nfilt = option; else

Page 43: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

42

nfilt = 8*fopt + 30*(1-fopt); end else if nargin == 4 if option(1) == 'f' || option(1) == 'F' fopt = 0; elseif option(1) == 'i' || option(1) == 'I' fopt = 1; else error('Filter options are FIR and IIR.') end end end end if fopt == 1 && nfilt > 13 warning(generatemsgid('highorderIIRs'),... 'IIR filters above order 13 may be unreliable.'); end nd = length(idata); m = size(idata,1); nout = ceil(nd/r); if fopt == 0 % FIR filter b = fir1(nfilt,1/r); % prepend sequence with mirror image of first points so that transients % can be eliminated. then do same thing at right end of data sequence. nfilt = nfilt+1; itemp = 2*idata(1) - idata((nfilt+1):-1:2); [itemp,zi]=filter(b,1,itemp); %#ok [odata,zf] = filter(b,1,idata,zi); if m == 1 % row data itemp = zeros(1,2*nfilt); else % column data itemp = zeros(2*nfilt,1); end itemp(:) = 2*idata(nd)-idata((nd-1):-1:(nd-2*nfilt)); itemp = filter(b,1,itemp,zf); % finally, select only every r'th point from the interior of the lowpass % filtered sequence gd = grpdelay(b,1,8); list = round(gd(1)+1.25):r:nd; odata = odata(list); lod = length(odata); nlen = nout - lod; nbeg = r - (nd - list(length(list))); if m == 1 % row data odata = [odata itemp(nbeg:r:nbeg+nlen*r-1)]; else odata = [odata; itemp(nbeg:r:nbeg+nlen*r-1)]; end else % IIR filter rip = .05; % passband ripple in dB [b,a] = cheby1(nfilt, rip, .8/r); while (abs(filtmag_db(b,a,.8/r)+rip)>1e-6) nfilt = nfilt - 1; if nfilt == 0 break end [b,a] = cheby1(nfilt, rip, .8/r); end if nfilt == 0 error('Bad Chebyshev design, likely R is too big; try mult. decimation (R=R1*R2).') end % be sure to filter in both directions to make sure the filtered data has zero phase % make a data vector properly pre- and ap- pended to filter forwards and back % so end effects can be obliterated. odata = filtfilt(b,a,idata); nbeg = r - (r*nout - nd); odata = odata(nbeg:r:nd); end

Page 44: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

43

function H = filtmag_db(b,a,f) %FILTMAG_DB Find filter's magnitude response in decibels at given frequency. nb = length(b); na = length(a); top = exp(-j*(0:nb-1)*pi*f)*b(:); bot = exp(-j*(0:na-1)*pi*f)*a(:); H = 20*log10(abs(top/bot)); function msg = validateinput(x,r) % Validate 1st two input args: signal and decimation factor msg = ''; if isempty(x) || issparse(x) || ~isa(x,'double'), msg.identifier = generatemsgid('invalidInput'); msg.message = 'The input signal X must be a double-precision vector.'; return; end if (abs(r-fix(r)) > eps) || (r <= 0) msg.identifier = generatemsgid('invalidR'); msg.message = 'Resampling rate R must be a positive integer.'; return; end

− Función ‘aryule’ de Matlab: function [a,e,k] = aryule( x, p) %ARYULE AR parameter estimation via Yule-Walker method. % A = ARYULE(X,ORDER) returns the polynomial A corresponding to the AR parametric signal % model estimate of vector X using the Yule-Walker (autocorrelation) method. ORDER is the % model order of the AR system. This method solves the Yule-Walker equations by means of % the Levinson-Durbin recursion. [A,E] = ARYULE(...) returns the final prediction error E % (the variance estimate of the white noise input to the AR model). [A,E,K] = ARYULE(...) % returns the vector K of reflection coefficients. See also PYULEAR, ARMCOV, ARBURG, ARCOV, % LPC, PRONY. Ref: S. Orfanidis, OPTIMUM SIGNAL PROCESSING, 2nd Ed. Macmillan, 1988, Chapter % 5M. Hayes, STATISTICAL DIGITAL SIGNAL PROCESSING AND MODELING, John Wiley & Sons, 1996, % Chapter 8 Author(s): R. Losada Copyright 1988-2004 The MathWorks, Inc. $Revision: % 1.12.4.2 $ $Date: 2004/12/26 22:15:21 $ error(nargchk(2,2,nargin)) [mx,nx] = size(x); if isempty(x) || length(x) < p || min(mx,nx) > 1, error('X must be a vector with length greater or equal to the model order.'); elseif isempty(p) || ~(p == round(p)) error('Model order must be an integer.') end if issparse(x) error('Input signal cannot be sparse.') end R = xcorr(x,p,'biased'); [a,e,k] = levinson(R(p+1:end),p);

− Función ‘interp’ de Matlab: function [odata,b] = interp(idata,r,l,cutoff) if nargin < 3 l = 4; end if nargin < 4 cutoff = .5; end if l < 1 || r < 1 || cutoff <= 0 || cutoff > 1 error('Input parameters are out of range.') end if abs(r-fix(r)) > eps error('Resampling rate R must be an integer.') end

Page 45: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

44

if 2*l+1 > length(idata) s = int2str(2*l+1); error(['Length of data sequence must be at least ',s, 10, 'You either need more data or a shorter filter (L).']); end s1 = toeplitz(0:l-1) + eps; s2 = hankel(2*l-1:-1:l); s2p = hankel([1:l-1 0]); s2 = s2 + eps + s2p(l:-1:1,l:-1:1); s1 = sin(cutoff*pi*s1)./(cutoff*pi*s1); s2 = sin(cutoff*pi*s2)./(cutoff*pi*s2); ap = s1 + s2; am = s1 - s2; ap = inv(ap); am = inv(am); d = zeros(2*l,l); d(1:2:2*l-1,:) = ap + am; d(2:2:2*l,:) = ap - am; x = (0:r-1)/r; y = zeros(2*l,1); y(1:2:2*l-1) = (l:-1:1); y(2:2:2*l) = (l-1:-1:0); X = ones(2*l,1); X(1:2:2*l-1) = -ones(l,1); XX = eps + y*ones(1,r) + X*x; y = X + y + eps; h = .5*d'*(sin(pi*cutoff*XX)./(cutoff*pi*XX)); b = zeros(2*l*r+1,1); b(1:l*r) = h'; b(l*r+1) = .5*d(:,l)'*(sin(pi*cutoff*y)./(pi*cutoff*y)); b(l*r+2:2*l*r+1) = b(l*r:-1:1); m,n] = size(idata); nn = max([m n]); if nn == m odata = zeros(r*nn,1); else odata = zeros(1,r*nn); end odata(1:r:nn*r) = idata; od = zeros(2*l*r,1); od(1:r:(2*l*r)) = 2*idata(1)-idata((2*l+1):-1:2); [od,zi] = filter(b,1,od); %#ok [odata,zf] = filter(b,1,odata,zi); odata(1:(nn-l)*r) = odata(l*r+1:nn*r); if nn == m od = zeros(2*l*r,1); else od = zeros(1,2*l*r); end od(1:r:(2*l)*r) = 2*idata(nn)-(idata((nn-1):-1:(nn-2*l))); od = filter(b,1,od,zf); odata(nn*r-l*r+1:nn*r) = od(1:l*r);

− Función ‘Durbin’ diseñada en Matlab: function b = Durbin(x,p,q) x = x(:); if p>=length(x), error('Orden del modelo muy largo'), end [a,epsilon] = acm(x,p); %ACM Encuentra el modelo de polos usando el métodos de autocorrelación [b,epsilon] = acm(length(x)*a/sqrt(epsilon),q); b = b*length(x)/sqrt(epsilon); end − Función ‘lblack de Matlab: % Function: lblack.m; Computation of the Blackman Tuckey Power density spectrum % Needed (s) m-File(s): lrader.m % % function Sxx = lblack(x,M,windowtype[,NFFT]);

Page 46: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

45

% % Estimation of the spectral power density after Blackman Tukey (1958) % x Data sequence (Line or column vector ) % M Number of used autocorrelation values % (power-of-two number should be ): rxx(-(M-1)), ..., rxx(M-1) % windowtype Window Function (String, z.B. 'hamming'), % [NFFT] FFT length (optional) function Sxx = lblack(x,M,win,NFFT) rxx = lrader(M,x); % rxx = [rxx(0); ...; rxx(M-1)] rxx = [flipud(conj(rxx(2:M))); rxx]; % Konj. straight addition % => Laenge 2M-1 % eval(['window= ', windowtype,(2*M-1)]); % Window function of the length %magic_str = ['window= ', win, '2*M-1']; %eval(magic_str); if nargin<4, NFFT=nextpow2(length(x)); end; % 2M-1 compute Sxx = abs(fft(rxx.*(win),NFFT));

− Función ‘lrader’ de Matlab: % Function: lrader.m % not unbiased AKF estimation in the wheel he procedure. % the parameter M % a power-of-two number must be and corresponds to that % (Maximalwert+1) for lambda. The vector x with the signal values % may any dimension accept and can as splitting or % line vector be handed over. The expenditure takes place as splitting % vector of the dimension M as well as only for positive lambda values: % rxx = [rxx (0),…, rxx (M-1)]. % for negative lambda is one konj. to make straight addition. function rxx = lrader(M,x) x = x(:); % Column vectors produce N = length(x); u = zeros(2*M,1); u(1:M) = x(1:M); U = fft(u); K = floor(N/M); v = zeros(2*M,1); Sxx = zeros(2*M,1); pm = (-1). (̂0:(2*M-1)).'; for ii = 1:(K-1) % Iteration and accumulation v(1:M) = x((ii*M+1):((ii+1)*M)); V = fft(v); Sxx = Sxx + (conj(U) .*(U + (pm .*V))); U = V; end; if K < N/M b = N - K*M; v = zeros(2*M,1); v(1:b) = x((K*M+1):N); V = fft(v); Sxx = Sxx + (conj(U) .*(U + (pm .*V))); end; Sxx = Sxx + abs(V. 2̂); rxx = ifft(Sxx)/N; rxx = rxx(1:M);

Page 47: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

46

APENDICE 4: Códigos diseñados en Matlab − Función ‘jakes_spectrum’ diseñada en Matlab: function s=jakes_spectrum(v,vmax); s=vmax./(sqrt((vmax.̂ 2)-(v. 2̂))); end >> x = logspace(-6,0); >> loglog(x,jakes_spectrum(x,10 -̂4)); − Función ‘mi_prony _1’ diseñada en Matlab: function [b,a]=mi_prony_1(x); %Ruido Gaussiano Blanco Normalizado: randn('state',0); AWGN = randn(5000,1); % Normalized white Gaussian noise %Factor de submuestreo de 100: subsampling_factor=100 y = decimate(AWGN,subsampling_factor); %Orden del filtro autoregresivo AR: p=10 %Orden del filtro de promedio en movimiento MA: q=10 %Cálculo de los coeficientes B y A para los filtros AR y MA: [b,a]=prony(y,p,q); %Grafica del Ruido Gaussiano Blanco : plot(AWGN); ylabel('Amplitud'); xlabel('Tiempo'); title('Ruido Gaussiano Blanco');

− Función ‘mi_prony _2’ diseñada en Matlab: function [b,a]=mi_prony_2(x); %Ruido Gaussiano Blanco Normalizado: AWGN=x; %Factor de submuestreo de 100: subsampling_factor=1000 y = decimate(AWGN,subsampling_factor); %Orden del filtro autoregresivo AR: p=10 %Orden del filtro de promedio en movimiento MA: q=10 %Cálculo de los coeficientes B y A para los filtros AR y MA: [b,a]=prony(y,p,q); %Graficas del Ruido Gaussiano Blanco : subplot(2,1,1); plot(AWGN); ylabel('Amplitud'); xlabel('Tiempo'); title('Ruido Gaussiano Blanco antes del filtro ARMA con coeficientes calculados por metodo Prony'); subplot(2,1,2);

Page 48: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

47

salida=filtfilt(b,a,AWGN); plot(salida); ylabel('Amplitud'); xlabel('Tiempo'); title('Ruido Gaussiano Blanco despues del filtro ARMA con coeficientes calculados por metodo Prony'); %Para hallar la respuesta impulso: plot(x, impz(b,a,5000)) u=[1 zeros(1,127)]; impl=filter(b,a,u); plot(impl); title('Respuesta impulso del filtro ARMA coeficientes calculados por el metodo Prony') xlabel('Tiempo(s)'); ylabel('Amplitud');

− Función ‘mis_AR_1’ diseñada en Matlab:

function a=mis_AR_1(x,p) %Ruido Gaussiano Blanco Normalizado: AWGN=x; %Factor de submuestreo de 1000: subsampling_factor=100 y = decimate(AWGN,subsampling_factor); %Cálculo de los coeficientes B y A para los filtros AR y MA: a = aryule(y,p);

− Función ‘mis_ARMA_Durbin’ diseñada en Matlab: function [a,b,c,ARMA]=mis_ARMA_Durbin randn('state',0); x = randn(50000,1); %Ruido Gaussiano Blanco Normalizado: subsampling_factor=1000; %Factor de submuestreo de 1000: y = decimate(x,subsampling_factor); p=10; %Orden del filtro autoregresivo AR: q=100; %Orden del filtro de promedio en movimiento MA: n=200; [a,e,k]=mi_aryule(y,p); %Cálculo de los coeficientes A: b = durbin(y,p,q); fvtool(b,a); ARMA=filtfilt(b,a,x);

− Función ‘mi_ary ule’ diseñada en Matlab: function [a,e,k]=mi_aryule(x,p) %ARYULE AR parameter estimation via Yule-Walker method. % A = ARYULE(X,ORDER) returns the polynomial A corresponding to the AR % parametric signal model estimate of vector X using the Yule-Walker % (autocorrelation) method. ORDER is the model order of the AR system. % This method solves the Yule-Walker equations by means of the Levinson- % Durbin recursion. error(nargchk(2,2,nargin)) [mx,nx] = size(x); if isempty(x) || length(x) < p || min(mx,nx) > 1, error('X must be a vector with length greater or equal to the model order.');

Page 49: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

48

elseif isempty(p) || ~(p == round(p)) error('Model order must be an integer.') end if issparse(x) error('Input signal cannot be sparse.') end R = xcorr(x,p,'biased'); [a,e,k] = levinson(R(p+1:end),200);

− Función ‘cálculob’ diseñada en Matlab: function b=cálculob c=ones(1,1000); %Aqui pone los c a=ones(1,1000); %Aqui pone los a q=[100 1000]; b=zeros(1000,1); %Aqui pone los b for j=1:2 for k=2:q(j) suma=0; %Suma a for m=1:k-1 suma=suma+m*b(m+1)*a(k-m+1); end sumb=0; %Suma b for m=1:k sumb=sumb+m*a(m+1)*b(k-m+1); end sumc=0; %Suma c for i=1:k-1 sumd=0; for m=0:k-i sumd=sumd+a(m+1)*b(k-i-m+1); end sumc=sumc+i*c(i+1)*sumd; end b(:,k)=((1/k)*(k*c(k+1)*b(1)-suma+sumb+sumc)); %b(1)=b0=1 end end

− Función ‘mis_ARMA_Prony_Ex tendido’ diseñada en Matlab: function [a,b,ARMA]=mis_ARMA_Prony_Extendido randn('state',0); x = randn(50000,1); %Ruido Gaussiano Blanco Normalizado. p=10; %Orden del filtro autoregresivo AR. q=100; %Orden del filtro de promedio en movimiento MA. n=200; [a,e,k]=mi_aryule(x,p); %Cálculo de los coeficientes AR. Pxx = pmcov(x,p); %PSD con el metodo de covarianza. %Estimacion con black Tukey M=100; %Número de valores de la autocorrelacion win=triang(2*M-1); %Ventana Barlett

Page 50: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

49

NFFT=50; %NFFT: Largo de FFT Sxx = lblack(Pxx,M,win,NFFT); %Cálculo del espectro Blackman-Tukey con ventana de Barlett c= cceps(Sxx,100); %Cálculo del Cepstrum del estimador c=transpose(c); %Transpuesta de c. a=[a zeros(1,1000)]; c=[c zeros(1,1000)]; b=cálculob(a,c); %Cálculo de coeficientes MA con a y c. fvtool(b,a); %Herramienta fvtool. ARMA=filtfilt(b,a,x); %Realizacion del filtro.

− Función ‘mis_ARMA_min’ diseñada en Matlab function [a,b, ARMA, primera, segunda, tercera]=mis_AR_MA_min randn('state',0); x = randn(500000,1); %Ruido Gaussiano Blanco Normalizado. subsampling_factor=1000; %Factor de submuestreo de 1000. y = decimate(x,subsampling_factor); p=10; %Orden del filtro autoregresivo AR. q=100; %Orden del filtro de promedio en movimiento MA. n=200; [a,e,k]=mi_aryule(y,p); %Cálculo de los coeficientes AR. Pxx = pmcov(y,p); %PSD con el metodo de covarianza. %Estimacion con black Tukey M=100; %Número de valores de la autocorrelacion win=triang(2*M-1); %Ventana Barlett NFFT=50; %NFFT: Largo de FFT Sxx = lblack(Pxx,M,win,NFFT); %Cálculo del espectro Blackman-Tukey con ventana de Barlett c= cceps(Sxx,100); %Cálculo del Cepstrum del estimador c=transpose(c); %Transpuesta de c. a=[a zeros(1,90)]; c=[c zeros(1,90)]; b=cálculob(a,c); %Cálculo de coeficientes MA con a y c. fvtool(b,a); %Herramienta fvtool. ARMA=filtfilt(b,a,y); %Realizacion del filtro. primera=interp(ARMA,5); %Etapa de interpolacion 1. segunda=interp(primera,40); %Etapa de interpolacion 2. tercera=interp(segunda,5); %Etapa de interpolacion 3.

− Función final ‘ARMAminSOLO’ diseñada en Matlab: function [a,b, ARMA]=ARMAminSOLO %randn('state', sum(100*clock)); randn('state', 0); x = randn(500,1); %Ruido Gaussiano Blanco Normalizado. p=10; %Orden del filtro autoregresivo AR. q=100; %Orden del filtro de promedio en movimiento MA. n=200; [a,e,k]=mi_aryule(x,p); %Cálculo de los coeficientes AR.

Page 51: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

50

Pxx = pmcov(x,p); %PSD con el metodo de covarianza. %Estimacion con black Tukey M=100; %Número de valores de la autocorrelacion win=triang(2*M-1); %Ventana Barlett NFFT=50; %NFFT: Largo de FFT Sxx = lblack(Pxx,M,win,NFFT); %Cálculo del espectro Blackman-Tukey con ventana de Barlett c= cceps(Sxx,100); %Cálculo del Cepstrum del estimador c=transpose(c); %Transpuesta de c. a=[a zeros(1,90)]; c=[c zeros(1,90)]; b=sumatoriab(a,c); %Cálculo de coeficientes MA con a y c. %fvtool(b,a); %Herramienta fvtool. ARMA=filtfilt(b,a,x); %Realizacion del filtro. f=logspace(-6,0); loglog(f,jakes_spectrum(f,10 -̂4),'r'); xlabel('Desplazamiento Doppler Relativo (v)') ylabel('Espectro Doppler So(v)') title('Simulacion del Canal') hold all n=fft(ARMA)*jakes_spectrum(f,10̂ -4); loglog(f,n(20,:),'b'); legend('Espectro Doppler de Jakes (Especificado)','Tecnica de Simulacion (sin submuestreo ni interpolacion)');

− Función final ‘ARMAminSUBeINTERP’ diseñada en Matlab: function [a,b, ARMA, primera, segunda, tercera]=ARMAminSUBeINTERP %randn('state', sum(100*clock)); randn('state', 0); x = randn(5000000,1); %Ruido Gaussiano Blanco Normalizado. subsampling_factor=1000; %Factor de submuestreo de 1000. y = decimate(x,subsampling_factor); p=20; %Orden del filtro autoregresivo AR. q=100; %Orden del filtro de promedio en movimiento MA. n=200; [a,e,k]=mi_aryule(y,p); %Cálculo de los coeficientes AR. Pxx = pmcov(y,p); %PSD con el metodo de covarianza. %Estimacion con black Tukey M=100; %Número de valores de la autocorrelacion win=triang(2*M-1); %Ventana Barlett NFFT=50; %NFFT: Largo de FFT Sxx = lblack(Pxx,M,win,NFFT); %Cálculo del espectro Blackman-Tukey con ventana de Barlett c= cceps(Sxx,100); %Cálculo del Cepstrum del estimador

Page 52: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

51

c=transpose(c); %Transpuesta de c. a=[a zeros(1,90)]; c=[c zeros(1,90)]; b=sumatoriab(a,c); %Cálculo de coeficientes MA con a y c. %fvtool(b,a); %Herramienta fvtool. ARMA=filtfilt(b,a,y); %Realizacion del filtro. primera=interp(ARMA,5); %Etapa de interpolacion 1. segunda=interp(primera,40); %Etapa de interpolacion 2. tercera=interp(segunda,5); %Etapa de interpolacion 3. u=logspace(-6,0); loglog(u, jakes_spectrum(u,10̂ -4),'r'); xlabel('Desplazamiento Doppler Relativo (v)') ylabel('Espectro Doppler So(v)') title('Simulacion del Canal') hold all n=fft(ARMA)*jakes_spectrum(u,10̂ -4); loglog(u,n(324,:),'b'); hold all s=fft(primera)*jakes_spectrum(u,10 -̂4); loglog(u,s(7300,:),'g'); legend('Espectro Doppler de Jakes (Especificado)', 'Tecnica de Simulacion (sin submuestreo ni interpolacion)','Tecnica de Simulacion (con submuestreo e interpolacion)'); − Función final ‘ARMA_order’ diseñada en Matlab: function [a,b, ARMA]=ARMA_order(p,q) %randn('state', sum(100*clock)); randn('state', 0); x = randn(500,1); %Ruido Gaussiano Blanco Normalizado. % p=10; %Orden del filtro autoregresivo AR. % q=100; %Orden del filtro de promedio en movimiento MA. n=200; [a,e,k]=mi_aryule(x,p); %Cálculo de los coeficientes AR. Pxx = pmcov(x,p); %PSD con el metodo de covarianza. %Estimacion con black Tukey M=100; %Número de valores de la autocorrelacion win=triang(2*M-1); %Ventana Barlett NFFT=50; %NFFT: Largo de FFT Sxx = lblack(Pxx,M,win,NFFT); %Cálculo del espectro Blackman-Tukey con ventana de Barlett c= cceps(Sxx,100); %Cálculo del Cepstrum del estimador c=transpose(c); %Transpuesta de c. a=[a zeros(1,90)];

Page 53: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

52

c=[c zeros(1,90)]; b=sumatoriab(a,c); %Cálculo de coeficientes MA con a y c. %fvtool(b,a); %Herramienta fvtool. ARMA=filtfilt(b,a,x); %Realizacion del filtro. f=logspace(-6,0); loglog(f,jakes_spectrum(f,10 -̂4),'r'); xlabel('Desplazamiento Doppler Relativo (v)') ylabel('Espectro Doppler So(v)') title('Simulacion del Canal (sin submuestreo ni interpolacion) con mayor orden de Filtro ARMA') hold all n=fft(ARMA)*jakes_spectrum(f,10̂ -4); loglog(f,n(20,:),'b'); legend('Espectro Doppler de Jakes (Especificado)','Tecnica de Simulacion (sin submuestreo ni interpolacion) con orden de P=50 y Q=1000');

− Función final ‘ARMAmaxSUBeINTERP’ diseñada en Matlab: function [a,b, ARMA, primera, segunda, tercera]=ARMAmaxSUBeINTERP %randn('state', sum(100*clock)); randn('state', 0); x = randn(5000000,1); %Ruido Gaussiano Blanco Normalizado: subsampling_factor=1000; %Factor de submuestreo de 1000: y = decimate(x,subsampling_factor); p=50; %Orden del filtro autoregresivo AR: q=1000; %Orden del filtro de promedio en movimiento MA: n=500; [a,e,k]=mi_aryule(y,p); %Cálculo de los coeficientes A: Pxx = pmcov(y,p); %Power Spectral Density (PSD) estimate %via the Modified Covariance method. %Estimacion con black Tukey %x: Series of data M=100; %M: Number of used values of autocorrelation %(should be a power of two): rxx(-(M-1)), ..., rxx(M-1) win=triang(2*M-1); %Barlett Window NFFT=50; %NFFT: FFT-length (optional) Sxx = lblack(Pxx,M,win,NFFT); %Cálculo del espectro Blackman-Tukey con ventana de Barlett c= cceps(Sxx,100); %Cálculo del Cepstrum del estimador c=transpose(c); a=[a zeros(1,950)]; c=[c zeros(1,950)]; b=sumatoriab(a,c); %Cálculo de coeficientes MA con a y c. %fvtool(b,a); ARMA=filtfilt(b,a,y); primera=interp(ARMA,5); %Etapa de interpolacion 1. segunda=interp(primera,20); %Etapa de interpolacion 2.

Page 54: SIMULACIÓN EN MATLAB DE CANALES DE RADIO MÓVILES DE …

53

tercera=interp(segunda,5); %Etapa de interpolacion 3. − Función ‘Canal_Real’ diseñada en Matlab: function [todo]=Canal_Real [a,b, ARMA, primera, segunda, tercera]=ARMAmaxSUBeINTERP; [a1,b1, ARMA1, primera1, segunda1, tercera1]=ARMAmaxSUBeINTERP; [a2,b2, ARMA2, primera2, segunda2, tercera2]=ARMAmaxSUBeINTERP; [a3,b3, ARMA3, primera3, segunda3, tercera3]=ARMAmaxSUBeINTERP; [a4,b4, ARMA4, primera4, segunda4, tercera4]=ARMAmaxSUBeINTERP; [a5,b5, ARMA5, primera5, segunda5, tercera5]=ARMAmaxSUBeINTERP; todo=primera+primera2+primera3+primera4+primera5+primera2+primera3+primera4+primera5+primera2+primera3+primera4+primera5; x=linspace(-0.0015,0.0015); n=fft(todo)*jakes_spectrum(x,0.0006); mesh(x,abs(todo), abs(n)); axis([-0.0015 0.0015 0 5 0 20000]) xlabel('Desplazamiento Doppler Relativo (v)'); ylabel('Delay(m)'); zlabel('Sm(v)'); title('"Scattering Function" del Canal Real');