ドキュメンテーション

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

stepz

デジタル フィルターのステップ応答

構文

[h,t] = stepz(b,a)
[h,t] = stepz(sos)
[h,t] = stepz(d)
[h,t] = stepz(...,n)
[h,t] = stepz(...,n,fs)
stepz(...)

説明

[h,t] = stepz(b,a) では、分子係数 b と分母係数 a をもつフィルターのステップ応答が返されます。stepz では、サンプル数が選択され、応答が列ベクトル h で、サンプル時間が列ベクトル t で返されます (ここで、t = [0:n-1]'n = length(t) は自動的に計算されます)。

[h,t] = stepz(sos) では、2 次セクション型行列 sos のステップ応答が返されます。sos は K 行 6 列の行列で、セクション数 K は 2 以上でなければなりません。セクション数が 2 未満の場合、stepz は入力を分子ベクトル b とみなします。sos の各行は 2 次 (双二次) フィルターの係数に対応しています。sos 行列の i 行目は [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)] に対応しています。

[h,t] = stepz(d) では、デジタル フィルター d のステップ応答が返されます。d を周波数応答仕様に基づいて生成するには、関数 designfilt を使用します。

[h,t] = stepz(...,n) では、n が整数 (t = [0:n-1]') のとき、ステップ応答の最初の n サンプルが計算されます。n が整数のベクトルである場合、ステップ応答は、その整数値の時点 (0 を時間軸の原点として) のみで計算されます。

[h,t] = stepz(...,n,fs) では、n 個のサンプルが計算され、サンプル間隔が 1/fs 単位の間隔になるような長さ n のベクトル t が生成されます。fs の単位は Hz です。

出力引数なしで stepz(...) を使用すると、フィルターのステップ応答がプロットされます。フィルター係数または2 次セクション型行列を入力した場合、現在の Figure ウィンドウが使用されます。digitalFilter を入力している場合、ステップ応答は fvtool で表示できます。

メモ

stepz への入力が単精度の場合、ステップ応答は単精度演算で計算されます。出力 h は単精度です。

すべて折りたたむ

正規化された電力半値周波数 0.4π ラジアン/サンプルをもつ 3 次のバタワース フィルターを作成します。そのステップ応答を表示します。

[b,a] = butter(3,0.4);
stepz(b,a)
grid

designfilt を使って同じフィルターを作成し、fvtool を使用してそのステップ応答を表示します。

d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.4);
stepz(d)

正規化された通過帯域周波数 0.4π ラジアン/サンプルをもつ 4 次のローパス楕円フィルターを設計します。0.5 dB の通過帯域リップルと 20 dB の阻止帯域の減衰量を指定します。フィルターのステップ応答の最初の 50 個のサンプルをプロットします。

[b,a] = ellip(4,0.5,20,0.4);
stepz(b,a,50)
grid

designfilt を使って同じフィルターを作成し、fvtool を使用してそのステップ応答を表示します。

d = designfilt('lowpassiir','FilterOrder',4,'PassbandFrequency',0.4, ...
               'PassbandRipple',0.5,'StopbandAttenuation',20, ...
               'DesignMethod','ellip');
stepz(d,50)

アルゴリズム

stepz では、以下のコマンドを使用して長さ n のステップ シーケンスがフィルター処理され、

filter(b,a,ones(1,n))

stem を使用して、結果をプロットします。

長さを自動設定する場合に n を計算するために、stepz では、FIR の場合は n = length(b) を使用し、length(a) が 1 より大きい場合は p = roots(a) を使用して極をまず検出します。

フィルターが不安定な場合、n は最大の極をもつ項が元の値の 106 倍に達する位置に存在するものとして選択されます。

フィルターが安定している場合、n は、振幅が最大の極をもつ項が元の振幅の 5 × 10–5 倍になる位置に存在するものとして選択されます。

フィルターが振動する (単位円上の極のみ) 場合、stepz では、最も遅い振動の周期の 5 倍が n とされます。

フィルターに振動項と減衰項の両方が含まれている場合は、発振が最も遅くなる 5 周期、または、(単位でない) 最大の振幅の極をもつ項が元の振幅の 5 × 10–5 倍になる値の、いずれか大きい方に n が選択されます。

stepz では、分子多項式に遅延を含むことができます。遅延の数は、サンプル数の計算に組み込まれています。

R2006a より前に導入