Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

impz

離散時間フィルター System object のインパルス応答

説明

[impResp,t] = impz(sysobj) は、フィルター System object™ のインパルス応答を計算し、応答を列ベクトル impResp で、時間のベクトル (またはサンプル間隔) を t で返します。ここで、t = [0 1 2 ...k-1]' で、k はフィルター係数の数です。

[impResp,t] = impz(sysobj,n)floor(n) 1 秒間隔でインパルス応答を計算します。時間ベクトル t(0:floor(n)-1)' と同等です。

[impResp,t] = impz(sysobj,n,fs)floor(n) 1/fs 秒間隔でインパルス応答を計算します。時間ベクトル t(0:floor(n)-1)'/fs と同等です。

[impResp,t] = impz(sysobj,[],fs)k 1/fs 秒間隔でインパルス応答を計算します。k はフィルター係数の数です。時間ベクトル t(0:k-1)'/fs と同等です。

[impResp,t] = impz(sysobj,Arithmetic=arithType) は、前の構文のいずれかを使用して、arithType で指定された演算に基づいてインパルス応答を計算します。

impz(sysobj) は、fvtool を使用して、フィルター System object sysobj のインパルス応答をプロットします。

impz は、実数のフィルターと複素数のフィルターの両方に使用できます。出力引数を省略した場合、impz はインパルス応答の実数部のみをプロットします。

その他の入力オプションについては、Signal Processing Toolbox™ の impz を参照してください。

すべて折りたたむ

ナイキスト周波数の 0.4 倍のカットオフ周波数をもつ 4 次ローパス楕円フィルターの離散時間フィルターを作成します。2 次セクション構造を使用して、量子化誤差を低減させます。インパルス応答の最初の 50 個のサンプルを基準インパルス応答と共にプロットします。

d = fdesign.lowpass(.4,.5,1,80);

プロトタイプ フィルターの設計オブジェクトを作成します。ellip を使用して、最小次数の離散時間 SOS フィルターを設計します。

sosFilt = design(d,"ellip",Systemobject=true)
sosFilt = 
  dsp.SOSFilter with properties:

            Structure: 'Direct form II'
    CoefficientSource: 'Property'
            Numerator: [4x3 double]
          Denominator: [4x3 double]
       HasScaleValues: true
          ScaleValues: [0.7277 0.8290 1.3494 0.0048 1]

  Use get to show all properties

インパルス応答をプロットします。

impz(sosFilt);

Figure Figure 1: Impulse Response contains an axes object. The axes object with title Impulse Response, xlabel Samples, ylabel Amplitude contains an object of type stem.

入力引数

すべて折りたたむ

インパルス応答ベクトルの長さ。正の整数として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

インパルス応答の計算で使用するサンプリング周波数。正のスカラーとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

フィルター解析で使用される演算。'double''single'、または 'Fixed' として指定します。演算入力が指定されず、フィルター System object がロック解除状態の場合、解析ツールは倍精度フィルターを使用します。演算入力が指定されず、System object がロックされている場合、関数はロックされた入力のデータ型に基づいて解析を実行します。

'Fixed' 値は、固定小数点プロパティのみをもつフィルター System object に適用されます。

'Arithmetic' 入力引数が 'Fixed' として指定され、フィルター オブジェクトの係数のデータ型が 'Same word length as input' に設定されている場合、演算解析は System object がロック解除されているかロックされているかに応じて異なります。

  • ロック解除 –– 解析オブジェクト関数は係数のデータ型を判断できません。関数は、係数のデータ型が符号付き、16 ビット語長、自動スケーリングであると仮定します。関数は、この仮定に基づいて固定小数点解析を実行します。

  • ロック –– 入力のデータ型が 'double' または 'single' の場合、解析オブジェクト関数は係数のデータ型を判断できません。関数は、係数のデータ型が符号付き、16 ビット語長、自動スケーリングであると仮定します。関数は、この仮定に基づいて固定小数点解析を実行します。

System object がロックされているかロック解除されているかを確認するには、関数 isLocked を使用します。

演算入力が 'Fixed' として指定され、フィルター オブジェクトの係数のデータ型がカスタム数値型に設定されている場合、オブジェクト関数はカスタム数値データ型に基づいて固定小数点解析を実行します。

出力引数

すべて折りたたむ

インパルス応答。n 要素のベクトルとして返されます。n を指定しない場合、インパルス応答ベクトルの長さは、フィルターの係数の数と等しくなります。

データ型: double

秒単位の長さ n の時間ベクトル。t は、範囲 (0:floor(n)-1)'/fs における n 個の等間隔の点で構成されます。n を指定しない場合、関数はフィルターの係数の数を使用します。

データ型: double

バージョン履歴

R2011a で導入

すべて展開する