Convolución de múltiples señales 1D en una matriz 2D con múltiples núcleos 1D en una matriz 2D
Tengo un aleatorio definidoH
matriz de tamaño600 x 10
. Cada elemento en esta matrizH
puede ser representado comoH(k,t)
. Obtuve un espectrograma de vozS
cual es600 x 597
. Lo obtuve usando las funciones de Mel, por lo que debería ser40 x 611
pero luego utilicé un concepto de apilamiento de cuadros en el que apilé 15 cuadros juntos. Por eso me dio(40x15) x (611-15+1)
cual es600 x 597
.
Ahora quiero obtener una matriz de salidaY
que viene dada por la ecuación basada en convoluciónY(k,t) = ∑ H(k,τ)S(k,t-τ)
. La suma va deτ=0
aτ=Lh-1
. Lh
en este caso sería 597.
No se como obtenerY
. Además, mi duda es la indexación en ambosH
yS
al calcular la convolución. Especificamente paraY(1,1)
, tenemos:
Y(1,1) = H(1,0)S(1,1) + H(1,1)S(1,0) + H(1,2)S(1,-1) + H(1,3)S(1,-2) + ...
Ahora, no hay índices negativos en MATLAB, por ejemplo,S(1,-1) S(1,-2)
y así. Entonces, ¿qué tipo de convolución debo usar para obtenerY
? Traté de usarconv2
offtfilt
pero creo que eso no me daráY
porqueY
también debe ser del tamaño deS
.