Faltung mehrerer 1D-Signale in einer 2D-Matrix mit mehreren 1D-Kerneln in einer 2D-Matrix
Ich habe ein zufällig definiertesH
Matrix der Größe600 x 10
. Jedes Element in dieser MatrixH
kann als @ dargestellt werdH(k,t)
. Ich habe ein Sprachspektrogramm erhaltenS
welches ist600 x 597
. Ich habe es mit Mel-Funktionen erhalten, also sollte es @ sei40 x 611
aber dann habe ich ein Frame-Stacking-Konzept verwendet, bei dem ich 15 Frames zusammengestapelt habe. Deshalb gab es mir(40x15) x (611-15+1)
welches ist600 x 597
.
Nun möchte ich eine Ausgabematrix erhaltenY
was durch die Gleichung gegeben ist, die auf Faltung basiertY(k,t) = ∑ H(k,τ)S(k,t-τ)
. Die Summe geht vonτ=0
zuτ=Lh-1
. Lh
wäre in diesem Fall 597.
Ich weiß nicht, wie ich an @ komY
. Mein Zweifel ist auch die Indizierung in beideH
undS
bei der Berechnung der Faltung. Speziell fürY(1,1)
, wir haben
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) + ...
Jetzt gibt es in MATLAB keine negativen Indizes - zum BeispielS(1,-1) S(1,-2)
und so weiter. Also, welche Art von Faltung sollte ich verwenden, um @ zu erhaltY
? Ich habe versucht mitconv2
oderfftfilt
aber ich denke, das wird mir nicht gebenY
weilY
muss auch die Größe von @ habS
.