2011-12-06 9 views
-1

移動ウィンドウ積分フィルタをMatlabの信号に適用する必要があります。以下のコードが明らかになっていますが、どのように動作するのか分かりません。移動ウィンドウ積分フィルタmatlab

% Make impulse response 
h = ones (1 ,31)/31; 
Delay = 15; % Delay in samples 

% Apply filter 
x6 = conv (x5 ,h); 
x6 = x6 (15+[1: N]); 
x6 = x6/ max(abs(x6)); 

答えて

1

試しましたか?これは単なる移動平均フィルタです - それほどうまくいきません。新しい信号の各値が元の値の31近傍の平均(元の値自体、右15と左15)になるように、矩形のウィンドウ(半幅= 15)を作成するだけです。畳み込みは平均を行い、次の行は "遅延"を修正します。最後の行は正規化に過ぎず、平均化フィルタそのものとは関係ありません。

1

あなたが言及したコードが実際に移動ウィンドウの積分フィルタを行いますが、それが何をするかどうかはわからないよ:

  • はその後、インパルス応答

を定義しています

x6 = conv (x5 ,h);  //this applies the filter 
x6 = x6 (15+[1: N]);  //this applies the delay, it should be x6 (Delay+[1:length(x5)]) 
x6 = x6/ max(abs(x6)); // this normalizes the response 
関連する問題