主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

designfilt

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

説明

d= designfilt (分别地名称,值は,応答タ分别地digitalFilterオブジェクトdを設計します。さらに,名称,值ペアのセットを使用してフィルタ,を規定します。どのような仕様セットが使用可能であるかは,応答タ分别地によって異なり,以下の組み合わせにより構成されます。

  • “周波数制約”は,フィルタ,により目的の動作が提示される周波数に相当します。例としてはPassbandFrequencyCutoffFrequencyがあります(名前と値のペアの引数にある一覧を参照)。周波数制約は常に指定しなければなりません。

  • “振幅の制約”では,特定の周波数範囲でのフィルタ,の動作を記述します。例としてはPassbandRippleStopbandAttenuationがあります(名前と値のペアの引数にある一覧を参照)。未指定の振幅の制約には,designfiltにより既定値が設定されます。任意振幅の設計では,目的の振幅のベクトルを必ず指定しなければなりません。

  • FilterOrder.一部の設計法では次数を指定できます。それ以外では最小次数設計が生成されます。。

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

  • “設計オプション”は,特定の設計法に特有のパラメ,タ,です。例としては,“窗口”法の窗口と,任意振幅等リップル設計の最適化用の权重があります(名前と値のペアの引数にある一覧を参照)。指定されなかった設計オプションに対しては,designfiltにより既定値が設定されます。

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

メモ

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

正しくない仕様セットを使用してスクリプトまたは関数からdesignfiltを呼び出すと,designfiltフィルタ,設計アシスタントを開くリンクのいたエラメッセジを発行します。このアシスタントは,フィルターの設計を支援し,関数やスクリプト内の欠陥コードをコメントアウトして,修正したMATLABコードをその次の行に貼り付けます。

  • digitalFilterdを使用して信号をフィルタ,処理するには,dataOut = filter(d,dataIn)の型の过滤器を使用します。

  • digitalFilterdの可視化には,FVToolを使用します。

  • d.Coefficientsと入力するとdigitalFilterdの係数が得られます。Iirフィルタ,では,係数は2次セクション型として表されます。

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

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

すべて折りたたむ

正規化された通過帯域周波数 0 2 5 π rad/s,阻止帯域周波数 0 3. 5 π rad / s,通過帯域リップル0.5 dB,阻止帯域の減衰量65分贝を持つ最小次数ローパス冷杉フィルターを設計します。フィルタの設計にはカザウィンドウを使用します。振幅応答を可視化します。これを使用して,ランダムデ,タで構成されるベクトルをフィルタ,処理します。

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);

通過帯域周波数35 kHz,通過帯域リップル0.2 dBをもつ,8次のローパスIIRフィルターを設計します。サンプルレ,トを200 kHzに指定します。フィルタ,の振幅応答を可視化します。

lpFilt = designfilt(“lowpassiir”“FilterOrder”8...“PassbandFrequency”35岁的e3,“PassbandRipple”, 0.2,...“SampleRate”200年e3);fvtool (lpFilt)

設計したフィルタ,を使用して,1000サンプルのランダム信号をフィルタ,処理します。

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

フィルタ,係数を出力して,2次セクション型として表します。

sos = lpFilt。系数
sos =4×60.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

正規化された阻止帯域周波数 0 2 5 π rad/s,通過帯域周波数 0 3. 5 π rad / s,通過帯域リップル0.5 dB,阻止帯域の減衰量65分贝を持つ最小次数ハイパス冷杉フィルターを設計します。フィルタの設計にはカザウィンドウを使用します。振幅応答を可視化します。これを使用して,1000サンプルのランダムデ,タをフィルタ,処理します。

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);

通過帯域周波数75 kHz,通過帯域リップル0.2 dBをもつ,8次のハイパスIIRフィルターを設計します。サンプルレ,トを200 kHzに指定します。フィルタ,の振幅応答を可視化します。1,000サンプルのランダム データで構成されるベクトルにフィルターを適用します。

hpFilt = designfilt(“highpassiir”“FilterOrder”8...“PassbandFrequency”75年e3,“PassbandRipple”, 0.2,...“SampleRate”200年e3);fvtool (hpFilt)

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

低域カットオフ周波数が500 Hzで,高域カットオフ周波数が560 Hzである20次のバンドパス冷杉フィルターを設計します。サンプルレ,トは1500 Hzです。フィルタ,の振幅応答を可視化します。これを使用して,1000サンプルのランダム信号をフィルタ,処理します。

bpFilt = designfilt(“bandpassfir”“FilterOrder”, 20岁,...“CutoffFrequency1”, 500,“CutoffFrequency2”, 560,...“SampleRate”, 1500);fvtool (bpFilt)

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

フィルタ,係数を出力します。

b = bpFilt。系数
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

低域側の3 dBの周波数が500 Hzで,高域側の3 dBの周波数が560 Hzである20次のバンドパスIIRフィルターを設計します。サンプルレ,トは1500 Hzです。フィルタ,の周波数応答を可視化します。これを使用して,1000サンプルのランダム信号をフィルタ,処理します。

bpFilt = designfilt(“bandpassiir”“FilterOrder”, 20岁,...“HalfPowerFrequency1”, 500,“HalfPowerFrequency2”, 560,...“SampleRate”, 1500);fvtool (bpFilt)

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

低域カットオフ周波数が500 Hzで,高域カットオフ周波数が560 Hzである20次のバンドストップ冷杉フィルターを設計します。サンプルレ,トは1500 Hzです。フィルタ,の振幅応答を可視化します。これを使用して,1000サンプルのランダムデ,タをフィルタ,処理します。

bsFilt = designfilt(“bandstopfir”“FilterOrder”, 20岁,...“CutoffFrequency1”, 500,“CutoffFrequency2”, 560,...“SampleRate”, 1500);fvtool (bsFilt)

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

低域側の3 dBの周波数が500 Hzで,高域側の3 dBの周波数が560 Hzである20次のバンドストップIIRフィルターを設計します。サンプルレ,トは1500 Hzです。フィルタ,の振幅応答を可視化します。これを使用して,1000サンプルのランダムデ,タをフィルタ,処理します。

bsFilt = designfilt(“bandstopiir”“FilterOrder”, 20岁,...“HalfPowerFrequency1”, 500,“HalfPowerFrequency2”, 560,...“SampleRate”, 1500);fvtool (bsFilt)

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

7次の全帯域微分器フィルタ,を設計します。そのゼロ位相応答を表示します。これを使用して,1000サンプルのランダムデ,タで構成されるベクトルをフィルタ,処理します。

dFilt = designfilt(“differentiatorfir”“FilterOrder”7);fvtool (dFilt“MagnitudeDisplay”“零”

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

18次のヒルベルト変換器を設計します。正規化された遷移幅 0 2 5 π Rad /sを指定します。フィルタ,の振幅応答を線形単位で表示します。これを使用して,1000サンプルのランダムデ,タで構成されるベクトルをフィルタ,処理します。

hFilt = designfilt(“hilbertfir”“FilterOrder”, 18岁,“TransitionWidth”, 0.25);fvtool (hFilt“MagnitudeDisplay”“级”

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

1 kHzでサンプリングされた信号があると仮定します。100Hz と 350 Hz の間の周波数と 400 Hz より大きい周波数を阻止するフィルターを設計します。フィルター次数を 60 に指定します。フィルターの周波数応答を可視化します。これを使用して、1,000 サンプルのランダム信号をフィルター処理します。

mbFilt = designfilt(“arbmagfir”“FilterOrder”现年60岁的...“频率”0:50:500,“振幅”,[1 1 1 1 0 0 0 0 0 1 1 0 0],...“SampleRate”, 1000);fvtool (mbFilt)

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

入力引数

すべて折りたたむ

フィルタ応答およびタプ。文字ベクトルまたは字符串スカラ,で指定します。分别地の選択可能な値の1をクリックすると,利用可能な仕様セットの表が展開されます。

“lowpassfir”

“lowpassiir”

“highpassfir”

“highpassiir”

“bandpassfir”

“bandpassiir”

“bandstopfir”

“bandstopiir”

“differentiatorfir”

“hilbertfir”

“arbmagfir”

デ,タ型:字符|字符串

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

名前と値のペアの引数

オプションの引数名称,值のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:ロパスfirフィルタを指定する場合は,“CutoffFrequency”“FilterOrder”,20日,0.4で十分です。

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

フィルタ,次数

すべて折りたたむ

フィルタ,次数。“FilterOrder”と正の整数スカラ,とで構成されるコンマ区切りペアで指定します。

デ,タ型:

Iir設計の分子次数。“NumeratorOrder”と正の整数スカラ,とで構成されるコンマ区切りペアで指定します。

デ,タ型:

Iir設計の分母次数。“DenominatorOrder”と正の整数スカラ,で構成されるコンマ区切りペアで指定します。

デ,タ型:

周波数制約

すべて折りたたむ

通過帯域周波数。“PassbandFrequency”と正のスカラ,とで構成されるコンマ区切りペアで指定します。周波数値はナ@ @キスト範囲内になければなりません。

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

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

デ,タ型:

阻止帯域周波数。“StopbandFrequency”と正のスカラ,で構成されるコンマ区切りペアで指定します。周波数値はナ@ @キスト範囲内になければなりません。

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

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

デ,タ型:

6 dBの周波数。“CutoffFrequency”と正のスカラ,で構成されるコンマ区切りペアで指定します。周波数値はナ@ @キスト範囲内になければなりません。

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

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

デ,タ型:

3 dBの周波数。“HalfPowerFrequency”と正のスカラ,で構成されるコンマ区切りペアで指定します。周波数値はナ@ @キスト範囲内になければなりません。

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

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

デ,タ型:

ヒルベルト変換器の通過帯域と阻止帯域の間の遷移領域の幅。“TransitionWidth”と正のスカラ,とで構成されるコンマ区切りペアで指定します。

デ,タ型:

応答周波数。“频率”とベクトルとで構成されるコンマ区切りのペアで指定します。この変数を使用して,任意振幅応答のフィルタ,により目的の振幅が得られる周波数をリストします。周波数は単調増加し,ナ。ベクトルの最初の要素は0または- f年代/ 2でなければなりません。ここで,f年代はサンプルレ,トです。また,最後の要素はf年代/ 2でなければなりません。サンプルレ,トを指定しない場合は、designfiltは既定値の2 Hzを使用します。

デ,タ型:

マルチバンド設計の帯域数。“NumBands”と10以下の正の整数スカラ,とで構成されるコンマ区切りペアで指定します。

デ,タ型:

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

デ,タ型:

振幅の制約

すべて折りたたむ

通過帯域リップル。“PassbandRipple”とdB単位表記の正のスカラ,とで構成されるコンマ区切りペアで指定します。

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

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

デ,タ型:

阻止帯域の減衰量。“StopbandAttenuation”と,dB単位表記の正のスカラ,で構成されるコンマ区切りペアで指定します。

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

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

デ,タ型:

目的とする,任意振幅応答フィルタ,の応答振幅。“振幅”とベクトルとで構成されるコンマ区切りのペアで指定します。振幅は線形単位で指定します。ベクトルは,“频率”と同じ長さでなければなりません。

デ,タ型:

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

デ,タ型:

設計法

すべて折りたたむ

設計法。“DesignMethod”と文字ベクトルまたは字符串スカラ,で構成されるコンマ区切りのペアで指定します。設計法の選択は,指定する周波数と振幅の制約の組み合わせによって決まります。

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

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

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

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

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

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

  • “freqsamp”は,周波数応答を一様にサンプリングし,逆フーリエ変換を行う,任意振幅応答の冷杉フィルターを設計します。

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

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

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

  • “窗口”は,最小二乗近似を使用して,フィルタ,係数を計算し,窗口により@ @ンパルス応答を平滑化します。

デ,タ型:字符|字符串

設計法オプション

すべて折りたたむ

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

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

例:“窗口”,损害(N + 1)“窗口”,(1-cos(2 *π* (0:N) / N)) / 2はいずれも次数Nのフィルタ,と共に使用するハンウィンドウを指定します。

例:“窗口”、“汉明”は,必要な次数のハミングウィンドウを指定します。

例:“窗口”,@mywindowでは独自のウィンドウ関数が定義できます。

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

デ,タ型:|字符|字符串|function_handle|细胞

厳密に一致する帯域。“MatchExactly”阻带的“通频带”または“两个”のいずれかとで構成されるコンマ区切りのペアで指定します。“两个”は楕円設計法でのみ利用可能で,その既定の設定です。阻带的“黄油”および“cheby2”設計法の既定の設定です。“通频带”“cheby1”の既定の設定です。

デ,タ型:字符|字符串

通過帯域オフセット。“PassbandOffset”とdB単位表記の正のスカラ,とで構成されるコンマ区切りペアで指定します。“PassbandOffset”は通過帯域のフィルタゲンを指定します。

例:“PassbandOffset”,0では,通過帯域の単位ゲ。

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

デ,タ型:

通過帯域のスケ,リング。“ScalePassband”とlogicalスカラとで構成されるコンマ区切りペアで指定します。“ScalePassband”真正的に設定すると,ウィンドウ処理後に,フィルターがゼロ周波数で単位ゲインを得るように,通過帯域がスケーリングされます。

例:{@kaiser, 0.1}‘窗口’,‘ScalePassband’,真的により,ゼロ周波数での振幅応答が厳密に0 dBになるフィルタ,を指定できます。これは,“ScalePassband”,假的を指定した場合には該当しません。検証するには,fvtoolを使用してフィルタ,を可視化し,拡大します。

デ,タ型:逻辑

ゼロ位相。“ZeroPhase”とlogicalスカラとで構成されるコンマ区切りペアで指定します。“ZeroPhase”真正的に設定すると,設計されるフィルタ,のゼロ位相応答が常に正になります。これにより,結果に対してスペクトル分解を実行し,その結果から最小位相フィルターを得ることができます。

デ,タ型:逻辑

通過帯域の最適化の重み。“PassbandWeight”と正のスカラ,とで構成されるコンマ区切りペアで指定します。

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

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

デ,タ型:

阻止帯域の最適化の重み。“StopbandWeight”と正のスカラ,とで構成されるコンマ区切りペアで指定します。

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

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

デ,タ型:

最適化の重み。“重量”と,正のスカラ,または“振幅”と同じ長さのベクトルとで構成されるコンマ区切りペアで指定します。

デ,タ型:

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

デ,タ型:

サンプルレ,ト

すべて折りたたむ

サンプルレ,ト。“SampleRate”とHz表記の正のスカラ,とで構成されるコンマ区切りペアで指定します。正規化周波数を使用するには,“SampleRate”を2に設定するか,単に省略します。

デ,タ型:

出力引数

すべて折りたたむ

デジタルフィルタ。digitalFilterオブジェクトとして返されます。

詳細

すべて折りたたむ

フィルタ,設計アシスタント

一連の設計パラメ,タ,の指定に記入漏れや矛盾があると,designfiltによりフィルタ,設計アシスタントの開始が提案されます

分别地の引数の説明内に,利用可能な全応答タaaplプに対応する有効な仕様セットの一覧があります)。

アシスタントは,designfiltをコマンドラ@ @ンまたはスクリプトや関数のいずれで呼び出すかによって動作が異なります。

コマンドラ▪▪ンでのフィルタ▪▪設計アシスタント

2 kHzでサンプリングされた信号があると仮定します。650hzより高い周波数成分を抑えるロパスFIRフィルタを設計するとします。仕様パラメ,タ,として,“CutoffFrequency”が適切と考えられます。Matlabコマンドラaapl . exeンで,次のように入力します。

Fsamp = 2e3;Fctff = 650;Dee = designfilt(“lowpassfir”“CutoffFrequency”Fctff,...“SampleRate”, Fsamp);

何かが間違っているらしく,次のダ。

[はい]をクリックすると,コ,ド生成を提案する新しいダ,アログボックスが表示されます。前に定義した変数が予想した場所に挿入されています。

提案されたオプションをいくか調べた後,修正したフィルタをテストします。(好的)をクリックすると,コマンドラ。

Dee = designfilt(“lowpassfir”“FilterOrder”10...“CutoffFrequency”Fctff,“SampleRate”, Fsamp);

フィルタの名前を入力すると,ダアログボックス内の情報が再び繰り返されます。

dee = digitalFilter与属性:系数:[1x11 double]规格:FrequencyResponse: 'lowpass' impulse esponse: 'fir' SampleRate: 2000 FilterOrder: 10 CutoffFrequency: 650 DesignMethod: 'window'使用fvtool可视化过滤器使用过滤器函数来过滤数据

FVToolを呼び出し,の周波数応答をプロットします。

fvtool(迪)

カットオフ周波数は特に急峻には見えません。周波数の大部分で,応答が40 dBを超えています。アシスタントには,[振幅の制約]に[阻止帯域の減衰量]を設定するオプションがあります。フィルタ,名を入力としてdesignfiltを呼び出し,アシスタントを開きます。

designfilt(迪)

[振幅の制約]ドロップダウンメニュ,をクリックし,[通過帯域リップルと阻止帯域の減衰量]を選択します。設計法が[ウィンドウ]から[fir制約付き最小二乗]に変わります。減衰量の既定値は60 dBで40より高くなっています。(好的)をクリックし,結果のフィルタ,を可視化します。

Dee = designfilt(“lowpassfir”“FilterOrder”10...“CutoffFrequency”Fctff,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...“SampleRate”, Fsamp);fvtool(迪)

カットオフ周波数は依然として急峻には見えません。減衰量は実際に60 dBになっていますが,900 Hzを超える周波数に対してのみです。

再びフィルタ,名を入力に指定してdesignfiltを呼び出します。

designfilt(迪)

再度アシスタントが表示されます。

受け取る周波数と阻止する周波数の差を縮めるには,フィルタ,の次数を大きくするか,あるいは[周波数制約][カットオフ(6 dB)周波数]から[通過帯域周波数と阻止帯域周波数]に変更します。フィルタ,次数を10から50に変更すると、急峻なフィルターが得られます。

Dee = designfilt(“lowpassfir”“FilterOrder”, 50岁,...“CutoffFrequency”, 650,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...“SampleRate”, 2000);fvtool(迪)

実験的に,通過帯域周波数および阻止帯域周波数をそれぞれ600 Hzおよび700 Hzに設定すると,類似のフィルターが得られることがわかります。

Dee = designfilt(“lowpassfir”“PassbandFrequency”, 600,...“StopbandFrequency”, 700,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...“SampleRate”, 2000);fvtool(迪)

スクリプトまたは関数内でのフィルタ,設計アシスタント

2 kHzでサンプリングされた信号があると仮定します。700hzを下回る周波数成分を阻止するハaapl . exeパスフィルタ。信号の位相は対象にしていません。低次のフィルタ,を使用する必要があります。したがって,iirフィルタ,が適切であると思われます。最適なフィルタ,次数が不明なため,入力として次数をとる関数を記述します。Matlabエディタを開き,次のファルを作成します。

函数hipassfilt(N,dataIn) hpFilter = designfilt(“highpassiir”“FilterOrder”N);dataOut = filter(hpFilter,dataIn);结束

関数をテストするには,周波数が500 Hzと800 Hzの2つの正弦波で構成される信号を作成し,0.1秒間のサンプルを生成します。初期推定として5次のフィルタ,が妥当と考えられます。driveHPfilt.mというスクリプトを作成します。

%脚本driveHPfilt.mFsamp = 2e3;Fsm = 500;Fbg = 800;t = 0:1/Fsamp:0.1;sin(2*pi*Fsm*t)+sin(2*pi*Fbg*t);Order = 5;sgout = hipassfilt(Order,sgin);

コマンドランでこのスクリプトを実行すると,エラメッセジが表示されます。

エラ,メッセ,ジから,アシスタントを開いてmatlabコ,ドを訂正することを選択できます。点击这里をクリックすると,フィルタ,設計アシスタントが表示されます。

問題点がわかります。周波数制約が指定されていません。サンプルレートも設定されていません。試した後、[周波数単位](赫兹)[通過帯域周波数]に700hz,[入力サンプルレ,ト]に2000 Hzを指定できることがわかります。[設計法][バタワ,ス]から[チェビシェフ我型]に変わります。(好的)をクリックすると以下が表示されます。

アシスタントはdesignfiltが呼び出されたファ@ @ルを正しく特定しています。[はい]をクリックして変更を確定します。訂正されたmatlabコ,ドが関数に設定されます。

函数dataOut = hipassfilt(N,dataIn)% hpFilter = designfilt('highpassiir','FilterOrder',N);hpFilter = designfilt(“highpassiir”“FilterOrder”N...“PassbandFrequency”, 700,“PassbandRipple”, 1...“SampleRate”, 2000);dataOut = filter(hpFilter,dataIn);结束

これでスクリプトを,フィルタ,次数値をさまざまに変えて実行できるようになりました。設計の制約によっては,仕様セットを変更できます。

フィルタ,設計アシスタントの基本設定

フィルタ,設計アシスタントを表示しないようにdesignfiltを設定できます。このアクションは,setprefを使用してmatlabの特定の基本設定を解除する設定を行います。

  • 毎回アシスタントを表示するには,setpref(‘dontshowmeagain’,‘filterDesignAssistant’,假)を使用します。このコマンドにより,アシスタントを無効にした後に,再表示できます。

  • アシスタントを常に無効にするには,setpref(‘dontshowmeagain’,‘filterDesignAssistant’,真的)を使用します。最初のダ@ @アログボックスにある[次回からこのメッセ,ジを表示しない]をクリックすることもできます。

欠陥のある仕様を常に確認なしで訂正するようdesignfiltを設定できます。このアクションは,setprefを使用してmatlabの特定の基本設定を解除する設定を行います。

  • 確認を求めずにmatlabコ,ドを訂正するようdesignfiltを設定するには,setpref(‘dontshowmeagain’,‘filterDesignAssistantCodeCorrection’,假)を使用します。確認ダ@ @アログボックスの[常に受け入れる]をクリックすることもできます。

  • 変更を確定した場合にのみdesignfiltによりmatlabコ,ドが訂正されるようにするには,setpref(‘dontshowmeagain’,‘filterDesignAssistantCodeCorrection’,真的)を使用します。このコマンドでは,確認ダ[常に受け入れる]のクリックによる作用を取り消すことができます。

トラブルシュ,ティング

不適切な仕様セットの指定に対し,designfiltにより,ダイアログボックスまたはエラーメッセージ内のリンクを介したフィルター設計アシスタントの提案が行われない場合があります。

  • コドセクション評価の使用時は,それがmatlabルストリップからか按Ctrl + Enterキ,を押すことによるかにかかわらず,アシスタントは提案されません(詳細に,,ファ▪▪ルのコ▪▪ドセクションへの分割を参照)。

  • コドにdesignfiltへの呼び出しが複数あり,その中に正しくないものが含まれる場合,以下の状況ではアシスタントは提案されません。

    • コマンドランにコドを貼り付け,输入キ,を押して実行する場合

    • エディタ,でコ,ドを選択し,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で導入