instituto mexicano de acÚstica instituto … · 2.6 algoritmo de levinson-durbin creado por...

21
144 INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO TECNOLOGICO SUPERIOR DE URUAPAN 16º CONGRESO INTERNACIONAL MEXICANO DE ACÚSTICA 16th Mexican International Congress on Acoustics URUAPAN, MICHOACAN, MÉXICO 14 - 16 OCTUBRE (October), 2009 I2 - Análisis de ruido con el Método de Predicción lineal Alday Martínez A. Hamyd 1 Apolonio Elodio José Antonio 2 José de Jesús Negrete Redondo 3 Maximino Peña Guerrero 4 1 Alumno de la ESIME 2 Alumno de la ESIME 3 Profesor Investigador del IPN 4 Profesor Investigador del IPN

Upload: doanmien

Post on 05-May-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

144

INSTITUTO MEXICANO DE ACÚSTICA

INSTITUTO TECNOLOGICO SUPERIOR DE URUAPAN

16º CONGRESO INTERNACIONAL MEXICANO DE ACÚSTICA

16th Mexican International Congress on Acoustics

URUAPAN, MICHOACAN, MÉXICO 14 - 16 OCTUBRE (October), 2009

I2 - Análisis de ruido con el Método de Predicción lineal Alday Martínez A. Hamyd 1

Apolonio Elodio José Antonio2 José de Jesús Negrete Redondo3

Maximino Peña Guerrero 4

������������������������������������������������������������1 Alumno de la ESIME 2 Alumno de la ESIME 3 Profesor Investigador del IPN 4 Profesor Investigador del IPN

Page 2: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

145

I2 - Análisis de ruido con el Método de Predicción lineal Alday Martínez A. Hamyd 4

Apolonio Elodio José Antonio5 José de Jesús Negrete Redondo6

Maximino Peña Guerrero 4

RESUMEN

Uno de los problemas que existe cuando se realiza el análisis de ruido que produce una maquina en tiempo real, es que algunas veces los dispositivos no son de un propósito específico los cuales nos permitan capturar, analizar y observar las características especificas que identifica una señal de ruido en particular. Por otra parte, es escasa la información detallada de los instrumentos de medición comerciales que permitan estudiar su funcionamiento para modificarlos y adaptarlos a una fuente especifica de ruido. 1. Introducción

1.1 Introducción. El ruido es un problema que va a la par con la vida cotidiana, el constante desarrollo técnico y tecnológico obligan a vivir en un entorno en el cual el mundo de los sonidos se vuelve agresivo para el hombre, de manera que se puede considerar al ruido como un importante contaminante. El ruido es uno de los peligros laborales mas comunes, los niveles de ruido peligrosos se identifican fácilmente y en la gran mayoría de los casos es técnicamente viable controlar el exceso de ruido aplicando tecnología comercial, ya sea moderando el equipo, proceso, o transformando las maquinas ruidosas, pero con demasiada frecuencia no se hace nada y el ruido se suele aceptarse como un “mal necesario”. El fin de este proyecto denominado NADS (Noise Analyser Digital System) es lograr el estudio y a la vez tratar de anular parcialmente o totalmente señales de ruido aleatorio, mediante el uso de una herramienta muy útil como son los DSP’s (Digital Signal Processor) que son circuitos electrónicos que han estimulado el desarrollo de la computadores digitales mas potentes, pequeños, rápidos y baratos y de hardware digital de propósito general que es de fácil acceso y puede ser programado mediante lenguajes comunes como C/C++.

2. Desarrollo del proyecto

��������������������������������������������������������������Alumno de la ESIME 2 Alumno de la ESIME���Profesor Investigador del IPN���Profesor Investigador del IPN�

Page 3: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

146

2.1 Tarjeta de desarrollo 56F8300. Para la realización de este proyecto se requiere la tarjeta de trabajo 56F8300 de Motorola, la cual contiene un dispositivo DSP, esta tarjeta es una herramienta de equipo físico que permite el desarrollo de aplicaciones en distintos lenguajes de programación como lo son el lenguaje C/C++. Algunas de las características de esta tarjeta son: Es alimentada mediante un voltaje de entrada de +9V C.C , 300 m.A.; el rango de voltaje de entrada puede ser desde los +7 V a los + 15 V C.C, además cuenta con conversores Analógicos Digitales y Digitales Analógicos, un micrófono con amplificador de audio, conexión de puerto serial, entre otras.

Físicamente la tarjeta tiene dimensiones de 5.5 x 5.5 pulgadas. (Figura 1)

Figura 1 Tarjeta de trabajo

2.2 Síntesis por Predicción Lineal (linear Predictive Coding LPC). Es una de las técnicas desarrollada en la búsqueda de métodos de codificación, transición y recepción del habla y sonidos, creada en los años 30’s, la LPC intenta estimar el espectro de un sonido en términos de los coeficientes del filtro que podrían necesitarse para sintetizarlo a partir de una fuente de excitación.

Cuando se emplea esta técnica para sintetizar sonidos, tanto la forma de onda usada para la excitación como los coeficientes de filtrado pueden ser modificados (Tanto en el dominio temporal como en el de las frecuencias) para crear variaciones del sonido original.

Entre las ventajas que presenta el método se encuentran:

-Los parámetros obtenidos mediante predicción lineal muestran un espectro suavizado que proporciona la información más representativa de los sonidos.

Page 4: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

147

-Es un método preciso y muy adecuado para computación, tanto por la sencillez como por la rapidez de ejecución que presentan los algoritmos hallados.

2.3 Archivo “.WAV”. Para poder implementar el Sistema de Análisis Digital NADS, necesitamos primeramente la base de estudios que en este caso es un ruido aleatorio el cual para una forma de estudio mas precisa es convertido a una extensión .WAV, esta extensión nos da un panorama mas especifico de la señal a tratar, ya que .WAV es un formato de audio digital normalmente sin compresión de datos que se utiliza para almacenar sonidos en el PC, admite archivos mono y estéreo a diversas resoluciones y velocidades de muestreo.

2.4 Ventana de Haming. Aunque el mayor esfuerzo del tratamiento de sonidos se centra en el análisis espectral, existen métodos para el procesamiento de los sonidos del dominio del tiempo que nos pueden ser muy útiles. Debido a la naturaleza cambiante de los sonidos resulta mas conveniente aplicar el análisis a porciones de sonido, ya que nuestro interés es observar la evolución de los distintos parámetros calculados por ello se procesan en porciones o ventanas de señal, existen varis tipos de señal pero la mas utilizada es la ventana tipo Hamming la cual tiene la siguiente función matemática:

W(t) = 0.54 - 0.46 * coseno (2πt/L) en (0 ≤ t ≤ L -1)

W(t) = 0 en el resto de la señal

Figura 2 Forma de una Ventana de Hamming

Page 5: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

148

2.5 Función de autocorrelación La función de autocorrelación resulta de gran utilidad para encontrar patrones repetitivos dentro de una señal, como por ejemplo, la periodicidad de una señal enmascarada bajo el ruido o para identificar la frecuencia fundamental de una señal que no contiene dicha componente, pero aparecen numerosas frecuencias armónicas de esta.

2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, este algoritmo es un algoritmo del algebra lineal para calcular en forma recursiva la solución de una ecuación que involucra una matriz tipo Toeplitz. Creando así el algoritmo iterativo mas utilizado en el campo de análisis por computadora par resolver sistemas de ecuaciones, debido a su rapidez, podríamos decir que con este algoritmo podemos generar los elementos de una ecuación, ordenarlos en una ecuación.

2.6 Programación. Un lenguaje de programación permite al usuario crear programas que serán entendidos por el ordenador (directa o indirectamente) con el objetivo de realizar alguna tarea. A grandes rasgos podemos clasificar los lenguajes de programación en tres categorías: máquina, bajo nivel (ensamblador) y alto nivel.

Un entorno de programación es un programa que proporciona todas las herramientas que el programador necesita para desarrollar sus programas. Éstas básicamente son:

- Un editor de texto para escribir el código fuente.

- Un compilador para obtener el código ejecutable.

- Un entorno para la ejecución segura de los programas creados.

- Un depurador para corregir los errores de ejecución

Para el desarrollo de NADS el entorno de programación esta elaborado en el Metroweks Code-warrior.

Page 6: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

149

Figura 3 Entorno de programación del Metroweks Code-warrior

2.7 Interfaz grafica. Para que el sistema NADS este completo es necesario un equipo de computación de preferencia que sea de escritorio, ya que las laptops la gran mayoría no cuentan con las conexiones que la tarjeta de trabajo necesita y los adaptadores no son posibles de acoplarse a estas aplicaciones.

Figura 4 NADS completo

Page 7: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

150

Figura 5 Conexión entre la tarjeta y la computadora

2.8 Visualización de los datos. El sistema NADS esta diseñado para que el usuario tenga una mayor manipulación de los datos que se obtienen de la señal, este sistema puede entregarnos los datos en distintos formatos ya sean archivos con extensión .DOC, .TXT, en hojas de calculo, etc.

Figura 6 Datos mostrados en un archivo .TXT

Page 8: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

151

Figura 6 Proceso que desarrolla NADS con la señal.

Figura 7 Coeficientes de reflexión

Conclusiones

Los DSP es una tecnología muy avanzada la cual nos permite una manipulación en los datos de distintos procesos, la implementación de estos dispositivos en el análisis de ruido mas los métodos y algoritmos matemáticos adecuados permiten un análisis de ruido más preciso.

Agradecimientos

Agradecemos a las autoridades del Instituto Politécnico Nacional su apoyo durante la realización del trabajo, al Dr. Maximino Peña Guerrero, al Ing. José de Jesús Negrete Redondo y a muchas personas estuvieron detrás de este enorme proyecto.

Page 9: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

152

REFERENCIAS

[1] BrÄaunl Thomas, Embedded Robotics: Mobile Robot Design and Application whit Embedded Systems, third edition, Spinger, Germany 2008, 2006, 2003. 541 pgs. [2] Carlson Gordon E., Signal and Linear System Analysis: whit MATLAB, 2nd. ed., John Wiley & Sons Inc., 1998. 752 pgs. [3] Carnevale Nicholas T., Michael L. Hines, The NEURON book, Cambridge university Press, 2006. 457 pgs. [4] Charles I. Hubert, Circuitos eléctricos CA/CC, McGRAW-HILL, Bogotá, Colombia 1985, 437. 444 pg. [5] Chassing Rulph, Digital Signal Processing: Laboratory Experiments Using C and the TMS320C31 DSK, John Wiley & Sons, USA 1999. 305 pgs. [6] Chassing Rulph, DSP Applicatioons Using C and the TMS320C6x DSK, John Wiley & Sons, USA 2002. 335 pgs. [7] Cunningham Edward P., Digital Filtering: an Introduction , John Wiley & Sons, USA 1995. 535 pgs. [8] Embree Paul M., Bruce Kimble, C languaje Algorithms for Digital Signal Processing, Pretince Hall PTR, 1995. 247 pgs. [9] Embree Paul M., C Algorithms for real Time DSP, Pretince Hall PTR, 1995. 247 pgs. [10] Embree Paul M., Damon Danieli, C++ Algorithms for Digital Signal Processing, 2nd. ed., Pretince Hall PTR, 1999. 579 pgs. [11] Gold Ben, Nelson Morgan, Speach and Audio Signal Processing: Processing an Perception of Spech and Music, John Wiley & Sons Inc., 2000. 537 pgs. [12] Glyn James, Matemáticas Avanzadas para Ingeniería, Segunda Edición, Editorial Prentice Hall, 2002 [13] Hamming R. W., Digital Filters, 3rd, ed., Dover, 1989. 284 pgs. Bell Laboratories. [14] Hayes H. Monson, Theory and Problems of Digital Signal Processing Schaum's McGraw-Hill, 1999. 432 pgs. [15] Hwei P. Hsu, Análisis de Fourier Prentice Hall, México 1998. 89,94 pgs [16] Jesús Bernal Bermúdez, Jesús Bobadilla Sancho, Pedro Gómez Vilda, Reconocimiento De Voz Y Fonética Acústica, Ra-Ma - 2000, España, 144. 167pgs.

Page 10: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

153

[17] Kehtarnavaz Nasser, Digital Signal Processing System Design: LabVIEW-Based Hybryd Programming, second edition, Academic Press, 2008, USA325 pgs. [18] kinsler Lawrence E., Austin R. Frey, Fundamentals of Acosutics, Jhon Wiley & Sons, USA, 1950-1967. 524 pgs. [19] L.R. Rabiner, R.W. Schafer Digital Processing of Speech Signals, Prentice Hall, Upper Saddle River, New Jersey, USA. 398. 417 pgs. [20] Meneses González Ricardo, Sistemas de comunicación utilizando codificación lineal predictiva (LPC)", Tesis Maestría, CINVESTAV I.P.N, Febrero1989, México. 129 pgs. [21] Principe Jose C., Neil R. Eulaliana, W. Curt Lefevre, Neuronal and Adaptive Systems, Jhon Wiley & Sons, USA, 2000. 656 pgs. [22] Rabiner L. R., R. W. Schafer, Digital Processing of speech Signals, Prentice, Hall, 1978. [23] Rabiner L. Juang, Fundamentals of speech recognition, Prentice, Hall, 1993. [24] Robert l. Boylestad, Louis Nashelsky, Electrónica: teoría de circuitos y dispositivos electrónicos, PEARSON Prentice Hall, México, 2003. 798 pgs. [25] Rorabaugh C. Britton, Digital Filter Designer's Handbook: Featuring C Routines, TAB Mc Graww Hill, 1993, 333 pgs. [26] White Steve Digital Signal Processing, Delmar Thomson Learning, 2000, 234 pgs. Datos de los autores

A. Hamyd Alday Martínez, Estudiante del IPN

Tel. particular: 044 55 20 69 44 28; Dir. Particular: Insurgentes #23 San Miguel Coatlinchán Texcoco Edo. De México.

A. José Antonio Apolonio Elodio, Estudiante del IPN

Tel. particular: 044 55 27 44 04 94; Dir. Particular: Privada de Asturias Mz. 3 Lt. 2 Col. Xochitenco Chimalhuacán Edo. De México.

Page 11: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

154

ANEXOS

//==========================================================

//armonico.cpp -generar archivo wav con un tono.

//==========================================================

//#include "stdafx.h"

#include <stdio.h>

#include <math.h>

#define pi 3.1459

#define TIEMPO 1

#define FREC_MUESTREO 11025

#define ARMONICO 1000

typedef unsigned short int WORD;

typedef unsigned long int DWORD;

typedef unsigned char CHAR;

typedef struct

{

CHAR riff[4];

DWORD tamano;

CHAR wave[8];

DWORD formato1;

WORD formato2;

WORD mono;

DWORD frecmuestra;

DWORD bytesporseg;

WORD bytesporcap;

WORD bitsmuestra;

Page 12: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

155

CHAR data[4];

DWORD ndatos;

}

DESCRIPTOR;

static DESCRIPTOR fdw;

FILE *fd;

WORD muestra[11025];

DWORD Numero_muestras;

DWORD i;

double omega=0.0;

double delta=0.0;

int main(int argc, char* argv[])

{

Numero_muestras=TIEMPO * FREC_MUESTREO;

fd=fopen("muestraruido.wav","wb");

if(!fd) {printf("fopen(): error\n"); return(0);}

//Llenar encabezado WAV.

fdw.riff[0]='R';

fdw.riff[1]='I';

fdw.riff[2]='F';

fdw.riff[3]='F';

fdw.tamano=(Numero_muestras *2) + 36;

fdw.wave[0]='W';

fdw.wave[1]='A';

fdw.wave[2]='V';

fdw.wave[3]='E';

fdw.wave[4]='f';

Page 13: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

156

fdw.wave[5]='m';

fdw.wave[6]='t';

fdw.wave[7]=' ';

fdw.formato1=16;

fdw.formato2=1;

fdw.mono=1;

fdw.frecmuestra=FREC_MUESTREO;

fdw.bytesporseg=FREC_MUESTREO*2;

fdw.bytesporcap=2;

fdw.bitsmuestra=16;

fdw.data[0]='d';

fdw.data[1]='a';

fdw.data[2]='t';

fdw.data[3]='a';

fdw.ndatos=Numero_muestras*2;

// Escribir encabezado a archivo WAV.

fwrite(&fdw,sizeof(DESCRIPTOR),1,fd);

// Generar ton en bufer muestra[].

for(i=0; i<Numero_muestras; i++)

{

omega=2.0*pi*((double)ARMONICO/(double)FREC_MUESTREO);

muestra[i]=(WORD)(32000*sin(omega*(double)i));

}

// Escribir buffer muestra[] en archivo WAV.

fwrite(&muestra,sizeof(muestra),1,fd);

//Cerrar archivo WAV.

fclose(fd);

Page 14: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

157

return 0; }

//==========================================================

//completo.cpp –procesa archivo wav, obtención de datos.

//==========================================================

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

main(void)

{

int i,j;

int may=0, men=0;

long n;

float entre, mas, w, wmod, MAY;

int k, a,f;

FILE *f1;

FILE *archivo;/*El manejador de archivo*/

archivo=fopen("mayormenor.xls", "w");

printf("\n\n LOS DATOS DEL ARCHIVO **.WAV SON: \n\n");

f1=fopen("muestraruido.wav","rb");

a=0;

//MAY=2097113489.;

for(f=0; f<=256;f++)

{

j=getw(f1);

if(ferror(f1)!=0)

{

printf("\n A OCURRIDO UN ERROR");

Page 15: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

158

n=ftell(f1);

getch();

}

if(f<=255)

{

//printf("\n %d ",j);

if(may<=j)

{

may=j;

}

//fprintf(archivo,"%d",may);

if(men>=j)

{

men=j;

}

//fprintf(archivo,"\t%d\n",men);

}

}

f1=fopen("muestraruido.wav","rb");

for(k=0; k<=256;k++)

{

i=getw(f1);

if(ferror(f1)!=0)

{

printf("\n A OCURRIDO UN ERROR");

n=ftell(f1);

getch();

Page 16: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

159

}

if(k<=255)

{

printf("\n %d ",i);

fprintf(archivo,"%d",i);/*Escribimos en el archivo*/

MAY=may*1.0;

entre=i/MAY;

mas=(entre+1.)/2;

if(i<=255)

w=0.54-0.46*(cos(2/3.1416*a/26));

a++;

wmod=w*mas;

fprintf(archivo,"\t %f",entre);

fprintf(archivo,"\t%f",mas);

fprintf(archivo,"\t%f",w);

fprintf(archivo,"\t%f\n",wmod);

}

}

n=ftell(f1);

getch();

fclose(archivo);/*Cerramos el archivo*/

return 0;

fclose(f1);

printf("\n\n FIN DEL ARCHIVO");

getch();

}

Page 17: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

160

//==========================================================

//coeficientes.cpp –obtención de coeficientes apartar de los datos obtenidos.

//==========================================================

#include<windows.h>

#include<stdio.h>

#include<math.h>

AUTO(float X[], int N, int M , float *ap, float *rcp, float *PALPHA, int eti);

float A[21];

float RC[21];

float ALPHA;

//float X[256];

float X[256]={ 0.0,0.0,0.0,0.0,0.041102,

0.041104,0.041102,0.041103,0.041123,0.073148,0.041103,

0.063306,0.081796,0.052784,0.013166,0.004896,0.057104,

0.109501,0.101114,0.04683,0.000779,0.031408,0.106753,

0.138896,0.090316,0.020776,0.007134,0.086961,0.168248,

0.156401,0.073248,0.001383,0.047205,0.162849,0.213375,

0.139801,0.032377,0.010172,0.128837,0.251515,0.235366,

0.109645,0.002317,0.067386,0.235975,0.311365,0.205555,

0.047466,0.013615,0.179238,0.353072,0.33261,0.153837,

0.003607,0.090128,0.320466,0.425843,0.283248,0.065261,

0.01707,0.234119,0.465404,0.441349,0.203018,0.005249,

0.113517,0.409911,0.548565,0.367624,0.084707,0.020194,

0.28923,0.580247,0.55393,0.253916,0.007197,0.135661,

0.49762,0.670675,0.452817,0.104591,0.022706,0.340384,

0.689198,0.662327,0.303031,0.00938,0.154854,0.577117,

Page 18: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

161

0.783375,0.532855,0.123565,0.024404,0.383796,0.784342,

0.758782,0.346915,0.011656,0.169662,0.642599,0.878502,

0.602003,0.140311,0.025177,0.416293,0.858795,0.836336,

0.382407,0.013886,0.179054,0.689368,0.949203,0.655249,

0.153599,0.024985,0.435615,0.907174,0.889339,0.406878,

0.015904,0.182413,0.714092,0.990336,0.688685,0.162405,

0.023917,0.440484,0.926082,0.913908,0.418442,0.017542,

0.179619,0.71513,0.998937,0.699762,0.165978,0.022068,

0.430677,0.914183,0.908172,0.416106,0.018644,0.170991,

0.692513,0.97438,0.687557,0.163964,0.019648,0.407067,

0.87246,0.872479,0.399906,0.019074,0.157242,0.648033,

0.91844,0.65279,0.156402,0.016831,0.371467,0.803953,

0.809336,0.370876,0.018788,0.139456,0.585003,0.835159,

0.597916,0.143756,0.013848,0.32654,0.7137,0.723252,

0.331058,0.01776,0.118934,0.508007,0.73056,0.526806,

0.126894,0.010903,0.275523,0.608206,0.620451,0.283323,

0.016048,0.097148,0.422589,0.612193,0.444642,0.107072,

0.008172,0.222036,0.495066,0.508391,0.231195,0.013779,

0.075551,0.334814,0.488631,0.357439,0.085811,0.005791,

0.169766,0.382355,0.395265,0.178626,0.011171,0.055539,

0.250836,0.368787,0.271702,0.064832,0.003849,0.122215,

0.27807,0.289374,0.129701,0.008494,0.038312,0.176411,

0.261301,0.193887,0.045902,0.002385,0.082449,0.189533,

0.198553,0.088325,0.006047,0.024821,0.116548,0.173924,

0.129972,0.030727,0.001393,0.052901,0.122871,0.129576,

0.057956,0.004163,0.015681,0.075114,0.112935,0.084993,

0.020797,0.000828,0.035188,0.082588,0.087677,0.04131,

Page 19: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

162

0.003167,0.011166,0.054586,0.082689,0.062671

};

int main()

{

int N=255; // numero de muestras N=n-1

int M=10; // numero de coeficientes

int eti=1;

int i;

AUTO(X, N, M , &A[1], &RC[1], &ALPHA, eti);

for (i=1; i<=M; i++)

{ printf("A[%d] = %10f RC[%d] = %10f ALPHA = %10f \n",i,A[i],i,RC[i],ALPHA);

}

getch();

return(0); }

AUTO(float X[], int N, int M , float *ap, float *rcp, float *PALPHA, int eti)

{

float R[21],B[20];

int MINC, MP, NK, K, NP, MF;

int J, JB, IP, MIP, NPK;

float S;

float *auxap, *fijap, *iniap, *rcip, *otrap;

auxap = ap;

fijap = ap;

iniap = ap;

rcip = rcp;

otrap = ap;

Page 20: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

163

K = 1;

MP = M+1;

while(K <= MP)

{ R[K] = 0.0;

NK = (N - K + 1);

NP = eti;

while(NP <= NK)

{ NPK = NP + K - 1;

R[K] = R[K] + X[NP] * X[NPK];

NP++; }

K++; }

*PALPHA = R[1];

*rcp = -(R[2]/R[1]);

*ap = 1.0;

*(ap+1) = *rcp;

*PALPHA = *PALPHA -(*rcp) * (*rcp) * (*PALPHA);

MF = M;

MINC = 2;

while(MINC <= MF)

{ M = MINC - 1;

J = 1;

while(J <= MINC)

{ JB = MINC - J +1;

auxap = auxap + JB -1;

B[J] = *auxap;

auxap = ap;

J++; }

Page 21: INSTITUTO MEXICANO DE ACÚSTICA INSTITUTO … · 2.6 Algoritmo de Levinson-Durbin Creado por levinson en el año de 1946, ... Robert l. Boylestad, ... teoría de circuitos y dispositivos

164

auxap = ap;

M = M +1;

S = 0.;

IP = 1;

while(IP <= M)

{ MIP = M - IP + 2;

S = S + R[MIP] * (*iniap);

iniap = iniap +1;

IP++; }

iniap = ap;

rcip = rcip + M - 1;

*rcip = -S/(*PALPHA);

IP = 2;

while(IP <= M)

{ fijap = fijap +1;

*fijap = (*fijap) +(*rcip) * B[IP-1]; /* */

IP++; }

fijap = ap;

otrap = otrap + M;

*otrap = *rcip;

*PALPHA = *PALPHA -(*rcip)*(*rcip)*(*PALPHA);

if (*PALPHA <=0.)

printf("Precisicion insuficiente %f\n",*PALPHA);

otrap = ap;

rcip = rcp;

MINC++; }

printf("Termina analisis\n"); }