Свертка нескольких одномерных сигналов в двумерной матрице с несколькими одномерными ядрами в двумерной матрице
У меня случайно определеноH
матрица размера600 x 10
, Каждый элемент в этой матрицеH
может быть представлен какH(k,t)
, Я получил речевую спектрограммуS
который600 x 597
, Я получил его с помощью функций Мел, так что должно быть40 x 611
но затем я использовал концепцию укладки кадров, в которой я сложил 15 кадров вместе. Поэтому это дало мне(40x15) x (611-15+1)
который600 x 597
.
Теперь я хочу получить выходную матрицуY
который задается уравнением на основе сверткиY(k,t) = ∑ H(k,τ)S(k,t-τ)
, Сумма идет отτ=0
вτ=Lh-1
. Lh
в этом случае будет 597.
Я не знаю как получитьY
, Кроме того, мое сомнение заключается в индексации в обоихH
а такжеS
при вычислении свертки. В частности, дляY(1,1)
, у нас есть:
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) + ...
Теперь в MATLAB нет такой вещи, как отрицательные индексы - например,S(1,-1) S(1,-2)
и так далее. Итак, какой тип свертки я должен использовать, чтобы получитьY
? Я пытался с помощьюconv2
или жеfftfilt
но думаю что не даст мнеY
так какY
также должен быть размеромS
.