title: Convolution of multiple 1D signals in a 2D matrix with multiple 1D kernels in a 2D matrix
body: <p>I have a randomly defined <code>H</code> matrix of size <code>600 x 10</code>. Each element in this matrix <code>H</code> can be represented as <code>H(k,t)</code>.  I obtained a speech spectrogram <code>S</code> which is <code>600 x 597</code>. I obtained it using Mel features, so it should be <code>40 x 611</code> but then I used a frame stacking concept in which I stacked 15 frames together. Therefore it gave me <code>(40x15) x (611-15+1)</code> which is <code>600 x 597</code>. </p>
  
  <p>Now I want to obtain an output matrix <code>Y</code> which is given by the equation based on convolution <code>Y(k,t) = ∑ H(k,τ)S(k,t-τ)</code>. The sum goes from <code>τ=0</code> to <code>τ=Lh-1</code>.  <code>Lh</code> in this case would be 597.</p>
  
  <p>I don't know how to obtain <code>Y</code>. Also, my doubt is the indexing into both <code>H</code> and <code>S</code> when computing the convolution.  Specifically, for <code>Y(1,1)</code>, we have:</p>
  
  <p><code>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) + ...</code></p>
  
  <p>Now, there is no such thing as negative indices in MATLAB - for example, <code>S(1,-1) S(1,-2)</code> and so on. So, what type of convolution should I use to obtain <code>Y</code>? I tried using <code>conv2</code> or <code>fftfilt</code> but I think that will not give me <code>Y</code> because <code>Y</code> must also be the size of <code>S</code>. </p>