使用Hann窗口平滑多个列 - MATLAB

时间:2014-10-10 11:32:59

标签: matlab

我有:

hann10=hanning(10);
b = repmat(hann10,[1 5]);
smooth10=conv(fragments,b,'same');

然而,这会引发错误:

Error using conv (line 27)
A and B must be vectors.

我基本上想要通过相同的hann窗口平滑fragments包含多个但大小相同的列(即100x5),将窗口应用于每个列,就像它是一个单独的向量一样。

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

conv2如果你给它一列作为第二个参数,则按列进行卷积。所以只需使用:

smooth10 = conv2(fragments, hann10, 'same');

答案 1 :(得分:0)

很可能使用for:

hann10=hanning(10);
for ii=1:size(fragments,2)
   smooth10(ii,:)=conv(fragments(:,ii),hann10,'same');
end