Qué hace esta calculadora
La Calculadora de Convolución Circular calcula la convolución circular (o cíclica) de dos secuencias en tiempo discreto, una operación fundamental en el procesamiento digital de señales (DSP). A diferencia de la convolución lineal, la convolución circular «envuelve» las secuencias alrededor de un periodo fijo N, que es justo lo que ocurre cuando multiplicas las Transformadas Discretas de Fourier (DFT) de dos señales y deshaces la transformación. Introduce tus secuencias y la herramienta te devuelve al instante la secuencia de salida resultante, además de sus valores máximo y mínimo para un análisis rápido.
Los datos de entrada
- Primera secuencia: tu señal de entrada x, escrita como números separados por comas (por ejemplo,
1, 2, 3, 4). - Segunda secuencia: la segunda señal h, también separada por comas (por ejemplo,
1, 1, 1).
Si las dos secuencias tienen longitudes distintas, la calculadora rellena la más corta con ceros hasta alcanzar N = la longitud de la secuencia más larga. A partir de ahí, ambas se tratan como periódicas con periodo N.
La fórmula
La convolución circular se define así:
$$y[n] = \sum_{k=0}^{N-1} x[k] \cdot h\big[(n - k)\bmod N\big]$$La diferencia clave respecto a la convolución lineal está en el índice módulo N. Cuando \((n - k)\) se vuelve negativo, en lugar de producir un cero, el índice da la vuelta hasta el final de la secuencia. Por eso el resultado siempre tiene exactamente N muestras: la misma longitud que la entrada más larga.
Ejemplo resuelto
Tomemos x = [1, 2, 3, 4] y h = [1, 1, 1, 1] (ambas de longitud N = 4). Al calcular cada salida:
- \(y[0] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
- \(y[1] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
- \(y[2] = 10\), \(y[3] = 10\)
Resultado: [10, 10, 10, 10], con un máximo de 10 y un mínimo de 10. Como h está formada solo por unos, cada salida equivale a la suma de x: una comprobación de coherencia muy útil.
Preguntas frecuentes
¿En qué se diferencia de la convolución lineal? La convolución lineal produce una secuencia de longitud (len(x) + len(h) − 1) sin envoltura. La convolución circular mantiene la longitud en N y replega lo que se desborda hacia el principio, igual que ocurre en el filtrado basado en la DFT.
¿Y si mis secuencias tienen longitudes diferentes? La más corta se rellena con ceros hasta igualar la longitud mayor N, de modo que ambas queden alineadas antes de la convolución.
¿Puedo usar números negativos o decimales? Sí. Las entradas se interpretan como decimales, así que valores como -1.5, 0.25, 3 funcionan sin problema.