ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

filter

fi オブジェクトの 1 次元デジタル フィルター

構文

y = filter(b,1,x)
[y,zf] = filter(b,1,x,zi)
y = filter(b,1,x,zi,dim)

説明

y = filter(b,1,x) は、固定小数点ベクトル b で表されるフィルターを使用して、固定小数点ベクトル x 内のデータをフィルター処理します。この関数は、フィルター処理されたデータを出力 fi オブジェクト y に返します。入力 bx は、fi オブジェクトでなければなりません。filter は大きさが 1 でない最初の次元を必ず処理します。このように、フィルターは列ベクトルと自明でない行列の場合は最初の次元、行ベクトルの場合は 2 番目の次元を処理します。

[y,zf] = filter(b,1,x,zi) は、遅延の初期条件 zi と最終条件 zf にアクセスできるようにします。zi は、長さが length(b)-1 のベクトル、または最初の次元のサイズが length(b)-1 で残りの次元が x の次元と一致する配列です。zi は、y および zf と同じデータ型をもつ fi オブジェクトでなければなりません。zi の値を指定しない場合、このパラメーターは既定により、値が 0 で、適切な numerictype とサイズをもつ固定小数点配列になります。

y = filter(b,1,x,zi,dim) は、指定された次元に沿ってフィルター処理を実行します。初期条件のベクトルを指定しない場合は、入力引数 zi[] を使用してください。

入力引数

b

フィルター係数の固定小数点ベクトル。

x

関数でフィルター処理するデータが格納されている固定小数点ベクトル。

zi

遅延の初期条件が格納されている固定小数点ベクトル。遅延の初期条件がゼロの場合、ゼロを指定することができます。zi の適切なサイズと numerictype が不明の場合は、[] を使用してください。

zi の値を指定しない場合、このパラメーターは既定により、値がゼロで、出力 zf (既定値) と同じ numerictype とサイズをもつ固定小数点ベクトルになります。

dim

フィルター処理を実行する次元。

出力引数

y

フィルター処理された固定小数点データが格納されている出力ベクトル。

zf

遅延の最終条件が格納されている固定小数点出力ベクトル。

次の例では、成分として低周波数と高周波数の両方を含む固定小数点正弦波信号から高周波数固定小数点正弦波をフィルター処理して取り除きます。

w1 = .1*pi;
w2 = .6*pi;
n  = 0:999;
xd = sin(w1*n) + sin(w2*n);
x  = sfi(xd,12);
b  = ufi([.1:.1:1,1-.1:-.1:.1]/4,10);
gd = (length(b)-1)/2;
y  = filter(b,1,x);
 
%% Plot results, accomodate for group-delay of filter
plot(n(1:end-gd),x(1:end-gd))
hold on
plot(n(1:end-gd),y(gd+1:end),'r--')
axis([0 50 -2 2])
legend('Unfiltered signal','Filtered signal')
xlabel('Sample index (n)')
ylabel('Signal value')

結果のプロットには、フィルター処理された信号と未処理の信号の両方が示されます。

詳細

すべて展開する

フィルターの長さ (L)

フィルターの長さは length(b) か、または固定小数点ベクトル b で指定されたフィルター係数の個数です。

フィルター次数 (N)

フィルター次数はフィルターの状態 (遅延) の個数であり、L-1 に等しい値です。

ヒント

  • 関数 filter では FIR フィルターのみがサポートされています。一般的なフィルターの表現 b/a において、FIR フィルターの分母 a はスカラー 1 で、この関数の 2 番目の入力です。

  • bnumerictype は、xnumerictype とは異なることがあります。

  • 初期条件を指定したくても使用すべき numerictype が不明の場合は、まず初期条件を指定せずにデータをフィルター処理してみてください。そのためには、入力 zi に対して [] を指定します。フィルター処理を実行すると、zf (要求された場合) と ynumerictype が得られます。zinumerictype は、yzf の numerictype に一致していなければならないので、これで初期条件に使用すべき numerictype がわかったことになります。

アルゴリズム

関数 filter は、以下に示す差分方程式の直接型 FIR 転置実装を使用します。

ここで、Lフィルターの長さで、Nフィルター次数です。

次の図は、関数 filter で使用する直接型 FIR 転置フィルター構造を示したものです。

参考

|

この情報は役に立ちましたか?