ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fdesign.bandstop

バンドストップ フィルターの仕様オブジェクト

構文

D = fdesign.bandstop
D = fdesign.bandstop(SPEC)
D = fdesign.bandstop(SPEC,specvalue1,specvalue2,...)
D = fdesign.bandstop(specvalue1,specvalue2,specvalue3,specvalue4,...
specvalue5,specvalue6,specvalue7)
D = fdesign.bandstop(...,Fs)
D = fdesign.bandstop(...,MAGUNITS)

説明

D = fdesign.bandstop では、バンドストップ フィルター仕様オブジェクト D が作成され、プロパティ Fpass1Fstop1Fstop2Fpass2Apass1Astop1 および Apass2 の既定値が適用されます。

D = fdesign.bandstop(SPEC) では、D オブジェクトが作成され、その Specification プロパティが SPEC に設定されます。SPEC 文字列のエントリは、フィルター次数などの、フィルター設計を左右するさまざまなフィルター応答の機能を表します。SPEC の有効な値を以下に示します。文字列では、大文字と小文字は区別されません。

    メモ:    アスタリスク付きの仕様文字列には、DSP System Toolbox™ ソフトウェアが必要です。

  • 'Fp1,Fst1,Fst2,Fp2,Ap1,Ast,Ap2' (既定の仕様)

  • 'N,F3dB1,F3dB2'

  • 'N,F3dB1,F3dB2,Ap' *

  • 'N,F3dB1,F3dB2,Ap,Ast' *

  • 'N,F3dB1,F3dB2,Ast' *

  • 'N,F3dB1,F3dB2,BWp' *

  • 'N,F3dB1,F3dB2,BWst' *

  • 'N,Fc1,Fc2'

  • 'N,Fc1,Fc2,Ap1,Ast,Ap2'

  • 'N,Fp1,Fp2,Ap'

  • 'N,Fp1,Fp2,Ap,Ast'

  • 'N,Fp1,Fst1,Fst2,Fp2'

  • 'N,Fp1,Fst1,Fst2,Fp2,C' *

  • 'N,Fp1,Fst1,Fst2,Fp2,Ap' *

  • 'N,Fst1,Fst2,Ast'

  • 'Nb,Na,Fp1,Fst1,Fst2,Fp2' *

文字列エントリは、以下のように定義されます。

  • Ap — 通過帯域内で許容されるデシベル単位 (既定の単位) のリップル量。Apass とも呼ばれます。

  • Ap1 — 通過帯域内で許容されるデシベル単位 (既定の単位) のリップル量。Apass1 とも呼ばれます。

  • Ap2 — 通過帯域内で許容されるデシベル単位 (既定の単位) のリップル量。Apass2 とも呼ばれます。

  • Ast — デシベル (既定の単位) で表した最初の阻止帯域の減衰量。Astop1 とも呼ばれます。

  • BWp — フィルター通過帯域の帯域幅。正規化された周波数単位で指定されます。

  • BWst — フィルター阻止帯域の帯域幅。正規化された周波数単位で指定されます。

  • C — 制約付き帯域フラグ。これにより、3 つの帯域のうちの 1 つまたは 2 つにおいて、固定次設計の通過帯域リップルまたは阻止帯域の減衰量を指定できます。

    仕様文字列 'N,Fp1,Fst1,Fst2,Fp2,C' では、阻止帯域と通過帯域の両方で同時に制約を指定できません。制約は 1 つまたは 2 つの帯域で指定できます。

  • F3dB1 — 最初のカットオフの通過帯域値より 3 dB 低い位置でのカットオフ周波数。

  • F3dB2 — 2 番目のカットオフの通過帯域値より 3 dB 低い位置でのカットオフ周波数。

  • Fc1 — 最初のカットオフの通過帯域値より 6 dB 低い位置でのカットオフ周波数。(FIR フィルター)

  • Fc2 — 2 番目のカットオフの通過帯域値より 6 dB 低い位置でのカットオフ周波数。(FIR フィルター)

  • Fp1 — 通過帯域の開始位置での周波数。Fpass1 とも呼ばれます。

  • Fp2 — 通過帯域の終了位置での周波数。Fpass2 とも呼ばれます。

  • Fst1 — 最初の阻止帯域の終端での周波数。Fstop1 とも呼ばれます。

  • Fst2 — 2 番目の阻止帯域の開始位置での周波数。Fstop2 とも呼ばれます。

  • N — フィルター次数

  • Na — IIR フィルターの分母の次数。

  • Nb — IIR フィルターの分子の次数。

フィルターの仕様を図で表すと、次のようになります。

Fp1Fst1 間などの仕様値が指定されていない領域は、フィルター応答が明示的に定義されていない遷移領域です。

バンドストップ フィルター仕様オブジェクトに適用されるフィルター設計法は、Specification 文字列により異なります。オブジェクトとその Specification プロパティ値にどの設計法を適用できるかを確認するには、designmethods を使用してください。

特定の設計法の設計オプションを確認するには、designopts を使用してください。MATLAB® コマンド ラインで「help(D,METHOD)」と入力すると、特定の設計法 METHOD に対する設計オプションの詳細ヘルプを取得できます。

D = fdesign.bandstop(SPEC,specvalue1,specvalue2,...) ではオブジェクト D が作成され、その仕様が作成時に設定されます。

D = fdesign.bandstop(specvalue1,specvalue2,specvalue3,specvalue4,...
specvalue5,specvalue6,specvalue7)
では、D が作成されます。これは既定の Specification プロパティ文字列 をもち、specvalue1,specvalue2,specvalue3,specvalue4,specvalue5, specvalue6 および specvalue7 内で指定する値を使用します。

D = fdesign.bandstop(...,Fs) では、引数 Fs が Hz で追加され、サンプリング周波数が定義されます。後に続くスカラーとしてサンプリング周波数を指定する場合は、仕様のすべての周波数も Hz 単位とします。

D = fdesign.bandstop(...,MAGUNITS) は、入力引数で指定する振幅仕様の単位を指定します。MAGUNITS は、以下のいずれかです。

  • 'linear' — 振幅を線形単位で指定

  • 'dB' — 振幅を dB (デシベル) 単位で指定

  • 'squared' — 振幅をパワー単位で指定

MAGUNITS 引数の指定を省略すると、fdesign はすべての振幅をデシベル単位として扱います。fdesign は振幅をどのように指定したかにかかわらず、すべての振幅を (必要に応じて変換して) デシベル単位で格納します。

バンドストップ フィルターを作成し、3π/8 ~ 5π/8 ラジアン/サンプルの離散周波数帯域を排除します。3 つの離散時間正弦波の重ね合わせから構成される離散時間信号に対してフィルターを適用します。

FIR 等リップル フィルターを設計し、振幅応答を表示します。

d = fdesign.bandstop('Fp1,Fst1,Fst2,Fp2,Ap1,Ast,Ap2',2/8,3/8,5/8,6/8,1,60,1);
Hd = design(d,'equiripple');
fvtool(Hd)

フィルター処理対象の離散時間信号を作成します。

n = 0:99;
x = cos(pi/5*n)+sin(pi/2*n)+cos(4*pi/5*n);
y = filter(Hd,x);
xdft = fft(x);
ydft = fft(y);
freq = 0:(2*pi)/length(x):pi;
plot(freq,abs(xdft(1:length(x)/2+1)));
hold on;
plot(freq,abs(ydft(1:length(y)/2+1)),'r','linewidth',2);
xlabel('Radians/Sample'); ylabel('Magnitude');
legend('Original Signal','Bandstop Signal');

10 kHz でサンプリングされたデータに対し、バタワース バンドストップ フィルターを作成します。阻止帯域は [1,1.5] kHz とします。フィルターの次数は 20 です。

d = fdesign.bandstop('N,F3dB1,F3dB2',20,1e3,1.5e3,1e4);
Hd = design(d,'butter');
fvtool(Hd);

振幅応答プロットでズーム インし、3 dB 下りポイントが 1 および 1.5 kHz にあることを検証します。

次の例では、DSP System Toolbox ライセンスが必要です。

10 kHz でサンプリングされたデータに対し、次数 100 の制約付き帯域 FIR 等リップル フィルターを設計します。次の 3 つの帯域のうち、最大 2 つの帯域で制約を指定できます。2 つの通過帯域と 1 つの阻止帯域。この例では、通過帯域リップルが各通過帯域で 0.5 dB になるように制約します。フィルターを設計し、振幅応答を可視化して、フィルターの設計を測定します。

d = fdesign.bandstop('N,Fp1,Fst1,Fst2,Fp2,C',100,800,1e3,1.5e3,1.7e3,1e4);
d.Passband1Constrained = true; d.Apass1 = 0.5;
d.Passband2Constrained = true; d.Apass2 = 0.5;
Hd = design(d,'equiripple');
fvtool(Hd);
measure(Hd)

この次数フィルターと通過帯域リップル制約により、阻止帯域を約 50 dB 減衰できます。

この情報は役に立ちましたか?