メインコンテンツ

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

designfilt

R2025b

デジタル フィルターの設計

designfilt は、スクリプトや関数内での関数の呼び出しの修正には使用できなくなりました。詳細については、バージョン履歴を参照してください。

説明

d = designfilt(resp,Name,Value) は、応答タイプ resp の digitalFilter オブジェクトまたはフィルター System object™ (DSP System Toolbox™ ライセンスが必要) を設計します。resp の例には、'lowpassfir' や 'bandstopiir' があります。さらに、名前と値の引数のセットを使用してフィルターを規定します。どのような仕様セットが使用可能であるかは、resp によって異なり、以下の組み合わせにより構成されます。

  • "周波数制約" は、フィルターにより目的の動作が提示される周波数に相当します。例としては 'PassbandFrequency' と 'CutoffFrequency' があります。周波数制約は常に指定しなければなりません。

  • "振幅の制約" では、特定の周波数範囲でのフィルターの動作を記述します。例としては 'PassbandRipple' と 'StopbandAttenuation' があります。未指定の振幅の制約には、designfilt により既定値が設定されます。任意振幅の設計では、目的の振幅のベクトルを必ず指定しなければなりません。

  • フィルター次数:一部の設計法では次数を指定できます。それ以外では最小次数設計が生成されます。つまり、指定された制約を満たす最小のフィルターが生成されます。

  • "設計法" はフィルターの設計に使用されるアルゴリズムです。例としては、制約付き最小二乗 ('cls') とカイザー ウィンドウ処理 ('kaiserwin') があります。仕様セットによっては、選択可能な設計法は複数あります。それ以外の場合、目的の仕様を満たすために利用できる設計法は 1 つのみです。

  • "設計法オプション" は、特定の設計法に特有のパラメーターです。例としては、'window' 法の 'Window' と、任意振幅等リップル設計の最適化用の 'Weights' があります。指定されなかった設計オプションに対しては、designfilt により既定値が設定されます。

  • "サンプル レート" は、フィルター処理の対象となる周波数です。designfilt の既定サンプル レートは 2 Hz です。この値を使用することで、正規化周波数による処理相当になります。

  • "実装" パラメーターによって、designfilt 関数がフィルター設計を実装する方法が決まります。 (R2023b 以降)

メモ

コマンド ラインに不完全なまたは矛盾する名前と値の引数のセットを指定すると、フィルター設計アシスタントを開くよう、designfilt により提案されます。このアシスタントは、フィルターの設計を支援し、修正した MATLAB® コードをコマンド ラインに貼り付けます。

正しくない仕様セットを使用してスクリプトまたは関数から designfilt を呼び出すと、designfilt はフィルター設計アシスタントを開くリンクのついたエラー メッセージを発行します。このアシスタントは、フィルターの設計を支援し、修正した MATLAB コードをコマンド ラインに貼り付けます。設計したフィルターはワークスペースに保存されます。

  • digitalFilter d で入力信号 dataIn をフィルター処理するには、関数 filter を dataOut = filter(d,dataIn) の形式で使用します。IIR フィルターの場合、関数 filter は直接型 II の実装を使用します。関数 filtfilt と fftfilt を digitalFilter オブジェクトと使用することもできます。

    d が digitalFilter オブジェクトの場合、dataOut = filter(d,dataIn) の形式で filter 関数を使用して、入力信号 dataIn をフィルター処理します。IIR フィルターの場合、関数 filter は直接型 II の実装を使用します。関数 filtfilt と fftfilt を digitalFilter オブジェクトと使用することもできます。

    d がフィルター System object である場合、入力データをオブジェクトに渡し、オブジェクト アルゴリズム filtObj = dsp.FIRFilter; dataOut = filtObj(dataIn) を実行します。 (R2023b 以降)

  • フィルター アナライザーを使用してフィルター d を可視化します。

  • d が digitalFilter オブジェクトの場合、d.Numerator および d.Denominator と入力して、フィルターの分子係数と分母係数を取得します。IIR フィルターでは、係数は 2 次のカスケード型伝達関数として表されます。

    d が dsp.FIRFilter オブジェクトなどの FIR フィルター System object である場合は、d.Numerator と入力してフィルター係数を取得します。d が dsp.SOSFilter オブジェクトなどの IIR フィルター System object である場合は、d.Numerator および d.Denominator と入力して、フィルターの分子係数と分母係数を取得します。 (R2023b 以降)

  • digitalFilter オブジェクトで使用可能なフィルター処理関数および解析関数のリストについては、digitalFilter を参照してください。

    DSP System Toolbox のフィルター System object でサポートされているフィルター処理および解析関数の一覧については、Analysis Functions for Filter System Objects (DSP System Toolbox)を参照してください。 (R2023b 以降)

例

designfilt(d) を使用することにより既存のデジタル フィルター d の編集が可能です。フィルター仕様が読み込まれたフィルター設計アシスタントが開かれ、その内容を変更できます。この方法によってのみ、digitalFilter オブジェクトは編集できます。それ以外の場合、このオブジェクトのプロパティは読み取り専用です。

例

すべて折りたたむ

低域カットオフ周波数が 400 Hz で、高域カットオフ周波数が 450 Hz である 20 次のバンドパス FIR フィルターを設計します。サンプル レートは 1500 Hz です。

bpfilt = designfilt("bandpassfir", ...
    FilterOrder=20,CutoffFrequency1=400, ...
    CutoffFrequency2=450,SampleRate=1500);

フィルターの振幅応答を可視化します。

freqz(bpfilt.Numerator,1,[],1500)

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title Magnitude, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

これを使用して、1,000 サンプルのランダム信号をフィルター処理します。

dataIn = randn(1000,1);
dataOut = filter(bpfilt,dataIn);

低域側の 3 dB の周波数が 400 Hz で、高域側の 3 dB の周波数が 450 Hz である 20 次のバンドパス IIR フィルターを設計します。サンプル レートは 1500 Hz です。

bpfilt = designfilt("bandpassiir", ...
    FilterOrder=20,HalfPowerFrequency1=400, ...
    HalfPowerFrequency2=450,SampleRate=1500);

フィルターの周波数応答を可視化します。

freqz(bpfilt,[],1500)

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title Magnitude, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

これを使用して、1,000 サンプルのランダム信号をフィルター処理します。

dataIn = randn(1000,1);
dataOut = filter(bpfilt,dataIn);

入力引数

すべて折りたたむ

フィルター応答およびタイプ。文字ベクトルまたは string スカラーで指定します。

このオプションを選択して有限インパルス応答 (FIR) ローパス フィルターを設計します。次の例では、この表の 5 番目の仕様セットが使用されています。

d = designfilt('lowpassfir', ...        % Response type
       'FilterOrder',25, ...            % Filter order
       'PassbandFrequency',400, ...     % Frequency constraints
       'StopbandFrequency',550, ...
       'DesignMethod','ls', ...         % Design method
       'PassbandWeight',1, ...          % Design method options
       'StopbandWeight',2, ...
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)

このオプションを選択して無限インパルス応答 (IIR) ローパス フィルターを設計します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('lowpassiir', ...        % Response type
       'PassbandFrequency',400, ...     % Frequency constraints
       'StopbandFrequency',550, ...
       'PassbandRipple',4, ...          % Magnitude constraints
       'StopbandAttenuation',55, ...
       'DesignMethod','ellip', ...      % Design method
       'MatchExactly','passband', ...   % Design method options
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

逆 sinc ローパス有限インパルス応答 (FIR) フィルターを設計するには、このオプションを選択します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('isinclpfir', ...          % Response type
       'PassbandFrequency',0.45, ...      % Frequency constraints
       'StopbandFrequency',0.55 , ...
       'PassbandRipple',1, ...
       'StopbandAttenuation',60, ...
       'DesignMethod','equiripple', ...   % Design method
       'DensityFactor',16, ...            % Design options
       'MinOrder','any', ...
       'StopbandShape','flat', ...
       'SincFrequencyFactor',0.5, ...
       'SincPower',1, ...
       'PhaseConstraint','linear',...
       'SystemObject',true)              
 

  • 'FilterOrder' (必須の場合) またはいずれかの必須周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

このオプションを選択して有限インパルス応答 (FIR) ハイパス フィルターを設計します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('highpassfir', ...       % Response type
       'StopbandFrequency',400, ...     % Frequency constraints
       'PassbandFrequency',550, ...
       'StopbandAttenuation',55, ...    % Magnitude constraints
       'PassbandRipple',4, ...
       'DesignMethod','kaiserwin', ...  % Design method
       'ScalePassband',false, ...       % Design method options
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)

このオプションを選択して無限インパルス応答 (IIR) ハイパス フィルターを設計します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('highpassiir', ...       % Response type
       'StopbandFrequency',400, ...     % Frequency constraints
       'PassbandFrequency',550, ...
       'StopbandAttenuation',55, ...    % Magnitude constraints
       'PassbandRipple',4, ...
       'DesignMethod','cheby1', ...     % Design method
       'MatchExactly','stopband', ...   % Design method options
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

逆 sinc ハイパス有限インパルス応答 (FIR) フィルターを設計するには、このオプションを選択します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('isinchpfir', ...          % Response type
       'StopbandFrequency',0.45 , ...     % Frequency constraints
       'PassbandFrequency',0.55, ...             
       'PassbandRipple',1, ...            % Magnitude constraints
       'StopbandAttenuation',60, ...
       'DesignMethod','equiripple', ...   % Design method
       'DensityFactor',16, ...            % Design options
       'MinOrder','any', ...
       'StopbandShape','flat', ...
       'SincFrequencyFactor',0.5, ...
       'SincPower',1, ...
       'PhaseConstraint','linear',...
       'SystemObject',true)              
 

  • 'FilterOrder' (必須の場合) またはいずれかの必須周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

このオプションを選択して有限インパルス応答 (FIR) バンドパス フィルターを設計します。次の例では、この表の 4 番目の仕様セットが使用されています。

d = designfilt('bandpassfir', ...       % Response type
       'FilterOrder',86, ...            % Filter order
       'StopbandFrequency1',400, ...    % Frequency constraints
       'PassbandFrequency1',450, ...
       'PassbandFrequency2',600, ...
       'StopbandFrequency2',650, ...
       'DesignMethod','ls', ...         % Design method
       'StopbandWeight1',1, ...         % Design method options
       'PassbandWeight', 2, ...
       'StopbandWeight2',3, ...
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)

このオプションを選択して無限インパルス応答 (IIR) バンドパス フィルターを設計します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('bandpassiir', ...       % Response type
       'StopbandFrequency1',400, ...    % Frequency constraints
       'PassbandFrequency1',450, ...
       'PassbandFrequency2',600, ...
       'StopbandFrequency2',650, ...
       'StopbandAttenuation1',40, ...   % Magnitude constraints
       'PassbandRipple',1, ...
       'StopbandAttenuation2',50, ...
       'DesignMethod','ellip', ...      % Design method
       'MatchExactly','passband', ...   % Design method options
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)

このオプションを選択して有限インパルス応答 (FIR) バンドストップ フィルターを設計します。次の例では、この表の 4 番目の仕様セットが使用されています。

d = designfilt('bandstopfir', ...       % Response type
       'FilterOrder',32, ...            % Filter order
       'PassbandFrequency1',400, ...    % Frequency constraints
       'StopbandFrequency1',500, ...
       'StopbandFrequency2',700, ...
       'PassbandFrequency2',850, ...
       'DesignMethod','ls', ...         % Design method
       'PassbandWeight1',1, ...         % Design method options
       'StopbandWeight', 3, ...
       'PassbandWeight2',5, ...
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)

このオプションを選択して無限インパルス応答 (IIR) バンドストップ フィルターを設計します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('bandstopiir', ...       % Response type
       'PassbandFrequency1',400, ...    % Frequency constraints
       'StopbandFrequency1',500, ...
       'StopbandFrequency2',700, ...
       'PassbandFrequency2',850, ...
       'PassbandRipple1',1, ...         % Magnitude constraints
       'StopbandAttenuation',55, ...
       'PassbandRipple2',1, ...
       'DesignMethod','ellip', ...      % Design method
       'MatchExactly','both', ...       % Design method options
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 振幅の制約を省略すると、designfilt は既定値を使用します。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

マルチノッチ IIR フィルターを設計するには、このオプションを選択します。次の例では、この表の 2 番目の仕様セットが使用されています。

d = designfilt('notchiir', ...
    'FilterOrder',[6 6],'CenterFrequency',[2.5 7.5], ...
    'QualityFactor',[2.5 7.5],'PassbandRipple',1, ...
    'SampleRate',20,'SystemObject',true);

以下は櫛形ノッチ フィルターを設計する例です。

d = designfilt('notchiir', ...
    'NumNotches',10,'NotchLocations','Harmonic',...
    'Bandwidth',0.125,'BandwidthGain',-3,...
    'ShelvingFilterOrder',1,'SystemObject',true);
  • 'FilterOrder' (該当する場合) を省略するか、周波数制約または振幅の制約のいずれかを省略すると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

マルチピーク IIR フィルターを設計するには、このオプションを選択します。次の例では、この表の 2 番目の仕様セットが使用されています。

d = designfilt('peakiir', ...
    'FilterOrder',[6 6],'CenterFrequency',[2.5 7.5], ...
    'QualityFactor',[2.5 7.5],'PassbandRipple',1, ...
    'SampleRate',20,'SystemObject',true);

以下はピークの櫛形フィルターを設計する例です。

d = designfilt('peakiir', ...
    'NumPeaks',10,'PeakLocations','Harmonic',...
    'Bandwidth',0.125,'BandwidthGain',-3,...
    'ShelvingFilterOrder',1,'SystemObject',true);
  • 'FilterOrder' (該当する場合) を省略するか、周波数制約または振幅の制約のいずれかを省略すると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

このオプションを選択して有限インパルス応答 (FIR) 微分器フィルターを設計します。次の例では、この表の 2 番目の仕様セットが使用されています。

d = designfilt('differentiatorfir', ... % Response type
       'FilterOrder',42, ...            % Filter order
       'PassbandFrequency',400, ...     % Frequency constraints
       'StopbandFrequency',500, ...
       'DesignMethod','equiripple', ... % Design method
       'PassbandWeight',1, ...          % Design method options
       'StopbandWeight',4, ...
       'SampleRate',2000)               % Sample rate

  • 部分バンド微分器を設計する際に 'FilterOrder' (必須の場合) またはいずれかの周波数制約を省略すると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

フィルター次数の引数名周波数制約の引数名振幅の制約の引数名'DesignMethod' の引数値設計オプションの引数名

'FilterOrder'

N/A

N/A

'equiripple' (既定)

N/A

'ls'

N/A

'FilterOrder'

'PassbandFrequency'

'StopbandFrequency'

N/A

'equiripple' (既定)

'PassbandWeight'

'StopbandWeight'

'ls'

N/A

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2025a 以降)

フィルター次数の引数名周波数制約の引数名振幅の制約の引数名'DesignMethod' の引数値設計オプションの引数名

N/A (最小次数設計)

'PassbandFrequency'

'StopbandFrequency'

'PassbandRipple'

'StopbandAttenuation'

'equiripple'

'DensityFactor'

このオプションを選択して有限インパルス応答 (FIR) ヒルベルト変換器フィルターを設計します。次の例では、この表の仕様セットが使用されています。

d = designfilt('hilbertfir', ...        % Response type
       'FilterOrder',12, ...            % Filter order
       'TransitionWidth',400, ...       % Frequency constraints
       'DesignMethod','ls', ...         % Design method
       'SampleRate',2000)               % Sample rate

  • 'FilterOrder' (必須の場合) または 'TransitionWidth' を省略すると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt はヒルベルト変換器に対応する既定の設計法を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

フィルター次数の引数名周波数制約の引数名振幅の制約の引数名'DesignMethod' の引数値設計オプションの引数名

'FilterOrder'

'TransitionWidth'

N/A

'equiripple' (既定)

N/A

'ls'

N/A

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2025a 以降)

フィルター次数の引数名周波数制約の引数名振幅の制約の引数名'DesignMethod' の引数値設計オプションの引数名

N/A (最小次数設計)

'TransitionWidth'

'PassbandRipple'

'equiripple'

'DensityFactor'

'FIRType'

このオプションを選択して任意振幅応答の有限インパルス応答 (FIR) フィルターを設計します。次の例では、この表の 2 番目の仕様セットが使用されています。

d = designfilt('arbmagfir', ...         % Response type
       'FilterOrder',88, ...            % Filter order
       'NumBands',4, ...                % Frequency constraints
       'BandFrequencies1',[0 20], ...
       'BandFrequencies2',[25 40], ...
       'BandFrequencies3',[45 65], ...
       'BandFrequencies4',[70 100], ...
       'BandAmplitudes1',[2 2], ...     % Magnitude constraints
       'BandAmplitudes2',[0 0], ...
       'BandAmplitudes3',[1 1], ...
       'BandAmplitudes4',[0 0], ...
       'DesignMethod','ls', ...         % Design method
       'BandWeights1',[1 1]/10, ...     % Design method options
       'BandWeights2',[3 1], ...
       'BandWeights3',[2 4], ...
       'BandWeights4',[5 1], ...
       'SampleRate',200)                % Sample rate

  • 'FilterOrder'、周波数制約または振幅の制約のいずれかが省略されると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

フィルター次数の引数名周波数制約の引数名振幅の制約の引数名'DesignMethod' の引数値設計オプションの引数名

'FilterOrder'

'Frequencies'

'Amplitudes'

'freqsamp' (既定)

'Window'

'equiripple'

'Weights'

'ls'

'Weights'

'FilterOrder'

'NumBands'

'BandFrequencies1'

…

'BandFrequenciesN'

'BandAmplitudes1'

…

'BandAmplitudesN'

'equiripple' (既定)

'BandWeights1'

…

'BandWeightsN'

'ls'

'BandWeights1'

…

'BandWeightsN'

DSP System Toolbox ライセンスをお持ちの場合、designfilt 関数は以下の追加の設計仕様をサポートします。 (R2025a 以降)

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

任意の振幅応答の無限インパルス応答 (IIR) フィルターを設計するには、このオプションを選択します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('arbmagiir', ...
    'FilterOrder',20,'Frequencies',linspace(0,1,30),...
    'Amplitudes',[ones(1,7) zeros(1,8) ones(1,8) zeros(1,7)],...
    'SystemObject',true);

  • 'FilterOrder'、周波数制約または振幅の制約のいずれかが省略されると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

任意の振幅応答と位相応答の有限インパルス応答 (FIR) フィルターを設計するには、このオプションを選択します。次の例では、この表の 2 番目の仕様セットが使用されています。

d = designfilt('arbmagnphasefir', ...
        'FilterOrder',20,'NumBands',2, ...
        'BandFrequencies1',[0 0.25],...
        'BandFrequencyResponse1',exp(-12*j*pi*linspace(0,...
        1,2)),'BandFrequencies2',[0.5 0.75], ...
        'BandFrequencyResponse2',exp(-12*j*pi*linspace(0,1,2)), ...
        'SystemObject',true);

  • 'FilterOrder'、周波数制約または振幅の制約のいずれかが省略されると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

任意の振幅応答と位相応答の無限インパルス応答 (IIR) フィルターを設計するには、このオプションを選択します。次の例では、この表の仕様セットが使用されています。

d = designfilt('arbmagnphaseiir', ...
        'FilterOrder',20,...
        'Frequencies',[0 0.25 1],...
        'FrequencyResponse',[complex(1,2) complex(3,4) complex(5,6)],...
        'DesignMethod','ls',...
        'SystemObject',true)

  • 'FilterOrder'、周波数制約または振幅の制約のいずれかが省略されると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

フィルター次数の引数名周波数制約の引数名振幅の制約の引数名'DesignMethod' の引数値設計オプションの引数名

'FilterOrder'

'Frequencies'

'FrequencyResponse'

'ls'

'Weights'

'NumeratorOrder'

'DenominatorOrder'

'Frequencies'

'FrequencyResponse'

'ls'

'Weights'

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

任意群遅延無限インパルス応答 (IIR) フィルターを設計するには、このオプションを選択します。次の例では、この表の 1 番目の仕様セットが使用されています。

d = designfilt('arbgrpdelayiir', ...
    'FilterOrder',20,'Frequencies',linspace(0,1,30),...
    'GroupDelayResponse',[10*ones(1,15) linspace(10,1,15)],...
    'SystemObject',true);

  • 'FilterOrder'、周波数制約または振幅の制約のいずれかが省略されると、designfilt によってエラーが生成されます。

  • 'DesignMethod' を省略すると、designfilt は仕様セットに対応する既定の設計法を使用します。

  • 設計法オプションを省略すると、designfilt は選択された設計法に対応する既定値を使用します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

  • フィルター System object を生成するには、'SystemObject' 引数を true に設定します。

R2025a 以降

メモ

この応答は、DSP System Toolbox のライセンスを所有している場合にのみ使用可能です。

非整数遅延 FIR フィルターを設計するには、このオプションを選択します。

d = designfilt('fracdelayfir', ...
    'FilterOrder',45,'FractionalDelay',0.6,...
    'SampleRate',20,'SystemObject',true);
  • 'FilterOrder' または 'Bandwidth' のいずれかを指定しなければなりませんが、両方指定することはできません。両方の引数を指定すると、designfilt 関数はエラーを生成します。

  • 'SampleRate' を省略すると、designfilt により 2 Hz に設定されます。

フィルター次数の引数名周波数制約の引数名振幅の制約の引数名'DesignMethod' の引数値設計オプションの引数名

'FilterOrder'

N/A

N/A

N/A

'FractionalDelay'

N/A

'Bandwidth'

N/A

N/A

'FractionalDelay'

データ型: char | string

デジタル フィルター。designfilt によって生成される digitalFilter オブジェクトで指定します。この入力を使用して、既存の digitalFilter の仕様を変更します。

名前と値の引数

すべて展開する

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: ローパス FIR フィルターを指定する場合は、FilterOrder=20,CutoffFrequency=0.4 で十分です。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: ローパス FIR フィルターを指定する場合は、'FilterOrder',20,'CutoffFrequency',0.4 で十分です。

すべての名前と値の組み合わせが有効なわけではありません。有効な組み合わせは、必要とするフィルター応答と設計の周波数および振幅の制約によって異なります。

サンプル レート

すべて展開する

サンプル レート。正のスカラーとしてヘルツ単位で指定します。正規化周波数を使用するには、'SampleRate' を 2 に設定するか、単に省略します。

データ型: double

フィルター次数

すべて展開する

フィルター次数 N。正の整数として指定します。

データ型: double

IIR フィルターの分子次数。正の整数として指定します。

データ型: double

IIR フィルターの分母の次数。正の整数として指定します。

データ型: double

R2025a 以降

ノッチ周波数のソース。次のいずれかとして指定します。

  • 'Specify' –– CenterFrequency プロパティを使用してノッチの中心周波数を指定します。

  • 'Harmonic' –– 櫛形フィルターを使用して、調和関係にある一連の周波数を減衰させます。NumNotches プロパティを使用して高調波の数を指定します。

依存関係

このプロパティは、フィルター応答を 'notchiir' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

両側スペクトル内の高調波ノッチの数。正の整数として指定します。関数は、この値を使用して、櫛形フィルター内の調和関係にあるノッチ周波数の数を決定します。

依存関係

このプロパティは、フィルター応答を 'notchiir' に設定し、NotchLocations を 'Harmonic' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

ピーク周波数のソース。次のいずれかとして指定します。

  • 'Specify' –– CenterFrequency プロパティを使用してピークの中心周波数を指定します。

  • 'Harmonic' –– 櫛形フィルターを使用して、調和関係にある一連の周波数を増幅させます。NumPeaks プロパティを使用して高調波の数を指定します。

依存関係

このプロパティは、フィルター応答を 'peakiir' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

両側スペクトル内の高調波ピークの数。正の整数として指定します。関数は、この値を使用して、櫛形フィルター内の調和関係にあるピーク周波数の数を決定します。

依存関係

このプロパティは、フィルター応答を 'peakiir' に設定し、PeakLocations を 'Harmonic' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

緩い勾配のフィルター次数 Nsh。正の整数として指定します。緩い勾配のフィルター次数によって、ピークまたはノッチの鮮鋭度が決まります。緩い勾配のフィルター次数の値が大きいほど、ピークまたはノッチの傾きが急になります。ノッチ フィルターまたはピーク フィルターの次数は L×Nsh で指定します。ここで、L は NumNotches または NumPeaks を使用して指定するノッチまたはピークの数です。

依存関係

このプロパティは、以下を設定した場合にのみ適用されます。

  • フィルター応答を 'notchiir' または 'peakiir' に設定。

  • NotchLocations または PeakLocations を 'Harmonic' に設定。

データ型: double

周波数制約

すべて展開する

通過帯域周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。

'PassbandFrequency1' はバンドパスまたはバンドストップ設計の低域側の通過帯域周波数です。

'PassbandFrequency2' はバンドパスまたはバンドストップ設計の高域側の通過帯域周波数です。

データ型: double

阻止帯域周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。

'StopbandFrequency1' はバンドパス設計またはバンドストップ設計の低域側の阻止帯域周波数です。

'StopbandFrequency2' はバンドパスまたはバンドストップ設計の高域側の阻止帯域周波数です。

データ型: double

6 dB の周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。

'CutoffFrequency1' はバンドパスまたはバンドストップ設計の低域側の 6 dB の周波数です。

'CutoffFrequency2' はバンドパスまたはバンドストップ設計の高域側の 6 dB の周波数です。

データ型: double

3 dB の周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。

'HalfPowerFrequency1' はバンドパスまたはバンドストップ設計の低域側の 3 dB の周波数です。

'HalfPowerFrequency2' はバンドパスまたはバンドストップ設計の高域側の 3 dB の周波数です。

データ型: double

正規化周波数単位でのフィルター通過帯域の帯域幅。'HalfPowerFrequency2' と 'HalfPowerFrequency1' の差よりも小さい正のスカラーとして指定します。

依存関係

このプロパティは、フィルター応答を 'bandpassiir' または 'bandstopiir' に設定した場合にのみ適用されます。

データ型: double

2 つの阻止帯域周波数間の周波数の幅。正のスカラーとして指定します。

依存関係

このプロパティは、フィルター応答を 'bandpassiir' または 'bandstopiir' に設定した場合にのみ適用されます。

データ型: double

ヒルベルト変換器の通過帯域と阻止帯域の間の遷移領域の幅。正のスカラーとして指定します。

データ型: double

応答周波数。ベクトルとして指定します。この変数を使用して、任意の振幅応答と位相応答のフィルターが目的の振幅と位相値をもつ周波数をリストします。周波数は単調増加し、ナイキスト範囲内になければなりません。ベクトルの最初の要素は 0 または –fs/2 でなければなりません。ここで、fs はサンプル レートです。また、最後の要素は fs/2 でなければなりません。サンプル レートを指定しない場合は、designfilt は既定値の 2 Hz を使用します。

データ型: double

R2025a 以降

周波数応答値。ベクトルとして指定します。この変数を使用して、'Frequencies' 引数で指定した周波数における任意の振幅と位相の応答値を指定します。このベクトルの長さは、'Frequencies' ベクトルの長さと等しくなければなりません。

データ型: double
複素数のサポート: あり

R2025a 以降

群遅延応答値。ベクトルとして指定します。この変数を使用して、'Frequencies' 引数で指定した周波数における群遅延応答値を指定します。このベクトルの長さは、'Frequencies' ベクトルの長さと等しくなければなりません。

データ型: double

マルチバンド設計の帯域数。10 以下の正の整数スカラーとして指定します。

データ型: double

マルチバンド応答周波数。数値ベクトルとして指定します。ここで、'BandFrequenciesi' (i は 1 から 'NumBands' まで変化) は、マルチバンド設計の i 番目の帯域がそこで目的の値 'BandAmplitudesi'、'BandFrequencyResponsei'、'BandGroupDelayResponsei' をもつ周波数を含むベクトルです。可能な 'NumBands' は最大 10 です。周波数はナイキスト範囲内になければならず、単調増加の順に指定しなければなりません。隣接する周波数帯域はジャンクションで振幅が同じになっていなければなりません。

データ型: double

R2025a 以降

マルチバンド周波数応答値。数値ベクトルとして指定します。'BandFrequencyResponsei' (i は 1 から 'NumBands' まで変化) は、'BandFrequenciesi' で与えられる周波数値で指定された i 番目の帯域の周波数応答値を含むベクトルです。可能な 'NumBands' は最大 10 です。

データ型: double
複素数のサポート: あり

R2025a 以降

マルチバンド群遅延応答値。数値ベクトルとして指定します。'BandGroupDelayResponsei' (i は 1 から 'NumBands' まで変化) は、'BandFrequenciesi' で与えられる周波数値で指定された i 番目の帯域の群遅延応答値を含むベクトルです。可能な 'NumBands' は最大 10 です。

データ型: double

R2025a 以降

ノッチ IIR フィルターまたはピーク IIR フィルターの中心周波数 f0。スカラーまたはベクトルとして指定します。中心周波数の値は 0 < f0 < fs/2 の範囲になければなりません。

ベクトルとして指定する場合、この引数の長さは、FilterOrder 引数および QualityFactor 引数の長さと等しくなければなりません。SampleRate プロパティで入力サンプル レートを指定する場合は、中心周波数の値を Hz 単位で指定します。

依存関係

このプロパティは、フィルター応答を 'notchiir' または 'peakiir' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

ノッチ IIR フィルターまたはピーク IIR フィルターの品質係数 q。正のスカラーまたはベクトルとして指定します。ベクトルとして指定する場合、この引数の長さは CenterFrequency 引数の長さと等しくなければなりません。

フィルターの品質係数は、-3 dB 点で計算された 3 dB 帯域幅 BW に対するピークまたはノッチの最低中心周波数 f0 (DC を含まない) の比として定義され、q = f0/BW で表されます。

依存関係

このプロパティは、フィルター応答を 'notchiir' または 'peakiir' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

ノッチ IIR フィルターまたはピーク IIR フィルターの 3 dB 帯域幅 BW。スカラーまたはベクトルとして指定します。

NotchLocations または PeakLocations の設定に応じて、以下のようになります。

  • 'Specify' –– 帯域幅は、数値スカラーまたは NumNotches プロパティまたは NumPeaks プロパティの長さと等しい長さのベクトルでなければなりません。帯域幅の値は、0 < BW < fs/2 の範囲になければなりません。

  • 'Harmonic' –– 帯域幅は、0 < BW < fs/(2 × NumNotches または NumPeaks) の範囲の数値スカラーでなければなりません。

既定では、関数はピークまたはノッチの中心周波数から -3 dB の点で帯域幅を計算します。たとえば、BW を 0.01 に設定すると、-3 dB 点がノッチまたはピークの中心から +/- 0.005 (正規化周波数) になります。

依存関係

このプロパティは、フィルター応答を 'notchiir' または 'peakiir' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

ターゲットの複合帯域幅。0.999×fs/2 未満の正のスカラーとして指定します。ここで、fs は入力サンプル レートです。これは、設計が満たす必要のある複合帯域幅の値です。複合帯域幅は、ゲイン帯域幅 (DSP System Toolbox)と群遅延帯域幅 (DSP System Toolbox)の最小値として定義されています。

フィルター長とターゲットの複合帯域幅の両方を指定すると、過決定設計になります。フィルターの設計では、両方の値を指定することはサポートされていません。ターゲットの複合帯域幅を指定すると、アルゴリズムは対応するフィルター長を決定し、それに応じてフィルターを設計します。

フィルターが長い場合は、ターゲットの複合帯域幅を高く指定します。たとえば、帯域幅を 0.9 × fs/2 に設定すると、フィルター長は 52 になりますが、帯域幅を 0.99 × fs/2 に増やすと、長さは 724 になり、10 倍以上長くなります。帯域幅が fs/2 に近づくにつれ、フィルターの長さは理論的には無限大に近づきます。

依存関係

このプロパティは、フィルター応答を 'fracdelayfir' に設定した場合にのみ適用されます。

データ型: double

振幅の制約

すべて展開する

通過帯域リップル。正のスカラーをデシベル単位で指定します。

'PassbandRipple1' はバンドストップ設計の低域側の通過帯域リップルです。

'PassbandRipple2' はバンドストップ設計の高域側の通過帯域リップルです。

データ型: double

阻止帯域の減衰量。正のスカラーをデシベル単位で指定します。

'StopbandAttenuation1' はバンドパス設計の低域側の阻止帯域の減衰量です。

'StopbandAttenuation2' はバンドパス設計の高域側の阻止帯域の減衰量です。

データ型: double

R2024a 以降

通過帯域リップルを制約するオプション。logical 値として指定します。

バンドストップ FIR フィルターの最初の通過帯域リップルを制約するには、'Passband1Constrained' を true に設定します。

バンドストップ FIR フィルターの 2 番目の通過帯域リップルを制約するには、'Passband2Constrained' を true に設定します。

バンドパス FIR フィルターの通過帯域リップルを制約するには、'PassbandConstrained' を true に設定します。

データ型: logical

R2024a 以降

阻止帯域の減衰量を制約するオプション。logical 値として指定します。

バンドパス FIR フィルターの最初の阻止帯域の減衰量を制約するには、'Stopband1Constrained' を true に設定します。

バンドパス FIR フィルターの 2 番目の阻止帯域の減衰量を制約するには、'Stopband2Constrained' を true に設定します。

バンドストップ FIR フィルターの阻止帯域の減衰量を制約するには、'StopbandConstrained' を true に設定します。

データ型: logical

目的とする、任意振幅応答フィルターの応答振幅。ベクトルとして指定します。振幅は線形単位で指定します。ベクトルは、'Frequencies' と同じ長さでなければなりません。

データ型: double

マルチバンド応答振幅。数値ベクトルとして指定します。ここで、'BandAmplitudesi' (i は 1 から 'NumBands' まで変化) は、マルチバンド設計の i 番目の帯域に目的の振幅を含むベクトルです。可能な 'NumBands' は最大 10 です。振幅は線形単位で指定します。'BandAmplitudesi' は、'BandFrequenciesi' と同じ長さでなければなりません。隣接する周波数帯域はジャンクションで振幅が同じになっていなければなりません。

データ型: double

R2025a 以降

マルチバンド制約付きフラグ。logical ベクトルとして指定します。このプロパティを使用すると、マルチバンド設計における通過帯域リップルを制約できます。すべてのバンドの通過帯域リップルを同時に制約することはできません。'BandConstrainedi' (i は 1 から 'NumBands' まで変化) は、マルチバンド設計の対応する i 番目の帯域が制約されるかどうかを指定するベクトルです。可能な 'NumBands' は最大 10 です。'BandConstrainedi' は 'BandAmplitudesi' および 'BandFrequenciesi' と同じ長さでなければなりません。

データ型: logical

R2025a 以降

マルチバンド応答の通過帯域リップル。一連の正のスカラーまたはベクトルとして指定します。'BandRipplei' (i は 1 から 'NumBands' まで変化) は、マルチバンド設計の i 番目の帯域の目的の通過帯域リップルを含むスカラーまたはベクトルです。可能な 'NumBands' は最大 10 です。ベクトルとして指定する場合、'BandRipplei' は 'BandAmplitudesi' および 'BandFrequenciesi' と同じ長さでなければなりません。

データ型: double

R2025a 以降

帯域幅が測定されるゲイン。スカラーとして指定します。このプロパティを使用すると、既定の -3 dB とは異なるゲインでノッチまたはピークの帯域幅を指定できます。

依存関係

このプロパティは、以下を設定した場合にのみ適用されます。

  • フィルター応答を 'notchiir' または 'peakiir' に設定。

  • NotchLocations または PeakLocations を 'Harmonic' に設定。

データ型: double

設計法

すべて展開する

設計法。文字ベクトルまたは string スカラーとして指定します。設計法の選択は、指定する周波数と振幅の制約の組み合わせによって決まります。

  • 'butter' はバタワース IIR フィルターを設計します。バタワース フィルターでは、通過帯域で最大フラットであり、滑らかで単調な周波数応答になります。平坦さのために、急峻なロールオフを得ることができません。

  • 'cheby1' はチェビシェフ I 型 IIR フィルターを設計します。チェビシェフ I 型フィルターでは、通過帯域では等リップル、阻止帯域では最大フラットの周波数応答になります。ロールオフが急峻になると共に、この通過帯域リップルも増加します。

  • 'cheby2' はチェビシェフ II 型 IIR フィルターを設計します。チェビシェフ II 型フィルターでは、通過帯域では最大フラット、阻止帯域では等リップルの周波数応答になります。

  • 'cls' は制約付き最小二乗を使用する FIR フィルターを設計します。この設計法では、指定した任意の区分線形関数とフィルターの振幅応答との誤差が最小限になります。同時に、通過帯域のリップルと阻止帯域の減衰量に制約を設定することができます。

  • 'ellip' は楕円 IIR フィルターを設計します。楕円フィルターでは、通過帯域と阻止帯域の両方で等リップルである周波数応答になります。

  • 'equiripple' は、Parks-McClellan アルゴリズムを使用して、等リップル FIR フィルターを設計します。等リップル フィルターでは、すべての帯域のリップル最大振幅を最小限にする周波数応答になります。

  • 'freqsamp' は、周波数応答を等間隔にサンプリングし、逆フーリエ変換を行う、任意振幅応答の FIR フィルターを設計します。

  • 'kaiserwin' はカイザー ウィンドウ法を使用する FIR フィルターを設計します。この設計法では、理想的なフィルターのインパルス応答を切り捨て、カイザー ウィンドウを使用して切り捨て後の振動を減衰させます。

  • 'lpnorm' は、制約なし最小 P 次最適化アルゴリズムを使用して、最小 P ノルム最適 IIR フィルターを設計します。詳細については、最小 p ノルム最適 IIR フィルターの設計 (DSP System Toolbox)を参照してください。 (R2023b 以降)

    メモ

    'lpnorm' 設計法を使用するには、有効な DSP System Toolbox ライセンスが必要です。

  • 'ls' では最小二乗を使用した FIR フィルターを設計します。この設計法では、指定した任意の区分線形関数とフィルターの振幅応答との誤差が最小限になります。

  • 'maxflat' は、最大フラット FIR フィルターを設計します。このフィルターでは、通過帯域で最大フラットであり、滑らかで単調な周波数応答になります。

  • 'window' は、最小二乗近似を使用して、フィルター係数を計算し、'Window' によりインパルス応答を平滑化します。

  • 'ifir' は内挿 FIR フィルターを設計します。内挿 FIR フィルターは、フィルター次数が比較的低い狭帯域 FIR フィルターです。必要な乗算器の総数を削減する効率的な設計を実現するために、'ifir' 設計アルゴリズムは設計問題を 2 つの段階に分割します。最初の段階では、多くの乗算器を使用せずに厳しい仕様を達成するために、フィルターがアップサンプリングされます。第 2 段階では、フィルターは前のフィルターをアップサンプリングするときに作成されたイメージを削除します。 (R2025a 以降)

    メモ

    'ifir' 設計法を使用するには、有効な DSP System Toolbox ライセンスが必要です。

データ型: char | string

設計法オプション

すべて展開する

R2025a 以降

線形位相 FIR フィルターのタイプ。次のいずれかとして指定します。

  • '1' –– 偶数次数の対称 FIR フィルター

  • '2' –– 奇数次数の対称 FIR フィルター

  • '3' –– 偶数次数の反対称 FIR フィルター

  • '4' –– 奇数次数の反対称 FIR フィルター

依存関係

このプロパティは、フィルター応答を 'hilbertfir' に設定した場合にのみ適用されます。

データ型: char | string

'kaiserwin' 設計または 'equiripple' 設計の最小次数のパリティ。'any'、'even'、または 'odd' として指定します。

'MinOrder' の設定に応じて、以下のようになります。

  • 'any' –– 返されるフィルターは偶数または奇数の次数のうち、小さい方をもつことができます。

  • 'even' –– designfilt は偶数の次数をもつ最小次数フィルターを返します。

  • 'odd' –– designfilt は奇数の次数をもつ最小次数フィルターを返します。

データ型: char | string

ウィンドウ。長さ N + 1 のベクトルとして指定します。ここで N はフィルター次数です。'Window' とペアにする相手には、ウィンドウ名か、ウィンドウの生成に使用する関数を指定する関数ハンドルを設定できます。その場合、関数はすべて最初の入力として N + 1 を取らなければなりません。追加の入力は、cell 配列の指定により渡すことができます。既定では、'Window' は、'freqsamp' 設計法では空ベクトルで、'window' 設計法では @hamming です。

利用可能なウィンドウのリストについては、ウィンドウを参照してください。

例: 'Window',hann(N+1) と 'Window',(1-cos(2*pi*(0:N)'/N))/2 はいずれも次数 N のフィルターと共に使用するハン ウィンドウを指定します。

例: 'Window','hamming' は、必要な次数のハミング ウィンドウを指定します。

例: 'Window',@mywindow では独自のウィンドウ関数が定義できます。

例: 'Window',{@kaiser,0.5} は、形状パラメーター 0.5 を使用して、必要な次数のカイザー ウィンドウを指定します。

データ型: double | char | string | function_handle | cell

厳密に一致する帯域。'stopband'、'passband'、または 'both' で指定します。'both' は楕円設計法でのみ利用可能で、その既定の設定です。'stopband' は 'butter' および 'cheby2' 設計法の既定の設定です。'passband' は 'cheby1' の既定の設定です。

データ型: char | string

R2023b 以降

L-無限大ノルム。正のスカラーとして指定します。

依存関係

このプロパティはDesignMethodを 'lpnorm' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

周波数グリッドの密度。10 以上の正のスカラーとして指定します。周波数グリッドには約 (DensityFactor × FilterOrder)/(2 × Passbandfrequency) 個の周波数点があります。密度係数を大きくすると、等リップル フィルターにほぼ正確に一致するフィルターが生成されますが、計算に時間がかかります。

データ型: double

R2025a 以降

最大極半径。(0,1] の範囲のスカラーとして指定します。この値は、設計されたフィルターの極/零点プロットにおける各極の最大半径を示します。

依存関係

このプロパティはDesignMethodを 'lpnorm' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

'lpnorm' アルゴリズムで使用される初期 P ノルム。正のスカラーとして指定します。低い開始値を使用して最適化を開始すると、アルゴリズムが収束しやすくなります。詳細については、最小 p ノルム最適 IIR フィルターの設計 (DSP System Toolbox)を参照してください。

依存関係

このプロパティはDesignMethodを 'lpnorm' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

フィルター次数の初期推定。正の整数として指定します。

依存関係

このプロパティは、フィルター応答を 'arbmagfir' に指定した場合にのみ適用されます。

データ型: double

R2025a 以降

フィルター分子係数の初期推定。サイズ (N+1) 行 1 列のベクトルとして指定します。ここで、N は FilterOrder 引数で指定するフィルター次数です。

依存関係

このプロパティはDesignMethodを 'lpnorm' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

フィルター分母係数の初期推定。サイズ (N+1) 行 1 列のベクトルとして指定します。ここで、N は FilterOrder 引数で指定するフィルター次数です。

依存関係

このプロパティはDesignMethodを 'lpnorm' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

内挿 FIR フィルター設計アルゴリズムで使用される内挿係数。1 以上の正の整数として指定します。

依存関係

このプロパティはDesignMethodを 'ifir' に設定した場合にのみ適用されます。

データ型: double

R2025a 以降

設計速度の最適化とフィルター次数の最適化を両方とも有効にするには、このプロパティを true に設定します。

依存関係

このプロパティはDesignMethodを 'ifir' に設定した場合にのみ適用されます。

データ型: logical

通過帯域オフセット。正のスカラーをデシベル単位で指定します。'PassbandOffset' は通過帯域のフィルター ゲインを指定します。

例: 'PassbandOffset',0 では、通過帯域の単位ゲインを得るフィルターが設計されます。

例: 'PassbandOffset',2 では 2 dB または 1.259 の通過帯域ゲインを得るフィルターが設計されます。

データ型: double

通過帯域のスケーリング。logical スカラーで指定します。'ScalePassband' を true に設定すると、ウィンドウ処理後に、フィルターがゼロ周波数で単位ゲインを得るように、通過帯域がスケーリングされます。

例: 'Window',{@kaiser,0.1},'ScalePassband',true により、ゼロ周波数での振幅応答が厳密に 0 dB になるフィルターを指定できます。これは、'ScalePassband',false を指定した場合には該当しません。検証するには、フィルター アナライザーを使用してフィルターを可視化し、拡大します。

データ型: logical

ゼロ位相。logical スカラーで指定します。'ZeroPhase' を true に設定すると、設計されるフィルターのゼロ位相応答が常に正になります。これにより、結果に対してスペクトル分解を実行し、その結果から最小位相フィルターを得ることができます。

データ型: logical

R2025a 以降

等リップル FIR フィルターの阻止帯域の形状。次のいずれかのオプションとして指定します。

  • 'flat' –– 阻止帯域の形状が平坦になります。

  • 'linear' –– 阻止帯域が decay dB/rad/s の傾斜で減衰します。

  • '1/f' –– 阻止帯域が (1/f)decay (1 オクターブあたり 6 × decay dB) で減衰します。

decay は StopbandDecay プロパティで指定する値です。

データ型: char | string

R2025a 以降

阻止帯域の減衰。実数スカラーとして指定します。StopbandShape プロパティの設定に応じて、次のオプションのいずれかになります。

  • '1/f' –– 阻止帯域の減衰値は 1/f のべき指数を指定します。

  • 'linear'–– 阻止帯域の減衰値は阻止帯域の傾きを指定します。

  • 'flat' –– 阻止帯域の減衰値は阻止帯域の形状に影響を与えません。

データ型: double

R2025a 以降

Sinc 周波数ファクター。正のスカラーとして指定します。等リップル FIR フィルターの振幅応答は、逆 sinc 関数 1/sinc(C × π × F)P の形状になります。

  • C は SincFrequencyFactor で指定する値。

  • P は SincPower で指定する値。

  • F は正規化周波数。

逆 sinc 形状は、D/A コンバーターのゼロ次ホールドの効果など、周波数領域における sinc のような応答を補正します。通過帯域の補正量は、C 引数および P 引数によって制御されます。

データ型: double

R2025a 以降

Sinc パワー P。正のスカラーとして指定します。この値は、逆 sinc 関数のべき乗を指定します。

等リップル FIR フィルターの振幅応答は、1/sinc(C × π × F)P で求められます。

ここで、

  • C は SincFrequencyFactor で指定する値。

  • P は SincPower で指定する値。

  • F は正規化周波数。

データ型: double

R2024a 以降

等リップル FIR フィルターの位相制約。次のいずれかのオプションとして指定します。

  • 'Minimum' – 最小位相等リップル FIR フィルターを設計します。

  • 'Maximum' – 最大位相等リップル FIR フィルターを設計します。

  • 'Linear' –– 線形位相等リップル FIR フィルターを設計します。

データ型: char | string

通過帯域の最適化の重み。正のスカラーで指定します。

'PassbandWeight1' はバンドストップ FIR 設計の低域通過帯域の最適化の重みです。

'PassbandWeight2' はバンドストップ FIR 設計の高域通過帯域の最適化の重みです。

データ型: double

阻止帯域の最適化の重み。正のスカラーで指定します。

'StopbandWeight1' はバンドパス FIR 設計の低域側阻止帯域の最適化の重みです。

'StopbandWeight2' はバンドパス FIR 設計の高域側阻止帯域の最適化の重みです。

データ型: double

最適化の重み。正のスカラーまたは 'Amplitudes' と同じ長さのベクトルとして指定します。

データ型: double

マルチバンドの重み。一連の正のスカラーまたはベクトルとして指定します。ここで、'BandWeightsi' (i は 1 から 'NumBands' まで変化) は、マルチバンド設計の i 番目の帯域の最適化重みを含むスカラーまたはベクトルです。ベクトルとして指定する場合、'BandWeightsi' は 'BandAmplitudesi' と同じ長さでなければなりません。

データ型: double

R2025a 以降

マルチバンド設計内の指定された周波数における振幅応答を 0 dB に強制します。一連の正のスカラーまたはベクトルとして指定します。'BandForcedFrequencyPointsi' (i は 1 から 'NumBands' まで変化) は、各帯域で振幅応答を 0 dB に強制する周波数を含むスカラーまたはベクトルです。ベクトルとして指定する場合、'BandForcedFrequencyPointsi' は 'BandWeightsi' と同じ長さでなければなりません。

データ型: double

R2025a 以降

等リップル フィルター設計で周波数グリッドを等間隔として指定するオプション。logical スカラーとして指定します。このプロパティを true に設定すると、関数は対象の周波数帯域内で周波数グリッド点を等間隔に配置します。等間隔グリッドの密度は DensityFactor 引数によって制御されます。

データ型: logical

R2025a 以降

サンプル内のフィルターの非整数遅延。範囲 [0,1] の実数スカラーとして指定します。

FractionalDelay を 0 または 1 に設定すると、設計されたフィルターは全帯域幅に対応します。

依存関係

このプロパティは、フィルター応答を 'fracdelayfir' に設定した場合にのみ適用されます。

データ型: double

実装

すべて展開する

R2023b 以降

このプロパティを設定する場合、次のようになります。

  • true –– designfilt 関数は、フィルター応答と選択された設計法に応じて、いずれかのフィルター System object を生成します。

    メモ

    この設定には DSP System Toolbox ライセンスが必要です。

  • false –– designfilt 関数は digitalFilter オブジェクトを生成します。

データ型: logical

出力引数

すべて折りたたむ

デジタル フィルター。次のいずれかとして返されます。

  • digitalFilter オブジェクト。

  • フィルター System object (SystemObject を true に設定した場合)。

    メモ

    SystemObject 引数を true に設定するには、有効な DSP System Toolbox ライセンスが必要です。

詳細

すべて折りたたむ

バージョン履歴

R2014a で導入

すべて展開する