ayuda matlab experiencia banda estrecha

11
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA LABORATORIO DE SISTEMAS DE COMUNICACIONES Laboratorio de Sistemas de Comunicaciones Experiencia Banda Estrecha Luis Vinnett Peralta 13/08/2010

Upload: manuel-camargo

Post on 02-Jan-2016

72 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ayuda Matlab Experiencia Banda Estrecha

UNIVERSIDAD TECNICA FEDERICO SANTA MARIADEPARTAMENTO DE ELECTRONICALABORATORIO DE SISTEMAS DE COMUNICACIONES

Laboratorio de Sistemas de Comunicaciones

Experiencia Banda Estrecha

Luis Vinnett Peralta13/08/2010

Page 2: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

Tabla de contenido

Nota respecto a la Ejecución de esta Plantilla.....................................................................3Modelación..........................................................................................................................4

Funciones de densidad de probabilidad Rice y Rayleigh................................................4Simulaciones........................................................................................................................6

Distribución Rayleigh......................................................................................................6Distribución Rice.............................................................................................................6

Ajuste de Modelos...............................................................................................................8Distribución Rayleigh......................................................................................................8Distribución Rice.............................................................................................................8

Autocorrelación.................................................................................................................10

Page 3: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

Nota respecto a la Ejecución de esta Plantilla

Al abrir esta plantilla se debe abrir Matlab, en caso contrario, significa que está mal direccionada la plantilla base (M-BOOK.dot). Para solucionar esto se debe ir a Herramientas, luego a plantillas y finalmente modificar la ruta para acceder a M-BOOK.dot. Típicamente el directorio base es matlab_dir\\notebook\pc, donde matlab_dir corresponde al directorio en el cual se encuentra instalado Matlab. Por ejemplo:

C:\Archivos de programa\MATLAB\R2010\notebook\pc\M-BOOK.dot

Tras modificar esta ruta, se debe reiniciar Word para que se almacenen los cambios. Es probable que aparezca una ventana de error al realizarse la comunicación con Matlab. Seleccionar Finalizar.

Luego, se puede ejecutar esta plantilla aplicando Ctrl+Enter dentro de cada sentencia (entre corchetes). Alt+p permite borrar los resultados y Alt+r permite ejecutar todo el documento.

Los comandos acá presentados deben ser ejecutados en orden de manera que no se produzcan errores.

Page 4: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

Modelación

Las últimas versiones de las Toolboxes de Estadística y Comunicaciones de Matlab incluyen una serie de funciones que facilitan la modelación, simulación y análisis de datos. A continuación se detallará el uso de algunas de estas funciones las cuales resulta de utilidad para el análisis y procesamiento de los datos.

Funciones de densidad de probabilidad Rice y Rayleigh

La función de densidad de probabilidad de la distribución Rayleigh puede obtenerse mediante el comando raylpdf tal como se muestra a continuación:

clear allclose all

s = 1;r = 0:.1:5;fR = raylpdf(r, s);

plot(r, fR, 'r', 'LineWidth', 2)set(gca, 'FontName', 'times', 'FontSize', 14)xlabel('r, [V]')ylabel('Función de densidad de probabilidad')xlim([0 5])

Por otra parte, la función de distribución acumulativa Rayleigh se puede obtener mediante el comando raylcdf. Por ejemplo:

FR = raylcdf(r, s);plot(r, FR, 'r', 'LineWidth', 2)set(gca, 'FontName', 'times', 'FontSize', 14)xlabel('r, [V]')ylabel('Función de densidad de probabilidad')xlim([0 5])

Por otra parte, la función de densidad de probabilidad Rice se puede obtener mediante la función pdf. Nótese que en las siguientes líneas de código se utilizaron 2 métodos para obtener la PDF.

A = 1;s = 0.5;

Ome = 2*s^2 + A^2;K = A^2/(2*s^2);

r =0:.1:5;fR =2*(K+1)*r/Ome.*exp(-K-(K+1)/Ome*r.^2).*besseli(0, 2*r*sqrt(K*(K+1)/Ome));

Page 5: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

plot(r, fR, 'b.', 'LineWidth', 2), hold on

fR = pdf('rician', r, A, s);

plot(r, fR, 'r', 'LineWidth', 2)xlim([0 5])hold off

Para la función de distribución acumulativa se puede emplear el comando cdf:

FR = cdf('rician', r, A, s);

plot(r, FR, 'r', 'LineWidth', 2)xlabel('r, [V]')ylabel('Función de densidad de probabilidad')xlim([0 5])

Page 6: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

Simulaciones

Actualmente Matlab incluye la generación automática de números con distribución tipo Rayleigh o Rice mediante los comandos raylrnd y random. Por ejemplo1:

Distribución Rayleigh

Las siguientes líneas de código permiten obtener datos con distribución Rayleigh. Se grafica la ganancia de potencia en dB:

s = 1;r = raylrnd(s, 1000, 1);r = r/sqrt(mean(r.^2));

PdBm = 20*log10(r);PdBm = PdBm – mean(PdBm);

plot(PdBm)set(gca, 'FontName', 'times', 'FontSize', 14);ylabel('P, dB')ylim([-40 10])

Cuyo histograma es:

hist(r, 20)xlim([0 5])

Una estimación de la función de distribución acumulativa obtenida a partir de los datos se puede generar mediante el comando cdfplot.

cdfplot(r)xlim([0 5])

Distribución Rice

Las siguientes líneas de código permiten obtener datos con distribución riciana.

clear allclose all

A = 1;s = 0.25;

1 Nótese que los datos se normalizan tal que E[R2]=1.

Page 7: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

K = A^2/(2*s^2);

r = random('rician', A, s, 1000, 1);r = r/sqrt(mean(r.^2));

PdBm = 20*log10(r);PdBm = PdBm – mean(PdBm);

plot(PdBm)set(gca, 'FontName', 'times', 'FontSize', 14);ylabel('P, dB')ylim([-40 10])

El histograma con 20 clases se puede obtener mediante el comando hist.

hist(r, 20)xlim([0 5])

Page 8: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

Ajuste de Modelos

Para obtener estimaciones de parámetros se puede emplear la función mle que entrega las estimaciones de máxima verosimilitud. Por ejemplo:

Distribución Rayleigh

Primero simulemos datos con distribución Rayleigh y luego realicemos la estimación de máxima verosimilitud. También se obtiene el intervalo de confianza para los parámetros al 95%.

clear allclose all

s = 1;r = raylrnd(s, 1000, 1);hist(r, 40)xlim([0 5])

[sest, sic] = mle(r,'distribution','rayleigh', 'alpha', .05);

sest

Para graficar el ajuste se normalizará el histograma de manera que el área bajo la curva sea unitaria:

[N, X] = hist(r, 40);N = N/trapz(X, N);bar(X, N), hold on,fR = raylpdf(X, sest);plot(X, fR, 'r', 'LineWidth', 3)xlim([0 5])hold off

Veamos la función de distribución acumulativa:

cdfplot(r), hold onFR = raylcdf(X, sest);plot(X, FR, 'r', 'LineWidth', 2)xlim([0 5])hold off

Distribución Rice

Simulemos datos con distribución Riciana y luego realicemos la estimación de máxima verosimilitud.

clear all

Page 9: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

close all

A = 1;s = 0.25;

K = A^2/(2*s^2);

r = random('rician', A, s, 1000, 1);

[parest, paric] = mle(r,'distribution','rician', 'alpha', .05);

Aest = parest(1);sest = parest(2);

[Aest, sest]

Grafiquemos el ajuste:

[N, X] = hist(r, 40);N = N/trapz(X, N);bar(X, N), hold on,fR = pdf('rician', X, Aest, sest);plot(X, fR, 'r', 'LineWidth', 3)xlim([0 5])hold off

Observemos el ajuste de la función de distribución acumulativa:

cdfplot(r), hold onFR = cdf('rician', X, A, s);plot(X, FR, 'r', 'LineWidth', 2)xlim([0 5])hold off

También es posible utilizar la GUI (graphical user interface) dfittool incluida en Matlab. Estal permite analizar los datos y realizar ajustes y estimaciones de parámetros suponiendo diferentes modelos estadísticos. Entre estos se destacan las distribuciones: gaussiana, lognormal, riciana, nakagami, entre otras. Para acceder a esta GUI basta con escribir dfittool en WorkSpace o bien mediante la Ruta: Start->Toolboxes->Statistics->Distribution Fitting Tool.

Page 10: Ayuda Matlab Experiencia Banda Estrecha

Laboratorio de Sistemas de Comunicaciones 2010

Autocovarianza

Para utilizar la función de autocovarianza implementada en Matlab se generará un canal Rice con una frecuencia doppler máxima de 100Hz. Para ello se empleará el comando ricianchan de Matlab.

clear allclose all

A = 1;s = sqrt(5)/.1;

K = A^2/(2*s^2);

chan = ricianchan(1/1000, 100, K);rcom = filter(chan, ones(1000, 1));

autocorr(rcom.^2)

De donde se puede estimar visualmente el tiempo de coherencia del canal. Para obtener el los valores de la función y realizarle algún tratamiento, lo anterior se puede reescribir como:

[acf,lags,bounds] = autocorr(rcom.^2, 30);stem(lags, acf)