このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
designfilt
デジタル フィルターの設計
designfilt
は、スクリプトや関数内での関数の呼び出しの修正には使用できなくなりました。詳細については、互換性の考慮事項を参照してください。
説明
は、応答タイプ d
= designfilt(resp
,Name,Value
)resp
の digitalFilter
オブジェクト d
を設計します。resp
の例には、'lowpassfir'
や 'bandstopiir'
があります。さらに、名前と値のペアの引数のセットを使用してフィルターを規定します。どのような仕様セットが使用可能であるかは、resp
によって異なり、以下の組み合わせにより構成されます。
"周波数制約" は、フィルターにより目的の動作が提示される周波数に相当します。例としては
'PassbandFrequency'
と'CutoffFrequency'
があります。周波数制約は常に指定しなければなりません。"振幅の制約" では、特定の周波数範囲でのフィルターの動作を記述します。例としては
'PassbandRipple'
と'StopbandAttenuation'
があります。未指定の振幅の制約には、designfilt
により既定値が設定されます。任意振幅の設計では、目的の振幅のベクトルを必ず指定しなければなりません。フィルター次数.一部の設計法では次数を指定できます。それ以外では最小次数設計が生成されます。つまり、指定された制約を満たす最小のフィルターが生成されます。
"設計法" はフィルターの設計に使用されるアルゴリズムです。例としては、制約付き最小二乗 (
'cls'
) とカイザー ウィンドウ処理 ('kaiserwin'
) があります。仕様セットによっては、選択可能な設計法は複数あります。それ以外の場合、目的の仕様を満たすために利用できる設計法は 1 つのみです。"設計法オプション" は、特定の設計法に特有のパラメーターです。例としては、
'window'
法の'Window'
と、任意振幅等リップル設計の最適化用の'Weights'
があります。指定されなかった設計オプションに対しては、designfilt
により既定値が設定されます。"サンプルレート" は、フィルター処理の対象となる周波数です。
designfilt
の既定サンプルレートは 2 Hz です。この値を使用することで、正規化周波数による処理相当になります。
メモ
コマンド ラインに不完全なまたは矛盾する名前と値の引数のセットを指定すると、フィルター設計アシスタントを開くよう、designfilt
により提案されます。このアシスタントは、フィルターの設計を支援し、修正した MATLAB® コードをコマンド ラインに貼り付けます。
正しくない仕様セットを使用してスクリプトまたは関数から designfilt
を呼び出すと、designfilt
はフィルター設計アシスタントを開くリンクのついたエラー メッセージを発行します。このアシスタントは、フィルターの設計を支援し、修正した MATLAB コードをコマンド ラインに貼り付けます。設計したフィルターはワークスペースに保存されます。
digitalFilter
、d
を使用して信号をフィルター処理するには、dataOut = filter(d,dataIn)
の型のfilter
を使用します。IIR フィルターの場合、関数filter
は直接型 II の実装を使用します。関数filtfilt
とfftfilt
をdigitalFilter
オブジェクトと使用することもできます。digitalFilter
、d
の可視化には、FVTool を使用します。d.Coefficients
と入力するとdigitalFilter
d
の係数が得られます。IIR フィルターでは、係数は 2 次セクション型として表されます。digitalFilter
オブジェクトで使用可能なフィルター処理関数および解析関数のリストについては、digitalFilter
を参照してください。
designfilt(
を使用することにより既存のデジタル フィルター d
)d
の編集が可能です。フィルターの仕様が読み込まれた フィルター設計アシスタントが開かれ、その内容を変更できます。この方法によってのみ、digitalFilter
オブジェクトは編集できます。それ以外の場合、このオブジェクトのプロパティは読み取り専用です。
例
ローパス FIR フィルター
正規化された通過帯域周波数 ラジアン/サンプル、阻止帯域周波数 ラジアン/サンプル、通過帯域リップル 0.5 dB、阻止帯域の減衰量 65 dB をもつ最小次数ローパス FIR フィルターを設計します。フィルターの設計にはカイザー ウィンドウを使用します。振幅応答を可視化します。これを使用して、ランダム データで構成されるベクトルをフィルター処理します。
lpFilt = designfilt('lowpassfir','PassbandFrequency',0.25, ... 'StopbandFrequency',0.35,'PassbandRipple',0.5, ... 'StopbandAttenuation',65,'DesignMethod','kaiserwin'); fvtool(lpFilt)
dataIn = rand(1000,1); dataOut = filter(lpFilt,dataIn);
ローパス IIR フィルター
通過帯域周波数 35 kHz、通過帯域リップル 0.2 dB をもつ、8 次のローパス IIR フィルターを設計します。サンプルレートを 200 kHz に指定します。フィルターの振幅応答を可視化します。
lpFilt = designfilt('lowpassiir','FilterOrder',8, ... 'PassbandFrequency',35e3,'PassbandRipple',0.2, ... 'SampleRate',200e3); fvtool(lpFilt)
設計したフィルターを使用して、1000 サンプルのランダム信号をフィルター処理します。
dataIn = randn(1000,1); dataOut = filter(lpFilt,dataIn);
フィルター係数を出力して、2 次セクション型として表します。
sos = lpFilt.Coefficients
sos = 4×6
0.2666 0.5333 0.2666 1.0000 -0.8346 0.9073
0.1943 0.3886 0.1943 1.0000 -0.9586 0.7403
0.1012 0.2023 0.1012 1.0000 -1.1912 0.5983
0.0318 0.0636 0.0318 1.0000 -1.3810 0.5090
ハイパス FIR フィルター
正規化された阻止帯域周波数 ラジアン/サンプル、通過帯域周波数 ラジアン/サンプル、通過帯域リップル 0.5 dB、阻止帯域の減衰量 65 dB をもつ最小次数ハイパス FIR フィルターを設計します。フィルターの設計にはカイザー ウィンドウを使用します。振幅応答を可視化します。これを使用して、1,000 サンプルのランダム データをフィルター処理します。
hpFilt = designfilt('highpassfir','StopbandFrequency',0.25, ... 'PassbandFrequency',0.35,'PassbandRipple',0.5, ... 'StopbandAttenuation',65,'DesignMethod','kaiserwin'); fvtool(hpFilt)
dataIn = randn(1000,1); dataOut = filter(hpFilt,dataIn);
ハイパス IIR フィルター
通過帯域周波数 75 kHz、通過帯域リップル 0.2 dB をもつ、8 次のハイパス IIR フィルターを設計します。サンプルレートを 200 kHz に指定します。フィルターの振幅応答を可視化します。1,000 サンプルのランダム データで構成されるベクトルにフィルターを適用します。
hpFilt = designfilt('highpassiir','FilterOrder',8, ... 'PassbandFrequency',75e3,'PassbandRipple',0.2, ... 'SampleRate',200e3); fvtool(hpFilt)
dataIn = randn(1000,1); dataOut = filter(hpFilt,dataIn);
バンドパス FIR フィルター
低域カットオフ周波数が 500 Hz で、高域カットオフ周波数が 560 Hz である 20 次のバンドパス FIR フィルターを設計します。サンプルレートは 1500 Hz です。フィルターの振幅応答を可視化します。これを使用して、1,000 サンプルのランダム信号をフィルター処理します。
bpFilt = designfilt('bandpassfir','FilterOrder',20, ... 'CutoffFrequency1',500,'CutoffFrequency2',560, ... 'SampleRate',1500); fvtool(bpFilt)
dataIn = randn(1000,1); dataOut = filter(bpFilt,dataIn);
フィルター係数を出力します。
b = bpFilt.Coefficients
b = 1×21
-0.0113 0.0067 0.0125 -0.0445 0.0504 0.0101 -0.1070 0.1407 -0.0464 -0.1127 0.1913 -0.1127 -0.0464 0.1407 -0.1070 0.0101 0.0504 -0.0445 0.0125 0.0067 -0.0113
バンドパス IIR フィルター
低域側の 3 dB の周波数が 500 Hz で、高域側の 3 dB の周波数が 560 Hz である 20 次のバンドパス IIR フィルターを設計します。サンプルレートは 1500 Hz です。フィルターの周波数応答を可視化します。これを使用して、1,000 サンプルのランダム信号をフィルター処理します。
bpFilt = designfilt('bandpassiir','FilterOrder',20, ... 'HalfPowerFrequency1',500,'HalfPowerFrequency2',560, ... 'SampleRate',1500); fvtool(bpFilt)
dataIn = randn(1000,1); dataOut = filter(bpFilt,dataIn);
バンドストップ FIR フィルター
低域カットオフ周波数が 500 Hz で、高域カットオフ周波数が 560 Hz である 20 次のバンドストップ FIR フィルターを設計します。サンプルレートは 1500 Hz です。フィルターの振幅応答を可視化します。これを使用して、1,000 サンプルのランダム データをフィルター処理します。
bsFilt = designfilt('bandstopfir','FilterOrder',20, ... 'CutoffFrequency1',500,'CutoffFrequency2',560, ... 'SampleRate',1500); fvtool(bsFilt)
dataIn = randn(1000,1); dataOut = filter(bsFilt,dataIn);
バンドストップ IIR フィルター
低域側の 3 dB の周波数が 500 Hz で、高域側の 3 dB の周波数が 560 Hz である 20 次のバンドストップ IIR フィルターを設計します。サンプルレートは 1500 Hz です。フィルターの振幅応答を可視化します。これを使用して、1,000 サンプルのランダム データをフィルター処理します。
bsFilt = designfilt('bandstopiir','FilterOrder',20, ... 'HalfPowerFrequency1',500,'HalfPowerFrequency2',560, ... 'SampleRate',1500); fvtool(bsFilt)
dataIn = randn(1000,1); dataOut = filter(bsFilt,dataIn);
FIR 微分器
7 次の全帯域微分器フィルターを設計します。そのゼロ位相応答を表示します。これを使用して、1,000 サンプルのランダム データで構成されるベクトルをフィルター処理します。
dFilt = designfilt('differentiatorfir','FilterOrder',7); fvtool(dFilt,'MagnitudeDisplay','Zero-phase')
dataIn = randn(1000,1); dataOut = filter(dFilt,dataIn);
FIR ヒルベルト変換器
18 次のヒルベルト変換器を設計します。正規化された遷移幅 ラジアン/サンプルを指定します。フィルターの振幅応答を線形単位で表示します。これを使用して、1,000 サンプルのランダム データで構成されるベクトルをフィルター処理します。
hFilt = designfilt('hilbertfir','FilterOrder',18,'TransitionWidth',0.25); fvtool(hFilt,'MagnitudeDisplay','magnitude')
dataIn = randn(1000,1); dataOut = filter(hFilt,dataIn);
任意振幅 FIR フィルター
1 kHz でサンプリングされた信号があると仮定します。100 Hz と 350 Hz の間の周波数と 400 Hz より大きい周波数を阻止するフィルターを設計します。フィルター次数を 60 に指定します。フィルターの周波数応答を可視化します。これを使用して、1,000 サンプルのランダム信号をフィルター処理します。
mbFilt = designfilt('arbmagfir','FilterOrder',60, ... 'Frequencies',0:50:500,'Amplitudes',[1 1 1 0 0 0 0 1 1 0 0], ... 'SampleRate',1000); fvtool(mbFilt)
dataIn = randn(1000,1); dataOut = filter(mbFilt,dataIn);
入力引数
resp
— フィルター応答およびタイプ
'lowpassfir'
| 'lowpassiir'
| 'highpassfir'
| 'highpassiir'
| 'bandpassfir'
| 'bandpassiir'
| 'bandstopfir'
| 'bandstopiir'
| 'differentiatorfir'
| 'hilbertfir'
| 'arbmagfir'
フィルター応答およびタイプ。文字ベクトルまたは string スカラーで指定します。
'lowpassfir'
— FIR ローパス フィルター
応答タイプ
このオプションを選択して有限インパルス応答 (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 |
| |||
|
'lowpassiir'
— IIR ローパス フィルター
応答タイプ
このオプションを選択して無限インパルス応答 (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 |
'highpassfir'
— FIR ハイパス フィルター
応答タイプ
このオプションを選択して有限インパルス応答 (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 |
| |||
|
'highpassiir'
— IIR ハイパス フィルター
応答タイプ
このオプションを選択して無限インパルス応答 (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 |
'bandpassfir'
— FIR バンドパス フィルター
応答タイプ
このオプションを選択して有限インパルス応答 (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 |
| |||
|
'bandpassiir'
— IIR バンドパス フィルター
応答タイプ
このオプションを選択して無限インパルス応答 (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 |
'bandstopfir'
— FIR バンドストップ フィルター
応答タイプ
このオプションを選択して有限インパルス応答 (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 |
| |||
|
'bandstopiir'
— IIR バンドストップ フィルター
応答タイプ
このオプションを選択して無限インパルス応答 (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 |
'differentiatorfir'
— FIR 微分器フィルター
応答タイプ
このオプションを選択して有限インパルス応答 (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 |
'hilbertfir'
— FIR ヒルベルト変換器フィルター
応答タイプ
このオプションを選択して有限インパルス応答 (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 |
'arbmagfir'
— 任意振幅応答 FIR フィルター
応答タイプ
このオプションを選択して任意振幅応答の有限インパルス応答 (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' の引数値 | 設計オプションの引数名 |
---|---|---|---|---|
| ||||
| ||||
| ||||
… | … |
| … | |
| … |
データ型: char
| string
d
— デジタル フィルター
digitalFilter
オブジェクト
デジタル フィルター。designfilt
によって生成される digitalFilter
オブジェクトで指定します。この入力を使用して、既存の digitalFilter
の仕様を変更します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: ローパス FIR フィルターを指定する場合は、FilterOrder=20,CutoffFrequency=0.4
で十分です。
R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みました。
例: ローパス FIR フィルターを指定する場合は、'FilterOrder',20,'CutoffFrequency',0.4
で十分です。
すべての名前と値の組み合わせが有効なわけではありません。有効な組み合わせは、必要とするフィルター応答と設計の周波数および振幅の制約によって異なります。
FilterOrder
— フィルター次数
正の整数スカラー
フィルター次数。正の整数スカラーとして指定します。
データ型: double
NumeratorOrder
— 分子次数
正の整数スカラー
IIR 設計の分子次数。正の整数スカラーとして指定します。
データ型: double
DenominatorOrder
— 分母次数
正の整数スカラー
IIR 設計の分母次数。正の整数スカラーとして指定します。
データ型: double
PassbandFrequency
, PassbandFrequency1
, PassbandFrequency2
— 通過帯域周波数
正のスカラー
通過帯域周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。
'PassbandFrequency1'
はバンドパスまたはバンドストップ設計の低域側の通過帯域周波数です。
'PassbandFrequency2'
はバンドパスまたはバンドストップ設計の高域側の通過帯域周波数です。
データ型: double
StopbandFrequency
, StopbandFrequency1
, StopbandFrequency2
— 阻止帯域周波数
正のスカラー
阻止帯域周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。
'StopbandFrequency1'
はバンドパスまたはバンドストップ設計の低域側の阻止帯域周波数です。
'StopbandFrequency2'
はバンドパスまたはバンドストップ設計の高域側の阻止帯域周波数です。
データ型: double
CutoffFrequency
, CutoffFrequency1
, CutoffFrequency2
— 6 dB の周波数
正のスカラー
6 dB の周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。
'CutoffFrequency1'
はバンドパスまたはバンドストップ設計の低域側の 6 dB の周波数です。
'CutoffFrequency2'
はバンドパスまたはバンドストップ設計の高域側の 6 dB の周波数です。
データ型: double
HalfPowerFrequency
, HalfPowerFrequency1
, HalfPowerFrequency2
— 3 dB の周波数
正のスカラー
3 dB の周波数。正のスカラーとして指定します。周波数値はナイキスト範囲内になければなりません。
'HalfPowerFrequency1'
はバンドパスまたはバンドストップ設計の低域側の 3 dB の周波数です。
'HalfPowerFrequency2'
はバンドパスまたはバンドストップ設計の高域側の 3 dB の周波数です。
データ型: double
TransitionWidth
— 遷移領域の幅
正のスカラー
ヒルベルト変換器の通過帯域と阻止帯域の間の遷移領域の幅。正のスカラーとして指定します。
データ型: double
Frequencies
— 応答周波数
ベクトル
応答周波数。ベクトルとして指定します。この変数を使用して、任意振幅応答のフィルターにより目的の振幅が得られる周波数をリストします。周波数は単調増加し、ナイキスト範囲内になければなりません。ベクトルの最初の要素は 0 または –fs/2 でなければなりません。ここで、fs はサンプルレートです。また、最後の要素は fs/2 でなければなりません。サンプルレートを指定しない場合は、designfilt
は既定値の 2 Hz を使用します。
データ型: double
NumBands
— 帯域数
正の整数スカラー
マルチバンド設計の帯域数。10 以下の正の整数スカラーとして指定します。
データ型: double
BandFrequencies1
, ...
, BandFrequenciesN
— マルチバンド応答周波数
ベクトル
マルチバンド応答周波数。数値ベクトルとして指定します。ここで、'BandFrequenciesi'
(i は 1 から 'NumBands'
まで変化) は、マルチバンド設計の i 番目の帯域がそこで目的の値 'BandAmplitudesi'
をもつ周波数を含むベクトルです。可能な 'NumBands'
は最大 10 です。周波数はナイキスト範囲内になければならず、単調増加の順に指定しなければなりません。隣接する周波数帯域はジャンクションで振幅が同じになっていなければなりません。
データ型: double
PassbandRipple
, PassbandRipple1
, PassbandRipple2
— 通過帯域リップル
1 (既定値) | 正のスカラー
通過帯域リップル。正のスカラーをデシベル単位で指定します。
'PassbandRipple1'
はバンドストップ設計の低域側の通過帯域リップルです。
'PassbandRipple2'
はバンドストップ設計の高域側の通過帯域リップルです。
データ型: double
StopbandAttenuation
, StopbandAttenuation1
, StopbandAttenuation2
— 阻止帯域の減衰量
60 (既定値) | 正のスカラー
阻止帯域の減衰量。正のスカラーをデシベル単位で指定します。
'StopbandAttenuation1'
はバンドパス設計の低域側の阻止帯域の減衰量です。
'StopbandAttenuation2'
はバンドパス設計の高域側の阻止帯域の減衰量です。
データ型: double
Amplitudes
— 目的の応答振幅
ベクトル
目的とする、任意振幅応答フィルターの応答振幅。ベクトルとして指定します。振幅は線形単位で指定します。ベクトルは、'Frequencies'
と同じ長さでなければなりません。
データ型: double
BandAmplitudes1
, ...
, BandAmplitudesN
— マルチバンド応答振幅
ベクトル
マルチバンド応答振幅。数値ベクトルとして指定します。ここで、'BandAmplitudesi'
(i は 1 から 'NumBands'
まで変化) は、マルチバンド設計の i 番目の帯域に目的の振幅を含むベクトルです。可能な 'NumBands'
は最大 10 です。振幅は線形単位で指定します。'BandAmplitudesi'
は、'BandFrequenciesi'
と同じ長さでなければなりません。隣接する周波数帯域はジャンクションで振幅が同じになっていなければなりません。
データ型: double
DesignMethod
— 設計法
'butter'
| 'cheby1'
| 'cheby2'
| 'cls'
| 'ellip'
| 'equiripple'
| 'freqsamp'
| 'kaiserwin'
| 'ls'
| 'maxflat'
| 'window'
設計法。文字ベクトルまたは string スカラーとして指定します。設計法の選択は、指定する周波数と振幅の制約の組み合わせによって決まります。
'butter'
はバタワース IIR フィルターを設計します。バタワース フィルターでは、通過帯域で最大フラットであり、滑らかで単調な周波数応答になります。平坦さのために、急峻なロールオフを得ることができません。'cheby1'
はチェビシェフ I 型 IIR フィルターを設計します。チェビシェフ I 型フィルターでは、通過帯域では等リップル、阻止帯域では最大フラットの周波数応答になります。ロールオフが急峻になると共に、この通過帯域リップルも増加します。'cheby2'
はチェビシェフ II 型 IIR フィルターを設計します。チェビシェフ II 型フィルターでは、通過帯域では最大フラット、阻止帯域では等リップルの周波数応答になります。'cls'
は制約付き最小二乗を使用する FIR フィルターを設計します。この設計法では、指定した任意の区分線形関数とフィルターの振幅応答との誤差が最小限になります。同時に、通過帯域のリップルと阻止帯域の減衰量に制約を設定することができます。'ellip'
は楕円 IIR フィルターを設計します。楕円フィルターでは、通過帯域と阻止帯域の両方で等リップルである周波数応答になります。'equiripple'
は、Parks-McClellan アルゴリズムを使用して、等リップル FIR フィルターを設計します。等リップル フィルターでは、すべての帯域のリップル最大振幅を最小限にする周波数応答になります。'freqsamp'
は、周波数応答を等間隔にサンプリングし、逆フーリエ変換を行う、任意振幅応答の FIR フィルターを設計します。'kaiserwin'
はカイザー ウィンドウ法を使用する FIR フィルターを設計します。この設計法では、理想的なフィルターのインパルス応答を切り捨て、カイザー ウィンドウを使用して切り捨て後の振動を減衰させます。'ls'
では最小二乗を使用した FIR フィルターを設計します。この設計法では、指定した任意の区分線形関数とフィルターの振幅応答との誤差が最小限になります。'maxflat'
は、最大フラット FIR フィルターを設計します。このフィルターでは、通過帯域で最大フラットであり、滑らかで単調な周波数応答になります。'window'
は、最小二乗近似を使用して、フィルター係数を計算し、'Window'
によりインパルス応答を平滑化します。
データ型: char
| string
MinOrder
— 最小次数のパリティ
'any'
(既定値) | 'even'
'kaiserwin'
設計の最小次数のパリティ。'any'
または 'even'
で指定します。'MinOrder'
を 'even'
に設定すると、designfilt
は偶数の次数をもつ最小次数フィルターを返します。'MinOrder'
を 'any'
に設定すると、返されるフィルターは偶数または奇数の次数のうち、小さい方をもつことができます。
データ型: char
| string
Window
— ウィンドウ
数値ベクトル | ウィンドウ名 | 関数ハンドル | cell 配列
ウィンドウ。長さ 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
MatchExactly
— 厳密に一致する帯域
'stopband'
| 'passband'
| 'both'
厳密に一致する帯域。'stopband'
、'passband'
、または 'both'
で指定します。'both'
は楕円設計法でのみ利用可能で、その既定の設定です。'stopband'
は 'butter'
および 'cheby2'
設計法の既定の設定です。'passband'
は 'cheby1'
の既定の設定です。
データ型: char
| string
PassbandOffset
— 通過帯域オフセット
0 (既定値) | 正のスカラー
通過帯域オフセット。正のスカラーをデシベル単位で指定します。'PassbandOffset'
は通過帯域のフィルター ゲインを指定します。
例: 'PassbandOffset',0
では、通過帯域の単位ゲインを得るフィルターが設計されます。
例: 'PassbandOffset',2
では 2 dB または 1.259 の通過帯域ゲインを得るフィルターが設計されます。
データ型: double
ScalePassband
— 通過帯域のスケーリング
true
(既定値) | false
通過帯域のスケーリング。logical スカラーで指定します。'ScalePassband'
を true
に設定すると、ウィンドウ処理後に、フィルターがゼロ周波数で単位ゲインを得るように、通過帯域がスケーリングされます。
例: 'Window',{@kaiser,0.1},'ScalePassband',true
により、ゼロ周波数での振幅応答が厳密に 0 dB になるフィルターを指定できます。これは、'ScalePassband',false
を指定した場合には該当しません。検証するには、fvtool
を使用してフィルターを可視化し、拡大します。
データ型: logical
ZeroPhase
— ゼロ位相
false
(既定値) | true
ゼロ位相。logical スカラーで指定します。'ZeroPhase'
を true
に設定すると、設計されるフィルターのゼロ位相応答が常に正になります。これにより、結果に対してスペクトル分解を実行し、その結果から最小位相フィルターを得ることができます。
データ型: logical
PassbandWeight
, PassbandWeight1
, PassbandWeight2
— 通過帯域の最適化の重み
1 (既定値) | 正のスカラー
通過帯域の最適化の重み。正のスカラーで指定します。
'PassbandWeight1'
はバンドストップ FIR 設計の低域通過帯域の最適化の重みです。
'PassbandWeight2'
はバンドストップ FIR 設計の高域通過帯域の最適化の重みです。
データ型: double
StopbandWeight
, StopbandWeight1
, StopbandWeight2
— 阻止帯域の最適化の重み
1 (既定値) | 正のスカラー
阻止帯域の最適化の重み。正のスカラーで指定します。
'StopbandWeight1'
はバンドパス FIR 設計の低域側阻止帯域の最適化の重みです。
'StopbandWeight2'
はバンドパス FIR 設計の高域側阻止帯域の最適化の重みです。
データ型: double
Weights
— 最適化の重み
1 (既定値) | 正のスカラー | ベクトル
最適化の重み。正のスカラーまたは 'Amplitudes'
と同じ長さのベクトルとして指定します。
データ型: double
BandWeights1
, ...
, BandWeightsN
— マルチバンドの重み
1 (既定値) | 正のスカラー | ベクトル
マルチバンドの重み。一連の正のスカラーまたはベクトルとして指定します。ここで、'BandWeightsi'
(i は 1 から 'NumBands'
まで変化) は、マルチバンド設計の i 番目の帯域の最適化重みを含むスカラーまたはベクトルです。ベクトルとして指定する場合、'BandWeightsi'
は 'BandAmplitudesi'
と同じ長さでなければなりません。
データ型: double
SampleRate
— サンプルレート
2 (既定値) | 正のスカラー
サンプルレート。正のスカラーとしてヘルツ単位で指定します。正規化周波数を使用するには、'SampleRate'
を 2 に設定するか、単に省略します。
データ型: double
出力引数
d
— デジタル フィルター
digitalFilter
オブジェクト
デジタル フィルター。digitalFilter
オブジェクトとして返されます。
詳細
フィルター設計アシスタント
一連の設計パラメーターの指定に記入漏れや矛盾があると、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);
フィルターの名前を入力すると、ダイアログ ボックス内の情報が再び繰り返されます。
dee
dee = digitalFilter with properties: Coefficients: [-0.0036 0.0127 -0.0066 -0.0881 0.2595 ... 0.6521 0.2595 -0.0881 -0.0066 0.0127 -0.0036] Specifications: FrequencyResponse: 'lowpass' ImpulseResponse: 'fir' SampleRate: 2000 CutoffFrequency: 650 FilterOrder: 10 DesignMethod: 'window' Use fvtool to visualize filter Use designfilt to edit filter Use filter to filter data
FVTool を呼び出し、dee
の周波数応答をプロットします。
fvtool(dee)
カットオフ周波数は特に急峻には見えません。周波数の大部分で、応答が 40 dB を超えています。アシスタントには、[振幅の制約] に [阻止帯域の減衰量] を設定するオプションがあります。フィルター名を入力として designfilt
を呼び出し、アシスタントを開きます。
designfilt(dee)
[振幅の制約]
ドロップダウン メニューをクリックし、[通過帯域リップルと阻止帯域の減衰量]
を選択します。設計法が [ウィンドウ]
から [FIR 制約付き最小二乗]
に変わります。減衰量の既定値は 60 dB で 40 より高くなっています。[OK] をクリックし、結果のフィルターを可視化します。
dee = designfilt('lowpassfir','FilterOrder',10, ... 'CutoffFrequency',650,'PassbandRipple',1, ... 'StopbandAttenuation',60,'SampleRate',2000); fvtool(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); fvtool(dee)
実験的に、通過帯域周波数および阻止帯域周波数をそれぞれ 600 Hz および 700 Hz に設定すると、類似のフィルターが得られることがわかります。
dee = designfilt('lowpassfir','PassbandFrequency',600, ... 'StopbandFrequency',700,'PassbandRipple',1, ... 'StopbandAttenuation',60,'SampleRate',2000); fvtool(dee)
2 kHz でサンプリングされた信号があると仮定します。700 Hz を下回る周波数成分を阻止するハイパス フィルターを設計するとします。信号の位相は対象にしていません。低次のフィルターを使用する必要があります。したがって、IIR フィルターが適切であると思われます。最適なフィルター次数が不明なため、入力として次数をとる関数を記述します。MATLAB エディターを開き、次のファイルを作成します。
function dataOut = hipassfilt(Order,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]
、[通過帯域周波数] に 700 Hz、[入力サンプルレート] に 2,000 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 で導入R2021b: 関数 designfilt
は、designfilt
の呼び出しの修正には使用できなくなりました
R2021b 以降、関数 designfilt
は、スクリプトや関数内での designfilt
の呼び出しの修正には使用できなくなりました。以前のリリースでは、この関数はコマンド ライン上のコードを自動的に修正して実行していました。
コードを変更する必要はありません。designfilt
の呼び出しにエラーが含まれている場合、関数はリンクのついたエラーを発行し、フィルター設計アシスタントを開きます。このアシスタントを使用してフィルターを生成し、対応するコードをコマンド ラインに表示できます。生成されたフィルター オブジェクトはワークスペースに保存されます。
参考
digitalFilter
| double
| fftfilt
| filt2block
| filter
| filtfilt
| filtord
| firtype
| freqz
| FVTool | grpdelay
| impz
| impzlength
| info
| isallpass
| isdouble
| isfir
| islinphase
| ismaxphase
| isminphase
| issingle
| isstable
| phasedelay
| phasez
| single
| ss
| stepz
| tf
| zerophase
| zpk
| zplane
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)