2014-10-10 78 views
1

我:平滑多列与Hann窗 - 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. 

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

这样做的最好方法是什么?

回答

1

conv2卷积列明智的,如果你给它一个列作为第二个参数。所以只需使用:

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

那么可能使用了:

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