13 votos

¿$\{ceps_q\}_{q=0}^Q$ Y $\{a_q\}_{q=1}^p$ media?

Como un programador que no ha tenido mayor formación en matemáticas, yo a veces, encontrar las ecuaciones matemáticas describen en los libros o en línea en el que me gustaría implementar en mis programas, pero tienen símbolos en los que estoy familiarizado con. O utilizan símbolos con los que estoy familiarizado con un desconocido. Es muy frustrante, especialmente en lo que ni siquiera puedo decir cuál es el área de matemáticas para iniciar la caza de ellos.

Ahora, estoy tratando de averiguar esto:

lpcc

He principalmente resuelto las ecuaciones que aparecen allí (el símbolo de la adición no era demasiado difícil encontrar a través de la Wikipedia, y finalmente comprendí que el gran abierto de refuerzo fue una manera de demostrar que si-entonces las ecuaciones), pero estoy atascado en las dos cosas en el párrafo inicial. La primera, entre "Los coeficientes cepstrum" y "puede ser estimado"... ¿qué hacen los "P" y "q=0" significa, en la que? Y en la entre "a partir de los coeficientes LPC" y "uso de la recursividad procedimiento:", la "p" y "q=1"?

13voto

Clement C. Puntos 16603

El $Q$ es un parámetro, y $q$ es una variable que van desde $0$$Q$: básicamente, usted tiene $Q+1$ parámetros de $\textrm{ceps}_0,\dots, \textrm{ceps}_Q$; o, en términos de programación, tiene una matriz $\textrm{ceps}[0\dots Q]$.

Del mismo modo, los coeficientes LPC son una lista de las $p$ valores $a_1,\dots, a_p$ (es decir, $a_q$$q=1\dots p$), donde $p$ es otro parámetro.

La recursividad procedimiento explica cómo calcular el valor de $Q+1$ valores en $\textrm{ceps}[0\dots Q]$, de forma recursiva, comenzando con $\textrm{ceps}[0]$ y, a continuación, la aplicación de la fórmula: $$ \textrm{ceps}[1] = a_1 + \sum_{k=1}^0 \frac{k-1}{1}a_k \textrm{ceps}[1-k] = a_1 $$ entonces $$ \textrm{ceps}[2] = a_2 + \sum_{k=1}^1 \frac{k-2}{2}a_k \textrm{ceps}[2-k] = a_2 - \frac{1}{2}a_1 \textrm{ceps}[1] = a_2-\frac{a_1^2}{2} $$ etc.

10voto

DanielV Puntos 11606
Number[] a = new Number[p + 1]; // range from 1 to p

... some stuff to initialize a ...

Number[] ceps = new Number[Q + 1]; // range from 0 to Q

ceps[0] = ln(G);
for (int q = 1; q <= p; q++) {
  Number sum = a[q];
  for (k = 1; k <= q - 1; k++) {
    sum += (k - q) / q * a[k] * ceps[q - k];
  }
  ceps[q] = sum;
}

for (int q = p + 1; q <= Q; q++) {
  Number sum = 0;
  for (int k = 1; k <= p; k++) {
    sum += (k - q) / q * a[k] * ceps[q - k];
  }
  ceps[q] = sum;
}

(k - q) / q * a[k] * ceps[q - k]

((Number)(k - q))/((Number)q) * a[k] * ceps[q - k]

a[k] * ceps[q - k] * (k - q) / q

Para evitar la división del número entero.

7voto

Hagen von Eitzen Puntos 171160

$\{ceps_q\}_{q=0}^Q$ es la secuencia finita (o array o vector en programmese) $$ceps_0,ceps_1,\ldots, ceps_Q.$$

Likewise, $\{a_q\}_{q=1}^p$ denotes $$a_1,a_2,\ldots, a_p.$$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X