Articulo de referencia

Método de superposición y adición

En el procesamiento de señales , el método de superposición-suma es una forma eficiente de evaluar la convolución discreta de una señal muy larga. incógnita [ norte ] {\displays...

En el procesamiento de señales , el método de superposición-suma es una forma eficiente de evaluar la convolución discreta de una señal muy larga.incógnita[norte]{\displaystyle x[n]}con un filtro de respuesta de impulso finito (FIR)h[norte]{\displaystyle h[n]}:

dóndeh[metro]=0{\displaystyle h[m]=0}parametro{\displaystyle m}fuera de la región[1,METRO].{\displaystyle [1,M].} 

Este artículo utiliza notaciones abstractas comunes, comoy(t)=incógnita(t)h(t),{\textstyle y(t)=x(t)*h(t),}oy(t)=H{incógnita(t)},{\textstyle y(t)={\mathcal {H}}\{x(t)\},}en el que se entiende que las funciones deben pensarse en su totalidad, en lugar de en instantes específicos.t{\textstyle t}(véase Convolución#Notación ).

Algoritmo

Figura 1: Una secuencia de cinco gráficos representa un ciclo del algoritmo de convolución de superposición y suma. El primer gráfico es una larga secuencia de datos que se procesará con un filtro FIR de paso bajo. El segundo gráfico es un segmento de los datos que se procesará por partes. El tercer gráfico es el segmento filtrado, incluyendo las transiciones de subida y bajada del filtro. El cuarto gráfico indica dónde se añadirán los nuevos datos con el resultado de los segmentos anteriores. El quinto gráfico es el flujo de salida actualizado. El filtro FIR es un filtro paso bajo de ventana rectangular conMETRO=16{\displaystyle M=16}muestras, la longitud de los segmentos esL=100{\displaystyle L=100}muestras y la superposición es de 15 muestras.

El concepto consiste en dividir el problema en múltiples convoluciones deh[norte]{\displaystyle h[n]}con segmentos cortos deincógnita[norte]{\displaystyle x[n]}:

incógnitak[norte]  {incógnita[norte+kL],norte=1,2,,L0,de lo contrario,{\displaystyle x_{k}[n]\ \triangleq \ {\begin{cases}x[n+kL],&n=1,2,\ldots ,L\\0,&{\text{en otro caso}},\end{cases}}}

dóndeL{\displaystyle L}es una longitud de segmento arbitraria. Entonces :

incógnita[norte]=kincógnitak[nortekL],{\displaystyle x[n]=\sum _{k}x_{k}[n-kL],\,}

yy[norte]{\displaystyle y[n]}se puede escribir como una suma de convoluciones cortas : [ 1 ]

y[norte]=(kincógnitak[nortekL])h[norte]=k(incógnitak[nortekL]h[norte])=kyk[nortekL],{\displaystyle {\begin{aligned}y[n]=\left(\sum _{k}x_{k}[n-kL]\right)*h[n]&=\sum _{k}\left(x_{k}[n-kL]*h[n]\right)\\&=\sum _{k}y_{k}[n-kL],\end{aligned}}}

donde la convolución linealyk[norte]  incógnitak[norte]h[norte]{\displaystyle y_{k}[n]\ \triangleq \ x_{k}[n]*h[n]\,}es cero fuera de la región[1,L+METRO1].{\displaystyle [1,L+M-1].}Y para cualquier parámetronorteL+METRO1,{\displaystyle N\geq L+M-1,\,}[ A ] es equivalente a lanorte{\displaystyle N}-convolución circular de puntos deincógnitak[norte]{\displaystyle x_{k}[n]\,}conh[norte]{\displaystyle h[n]\,}en la región[1,norte].{\displaystyle [1,N].} La ventaja es que la convolución circular se puede calcular de forma más eficiente que la convolución lineal, según el teorema de la convolución circular :

dónde :

  • DFT N e IDFT N se refieren a la transformada discreta de Fourier y su inversa, evaluadas sobrenorte{\displaystyle N}puntos discretos y
  • L{\displaystyle L}se elige habitualmente de tal manera quenorte=L+METRO1{\displaystyle N=L+M-1}es una potencia entera de 2, y las transformaciones se implementan con el algoritmo FFT , para mayor eficiencia.

Pseudocódigo

A continuación se presenta una representación en pseudocódigo del algoritmo :

( Algoritmo de superposición y suma para convolución lineal ) h = filtro FIR M = longitud(h) Nx = longitud(x) N = 8 × 2^techo( log2(M) ) (8 veces la potencia de dos más pequeña mayor que la longitud del filtro M. Consulte la siguiente sección para una opción ligeramente mejor). step_size = N - (M-1) (L en el texto anterior) H = DFT(h, N) posición = 0 y(1 : Nx + M-1) = 0 mientras posición + tamaño_paso ≤ Nx hacer y(posición+(1:N)) = y(posición+(1:N)) + IDFT(DFT(x(posición+(1:tamaño_paso)), N) × H) posición = posición + tamaño_de_paso fin

Consideraciones de eficiencia

Figura 2: Gráfico de los valores de N (una potencia entera de 2) que minimizan la función de coste.norte(registro2norte+1)norteMETRO+1{\displaystyle {\tfrac {N\left(\log _{2}N+1\right)}{N-M+1}}}

Cuando la DFT y la IDFT se implementan mediante el algoritmo FFT, el pseudocódigo anterior requiere aproximadamente N (log 2 (N) + 1) multiplicaciones complejas para la FFT, el producto de matrices y la IFFT. [ B ] Cada iteración produce N-M+1 muestras de salida, por lo que el número de multiplicaciones complejas por muestra de salida es aproximadamente :

Por ejemplo, cuandoMETRO=201{\displaystyle M=201}ynorte=1024,{\displaystyle N=1024,}La ecuación 3 es igual a13,67,{\displaystyle 13.67,}mientras que la evaluación directa de la ecuación 1 requeriría hasta201{\displaystyle 201}multiplicaciones complejas por muestra de salida, siendo el peor caso cuando ambosincógnita{\displaystyle x}yh{\displaystyle h}son de valor complejo. Tenga en cuenta también que para cualquier dadoMETRO,{\displaystyle M,}La ecuación 3 tiene un mínimo con respecto anorte.{\displaystyle N.} La figura 2 es un gráfico de los valores denorte{\displaystyle N}que minimizan la ecuación 3 para un rango de longitudes de filtro (METRO{\displaystyle M}).

En lugar de la ecuación 1 , también podemos considerar aplicar la ecuación 2 a una secuencia larga de longitudnorteincógnita{\displaystyle N_{x}}muestras. El número total de multiplicaciones complejas sería:

norteincógnita(registro2(norteincógnita)+1).{\displaystyle N_{x}\cdot (\log _{2}(N_{x})+1).}

En comparación, el número de multiplicaciones complejas requeridas por el algoritmo en pseudocódigo es:

norteincógnita(registro2(norte)+1)nortenorteMETRO+1.{\displaystyle N_{x}\cdot (\log _{2}(N)+1)\cdot {\frac {N}{N-M+1}}.}

Por lo tanto, el costo del método de superposición-adición se escala casi comoO(norteincógnitaregistro2norte){\displaystyle O\left(N_{x}\log _{2}N\right)}mientras que el costo de una sola convolución circular grande es casiO(norteincógnitaregistro2norteincógnita){\displaystyle O\left(N_{x}\log _{2}N_{x}\right)}En la Figura 3, generada mediante simulación con MATLAB , se comparan ambos métodos . Las curvas de nivel representan la relación constante entre los tiempos de ejecución de cada método. Cuando el método de superposición y suma es más rápido, la relación supera 1, llegando incluso a valores de hasta 3.

Figura 3: Ganancia del método de superposición y suma en comparación con una única convolución circular grande. Los ejes muestran los valores de la longitud de la señal N x y la longitud del filtro N h .

Véase también

Notas

  1. Esta condición implica que elincógnitak{\displaystyle x_{k}}El segmento tiene al menosMETRO1{\displaystyle M-1}Se añadieron ceros, lo que evita la superposición circular de los transitorios de subida y bajada de la salida.
  2. El algoritmo FFT de Cooley-Tukey para N=2 k necesita (N/2) log 2 (N) – ver FFT – Definición y velocidad

Referencias

  1. Rabiner, Lawrence R.; Gold, Bernard (1975). "2.25" . Teoría y aplicación del procesamiento digital de señales . Englewood Cliffs, NJ: Prentice-Hall. págs. 63-65 . ISBN  0-13-914101-4.

Lecturas adicionales

  • Oppenheim, Alan V.; Schafer, Ronald W. (1975). Procesamiento digital de señales . Englewood Cliffs, NJ: Prentice-Hall. ISBN 0-13-214635-5.
  • Hayes, M. Horace (1999). Procesamiento digital de señales . Serie Schaum's Outline. Nueva York: McGraw Hill. ISBN 0-07-027389-8.
  • Senobari, Nader Shakibay; Funning, Gareth J.; Keogh, Eamonn; Zhu, Yan; Yeh, Chin-Chia Michael; Zimmerman, Zachary; Mueen, Abdullah (2019). "Correlación cruzada supereficaz (SEC-C): un código de filtrado adaptado rápido adecuado para ordenadores de sobremesa" (PDF) . Seismological Research Letters . 90 (1): 322–334 . doi : 10.1785/0220180122 . ISSN 0895-0695 . 
Obtenido de " https://en.wikipedia.org/w/index.php?title=Overlap–add_method&oldid=1337801119 "