2014-10-10 77 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