designfilt
デジタル フィルターの設計
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)
これを使用して、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)
これを使用して、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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| N/A | ||
| ||||
N/A |
| N/A | ||
N/A |
| |||
| ||||
N/A |
| |||
|
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) (R2024a 以降) |
| |||
N/A (最小次数設計) (R2025a 以降) |
| |||
N/A (最小次数設計) (R2025a 以降) |
|
| ||
| N/A |
| ||
|
| |||
|
| |||
| N/A | |||
| N/A | |||
| N/A | |||
| N/A |
|
このオプションを選択して無限インパルス応答 (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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
| ||||
| ||||
| ||||
N/A |
| N/A | ||
| N/A | |||
| N/A | |||
| N/A | |||
N/A |
| N/A |
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A |
| |||
| N/A |
| ||
| N/A | |||
N/A |
| N/A | ||
| N/A | |||
| N/A | |||
| N/A | |||
N/A |
| N/A |
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
に設定します。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
N/A |
| |||
| ||||
| ||||
|
このオプションを選択して有限インパルス応答 (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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| N/A | ||
| ||||
N/A |
| |||
| ||||
N/A |
| |||
|
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) (R2024a 以降) |
| |||
N/A (最小次数設計) (R2025a 以降) |
| |||
N/A (最小次数設計) (R2025a 以降) |
|
| ||
| N/A |
| ||
|
| |||
|
| |||
| N/A | |||
| N/A | |||
| N/A | |||
| N/A |
|
このオプションを選択して無限インパルス応答 (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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
| ||||
| ||||
| ||||
N/A |
| N/A | ||
| N/A | |||
| N/A | |||
| N/A | |||
N/A |
| N/A |
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2023b 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A |
| |||
| N/A |
| ||
| N/A | |||
N/A |
| N/A | ||
| N/A | |||
| N/A | |||
| N/A | |||
N/A |
| N/A |
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
に設定します。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
N/A |
| |||
| ||||
| ||||
|
このオプションを選択して有限インパルス応答 (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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| N/A | ||
| ||||
N/A |
| |||
| ||||
N/A |
| |||
|
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
N/A |
| |||
| N/A |
| ||
|
|
このオプションを選択して無限インパルス応答 (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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
| ||||
| ||||
| ||||
N/A |
| N/A | ||
| N/A | |||
| N/A | |||
| N/A |
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
| N/A |
| ||
| N/A | |||
| N/A | |||
| N/A | |||
| N/A | |||
N/A |
| N/A | ||
N/A |
| N/A |
このオプションを選択して有限インパルス応答 (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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| N/A | ||
| ||||
N/A |
| |||
| ||||
N/A |
| |||
|
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
N/A |
| |||
| N/A |
| ||
|
|
このオプションを選択して無限インパルス応答 (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 に設定されます。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
| |||
| ||||
| ||||
| ||||
N/A |
| N/A | ||
| N/A | |||
| N/A | |||
| N/A |
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2024a 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
| N/A |
| ||
| N/A | |||
| N/A | |||
| N/A | |||
| N/A | |||
N/A |
| N/A | ||
| N/A |
| N/A |
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
に設定します。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | |
---|---|---|---|---|
| N/A |
| ||
|
| |||
|
| |||
|
| |||
| N/A |
| ||
|
| |||
|
| |||
|
| |||
|
|
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
に設定します。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | |
---|---|---|---|---|
| N/A |
| ||
|
| |||
|
| |||
|
| |||
| N/A |
| ||
|
| |||
|
| |||
|
| |||
|
|
このオプションを選択して有限インパルス応答 (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' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A | N/A |
| N/A | |
| N/A | |||
N/A |
| |||
| N/A |
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2025a 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
|
このオプションを選択して有限インパルス応答 (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' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A |
| N/A | ||
| N/A |
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2025a 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
N/A (最小次数設計) |
|
このオプションを選択して任意振幅応答の有限インパルス応答 (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' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
| ||||
| ||||
| ||||
… | … |
| … | |
| … |
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加の設計仕様をサポートします。 (R2025a 以降)
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
| ||||
… | … |
| … | |
… | … … … | 'equiripple' | … … | |
N/A (最小次数設計) |
| |||
N/A (最小次数設計) | … | … … |
| … |
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
に設定します。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
| ||||
… | … |
| … |
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
に設定します。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
'FrequencyResponse' | 'equiripple' | |||
'FrequencyResponse' | 'ls' | |||
'FrequencyResponse' | 'freqsamp' | |||
… | … | 'equiripple' | … | |
… | … | 'ls' | … |
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' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
'FrequencyResponse' |
| |||
'FrequencyResponse' |
|
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
に設定します。
フィルター次数の引数名 | 周波数制約の引数名 | 振幅の制約の引数名 | 'DesignMethod' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
| ||||
… | … |
| … |
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' の引数値 | 設計オプションの引数名 | |
---|---|---|---|---|---|
N/A | N/A | N/A | |||
N/A | N/A | N/A |
データ型: 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 以降
データ型: 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 以降
データ型: 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 ライセンスが必要です。
詳細
一連の設計パラメーターの指定に記入漏れや矛盾があると、designfilt
によりフィルター設計アシスタントの開始が提案されます。
(resp
の引数の説明内に、利用可能な全応答タイプに対応する有効な仕様セットの一覧があります。)
アシスタントは、designfilt
をコマンド ラインまたはスクリプトや関数のいずれで呼び出すかによって動作が異なります。
2 kHz でサンプリングされた信号があると仮定します。650 Hz より高い周波数成分を抑えるローパス FIR フィルターを設計するとします。仕様パラメーターとして、"CutoffFrequency"が適切と考えられます。MATLAB コマンド ラインでこのコードを入力します。
Fsamp = 2e3; Fctff = 650; dee = designfilt("lowpassfir",CutoffFrequency=Fctff, ... SampleRate=Fsamp);
何かが間違っているらしく、次のダイアログ ボックスが画面に表示されます。
[はい] をクリックすると、コード生成を提案する新しいダイアログ ボックスが表示されます。前に定義した変数が予想した場所に挿入されています。
提案されたオプションをいくつか調べた後、修正したフィルターをテストします。[OK] をクリックすると、コマンド ラインにこのコードが表示されます。
designfilt("lowpassfir",FilterOrder=10, ... CutoffFrequency=Fctff,SampleRate=2000);
フィルター アナライザーを呼び出して、周波数応答プロットを取得します。
filterAnalyzer(dee)
カットオフ周波数は特に急峻には見えません。周波数の大部分で、応答が 40 dB を超えています。アシスタントには、"阻止帯域の減衰量" と呼ばれる "振幅の制約" を設定するオプションがあります。フィルター名を入力として designfilt
を呼び出し、アシスタントを開きます。
designfilt(dee)
[振幅の制約]
ドロップダウン メニューをクリックし、[通過帯域リップルと阻止帯域の減衰量]
を選択します。設計法が [ウィンドウ]
から [FIR 制約付き最小二乗]
に変わります。減衰量の既定値は 60 dB で 40 より高くなっています。[OK] をクリックし、結果のフィルターを可視化します。
dee = designfilt('lowpassfir','FilterOrder',10, ... 'CutoffFrequency',650,'PassbandRipple',1, ... 'StopbandAttenuation',60,'SampleRate',2000); filterAnalyzer(dee)
カットオフ周波数は依然として急峻には見えません。減衰量は実際に 60 dB になっていますが、900 Hz を超える周波数に対してのみです。
再びフィルター名を入力に指定して designfilt
を呼び出します。
designfilt(dee)
再度アシスタントが表示されます。
受け取る周波数と阻止する周波数の差を縮めるには、フィルターの次数を大きくするか、あるいは [周波数制約]
を [カットオフ (6 dB) 周波数]
から [通過帯域周波数と阻止帯域周波数]
に変更します。フィルター次数を 10 から 50 に変更すると、急峻なフィルターが得られます。
dee = designfilt('lowpassfir','FilterOrder',50, ... 'CutoffFrequency',650,'PassbandRipple',1, ... 'StopbandAttenuation',60,'SampleRate',2000); filterAnalyzer(dee)
実験的に、通過帯域周波数および阻止帯域周波数をそれぞれ 600 Hz および 700 Hz に設定すると、類似のフィルターが得られることがわかります。
dee = designfilt('lowpassfir','FilterOrder',50,... 'PassbandFrequency',600,'StopbandFrequency',700,... 'PassbandRipple',1,'StopbandAttenuation',60,... 'SampleRate',2000); filterAnalyzer(dee)
2 kHz でサンプリングされた信号があると仮定します。700 Hz を下回る周波数成分を阻止するハイパス フィルターを設計するとします。信号の位相は対象にしていません。低次のフィルターを使用する必要があります。したがって、IIR フィルターが適切であると思われます。最適なフィルター次数が不明なため、入力として次数をとる関数を記述します。MATLAB エディターを開き、次のファイルを作成します。
function dataOut = hipassfilt(N,dataIn) hpFilter = designfilt('highpassiir','FilterOrder',N); dataOut = filter(hpFilter,dataIn); end
関数をテストするには、周波数が 500 Hz と 800 Hz の 2 つの正弦波で構成される信号を作成し、0.1 秒間のサンプルを生成します。初期推測として 5 次のフィルターが妥当と考えられます。driveHPfilt.m
というスクリプトを作成します。
% script driveHPfilt.m
Fsamp = 2e3;
Fsm = 500;
Fbg = 800;
t = 0:1/Fsamp:0.1;
sgin = sin(2*pi*Fsm*t)+sin(2*pi*Fbg*t);
N = 5;
sgout = hipassfilt(N,sgin);
コマンド ラインでこのスクリプトを実行すると、エラー メッセージが表示されます。
エラー メッセージから、アシスタントを開いて MATLAB コードを訂正することを選択できます。Click here
をクリックすると、フィルター設計アシスタントが表示されます。
問題点がわかります。周波数制約が指定されていません。サンプル レートも設定されていません。試してみると、[周波数単位] を [Hz]
に、[Input Fs] を 2000 Hz に、[周波数制約] を [通過帯域周波数]
に、[通過帯域周波数] を 700 Hz に指定できることがわかります。[設計法] が [バタワース]
から [チェビシェフ I 型]
に変わります。[OK] をクリックすると、コマンド ラインにこれが表示されます。
hp = designfilt('highpassiir','FilterOrder',N, ... 'PassbandFrequency',700,'PassbandRipple',1, ... 'SampleRate',2000);
新しい digitalFilter
オブジェクト hp
がワークスペースに保存されます。設計の制約によっては、仕様セットを変更できます。
フィルター設計アシスタントを表示しないように designfilt
を設定できます。このアクションは、setpref
で設定解除できる MATLAB 設定を設定します。
毎回アシスタントを表示するには、
setpref('dontshowmeagain','filterDesignAssistant',false)
を使用します。このコマンドにより、アシスタントを無効にした後に、再表示できます。アシスタントを常に無効にするには、
setpref('dontshowmeagain','filterDesignAssistant',true)
を使用します。最初のダイアログ ボックスにある [次回からこのメッセージを表示しない] をクリックすることもできます。
欠陥のある仕様を常に確認なしで訂正するよう designfilt
を設定できます。このアクションは、setpref
を使用して設定解除できる MATLAB 設定を設定します。
確認を求めずに MATLAB コードを訂正するよう
designfilt
を設定するには、setpref('dontshowmeagain','filterDesignAssistantCodeCorrection',false)
を使用します。確認ダイアログ ボックスの [常に受け入れる] をクリックすることもできます。変更を確定した場合にのみ
designfilt
により MATLAB コードが訂正されるようにするには、setpref('dontshowmeagain','filterDesignAssistantCodeCorrection',true)
を使用します。このコマンドでは、確認ダイアログ ボックスの [常に受け入れる] のクリックによる作用を取り消すことができます。
不適切な仕様セットの指定に対し、designfilt
により、ダイアログ ボックスまたはエラー メッセージ内のリンクを介したフィルター設計アシスタントの提案が行われない場合があります。
コード セクション評価の使用時は、それが MATLAB ツールストリップからか Ctrl+Enter キーを押すことによるかにかかわらず、アシスタントは提案されません (詳細については、ファイルをセクションに分割を参照)。
コードに
designfilt
への呼び出しが複数あり、その中に正しくないものが含まれる場合、以下の状況ではアシスタントは提案されません。コマンド ラインにコードを貼り付け、Enter キーを押して実行する場合
エディターでコードを選択し、F9 キーを押して実行する場合
無名関数を使用して
designfilt
を実行する場合、アシスタントは提案されません。(詳細については、無名関数を参照)。たとえば、次の入力ではアシスタントが提案されます。こちらの入力ではそうなりません。d = designfilt('lowpassfir','CutoffFrequency',0.6)
myFilterDesigner = @designfilt; d = myFilterDesigner('lowpassfir','CutoffFrequency',0.6)
eval
を使用してdesignfilt
を実行する場合、アシスタントは提案されません。たとえば、次の入力ではアシスタントが提案されます。こちらの入力ではそうなりません。d = designfilt('lowpassfir','CutoffFrequency',0.6)
myFilterDesigner = ... sprintf('designfilt(''%s'',''CutoffFrequency'',%f)', ... 'lowpassfir',0.6); d = eval(myFilterDesigner)
フィルター設計アシスタントでは、Java® ソフトウェアと MATLAB デスクトップを実行する必要があります。-nojvm
、-nodisplay
または -nodesktop
オプションを指定して MATLAB を実行する場合には、アシスタントはサポートされません。
バージョン履歴
R2014a で導入DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下の追加のフィルター設計応答をサポートします。
'isinclpfir'
–– 逆 sinc ローパス FIR フィルター'isinchpfir'
–– 逆 sinc ハイパス FIR フィルター'notchiir'
–– マルチ ノッチ IIR フィルター'peakiir'
–– マルチ ピーク IIR フィルター'fracdelayfir'
–– 非整数遅延 FIR フィルター'arbmagiir'
–– 任意振幅応答 IIR フィルター'arbmagnphasefir'
–– 任意振幅および位相応答 FIR フィルター'arbmagnphaseiir'
–– 任意振幅および位相応答 IIR フィルター'arbgrpdelayiir'
–– 任意群遅延応答 IIR フィルター
DSP System Toolbox ライセンスをお持ちの場合、designfilt
関数は以下のフィルター応答で追加のフィルター設計仕様をサポートします。
'lowpassfir'
および'lowpassiir'
'highpassfir'
および'highpassiir'
'bandpassfir'
および'bandpassiir'
'bandstopfir'
および'bandstopiir'
'hilbertfir'
、'differentiatorfir'
、および'arbmagfir'
フィルター設計アシスタントは、DSP System Toolbox ライセンスで使用できるすべてのフィルター設計設定をサポートするようになりました。
R2024a 以降、DSP System Toolbox ライセンスをお持ちの場合は、SystemObject
引数を true
に設定して、'bandpassfir'
および 'bandstopfir'
のフィルター応答用の dsp.FIRFilter
(DSP System Toolbox) オブジェクトと、'bandpassiir'
および 'bandstopiir'
のフィルター応答用の dsp.SOSFilter
(DSP System Toolbox) オブジェクトを生成できます。
DSP System Toolbox ライセンスをお持ちの場合は、'lowpassfir'
(DSP System Toolbox) および 'highpassfir'
(DSP System Toolbox) のフィルター応答で以下の追加のフィルター設計仕様がサポートされます。
'lowpassfir'
最小次数、
'PassbandFrequency'
、'StopbandFrequency'
、'PassbandRipple'
、'StopbandAttenuation'
'FilterOrder'
,'PassbandFrequency'
,'StopbandFrequency'
'highpassfir'
最小次数、
'PassbandFrequency'
、'StopbandFrequency'
、'PassbandRipple'
、'StopbandAttenuation'
'FilterOrder'
,'PassbandFrequency'
,'StopbandFrequency'
DSP System Toolbox ライセンスをお持ちの場合は、新しい 'PhaseConstraint'
(DSP System Toolbox) 設計法オプションを使用して、線形位相、最小位相、または最大位相の等リップル FIR フィルターを設計できます。この設計法オプションをどのような場合に使用できるかの詳細については、'lowpassfir'
(DSP System Toolbox)、'highpassfir'
(DSP System Toolbox)、'bandpassfir'
(DSP System Toolbox)、および 'bandstopfir'
(DSP System Toolbox) の各フィルター応答の説明を参照してください。
関数 designfilt
は、DSP System Toolbox をインストールするときに次の機能を有効にします。
SystemObject
引数 ––'lowpassfir'
と'highpassfir'
のフィルター応答のdsp.FIRFilter
(DSP System Toolbox) オブジェクト、および'lowpassiir'
と'highpassiir'
のフィルター応答のdsp.SOSFilter
(DSP System Toolbox) オブジェクトを生成するには、このプロパティをtrue
に設定します。'lpnorm'
設計法 ––'lowpassiir'
および'highpassiir'
のフィルター応答用に、この設計法を選択します。Norm
プロパティ ––'lpnorm'
設計法を選択する場合に L-無限大ノルムを指定します。
R2021b 以降、関数 designfilt
は、スクリプトや関数内での designfilt
の呼び出しの修正には使用できなくなりました。以前のリリースでは、この関数はコマンド ライン上のコードを自動的に修正して実行していました。
コードを変更する必要はありません。designfilt
の呼び出しにエラーが含まれている場合、関数はリンクのついたエラーを発行し、フィルター設計アシスタントを開きます。このアシスタントを使用してフィルターを生成し、対応するコードをコマンド ラインに表示できます。生成されたフィルター オブジェクトはワークスペースに保存されます。
参考
ライブ エディター タスク
関数
bandpass
|bandstop
|highpass
|lowpass
|double
|fftfilt
|filt2block
|filter
|filtfilt
|filtord
|firtype
|freqz
|grpdelay
|impz
|impzlength
|info
|isallpass
|isdouble
|isfir
|islinphase
|ismaxphase
|isminphase
|issingle
|isstable
|phasedelay
|phasez
|single
|ss
|stepz
|tf
|zerophase
|zpk
|zplane
アプリ
オブジェクト
digitalFilter
|filterAnalyzer
|dsp.FIRFilter
(DSP System Toolbox) |dsp.SOSFilter
(DSP System Toolbox)
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)