Convolução de múltiplos sinais 1D em uma matriz 2D com múltiplos núcleos 1D em uma matriz 2D
Eu tenho um definido aleatoriamenteH
matriz de tamanho600 x 10
. Cada elemento nesta matrizH
pode ser representado comoH(k,t)
. Eu obtive um espectrograma de falaS
qual é600 x 597
. Eu o obtive usando os recursos do Mel, por isso deve ser40 x 611
mas então usei um conceito de empilhamento de quadros no qual empilhei 15 quadros juntos. Por isso me deu(40x15) x (611-15+1)
qual é600 x 597
.
Agora eu quero obter uma matriz de saídaY
que é dado pela equação baseada na convoluçãoY(k,t) = ∑ H(k,τ)S(k,t-τ)
. A soma vai deτ=0
paraτ=Lh-1
. Lh
neste caso seria 597.
Não sei como obterY
. Além disso, minha dúvida é a indexação em ambosH
eS
ao calcular a convolução. Especificamente paraY(1,1)
, temos:
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) + ...
Agora, não existem índices negativos no MATLAB - por exemplo,S(1,-1) S(1,-2)
e assim por diante. Então, que tipo de convolução devo usar para obterY
? Eu tentei usarconv2
oufftfilt
mas acho que isso não vai me darY
PorqueY
também deve ser do tamanho deS
.