Main Content

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

標準的 IIR フィルター設計

この例では、標準的 IIR フィルターの設計法を示します。この例では、最初に、重要な設計パラメーターがカットオフ周波数であるシナリオを考えます。フィルターのパワーは、カットオフ周波数においてノミナル通過帯域値の半分 (–3 dB) に減衰します。

次に、この例では、バタワース設計を同じ次数のチェビシェフ フィルターまたは楕円フィルターに置き換えて、フィルターの通過帯域や阻止帯域内のリップルをある程度犠牲にして急峻なロールオフを得る方法を示します。最後に、この例では最小次数のフィルター設計について検討します。

ローパス フィルター

0.4𝜋 の正規化されたカットオフ周波数の 8 次フィルターを設計します。最初に、可能な限り平坦なバタワース フィルターを設計します (通過帯域や阻止帯域にリップルはありません)。

N = 8; 
F3dB = .4;
d = fdesign.lowpass("N,F3dB",N,F3dB);
Hbutter = design(d,"butter",SystemObject=true)
Hbutter = 
  dsp.SOSFilter with properties:

            Structure: 'Direct form II'
    CoefficientSource: 'Property'
            Numerator: [4x3 double]
          Denominator: [4x3 double]
       HasScaleValues: true
          ScaleValues: [0.2914 0.2261 0.1929 0.1788 1]

  Use get to show all properties

チェビシェフ I 型フィルターは、通過帯域でリップルをもち、阻止帯域でリップルをもちません。チェビシェフ I 型設計では、通過帯域のリップルを制御できます。通過帯域のリップルを大きくすると、急峻なロールオフが得られます。

0.5 dB のピーク間リップルをもつチェビシェフ I 型フィルターを設計します。

Ap = .5;
setspecs(d,"N,F3dB,Ap",N,F3dB,Ap);
Hcheby1 = design(d,"cheby1",SystemObject=true);
hfvt = fvtool(Hbutter,Hcheby1);
legend(hfvt,"Butterworth","Chebyshev Type I");

Figure Figure 1: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 2 objects of type line. These objects represent Butterworth, Chebyshev Type I.

チェビシェフ II 型フィルターは、阻止帯域でリップルをもち、通過帯域でリップルをもちません。チェビシェフ II 型設計では、阻止帯域の減衰量を制御できます。阻止帯域の減衰量を小さくすると、急峻なロールオフが得られます。

80 dB の阻止帯域の減衰量をもつチェビシェフ II 型フィルターを設計します。

Ast = 80;
setspecs(d,"N,F3dB,Ast",N,F3dB,Ast);
Hcheby2 = design(d,"cheby2",SystemObject=true);
hfvt = fvtool(Hbutter,Hcheby2);
legend(hfvt,"Butterworth","Chebyshev Type II");

Figure Figure 2: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 2 objects of type line. These objects represent Butterworth, Chebyshev Type II.

最後に、楕円フィルターは、阻止帯域と通過帯域の両方でリップルを使用できるので、前の設計と比較して急峻なロールオフを提供できます。このことを示すために、前の手順と同じ通過帯域と阻止帯域の特性を使用して楕円フィルターを設計します。

setspecs(d,"N,F3dB,Ap,Ast",N,F3dB,Ap,Ast);
Hellip = design(d,"ellip",SystemObject=true);
hfvt = fvtool(Hbutter,Hcheby1,Hcheby2,Hellip);
legend(hfvt, ...
    "Butterworth","Chebyshev Type I","Chebyshev Type II","Elliptic");

Figure Figure 3: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 4 objects of type line. These objects represent Butterworth, Chebyshev Type I, Chebyshev Type II, Elliptic.

通過帯域をズームインし、すべてのフィルターに同じ -3 dB 周波数点があること、およびバタワース設計とチェビシェフ II 型設計のみで完全に平坦な通過帯域があることを確認します。

位相の考慮事項

位相応答が設計上の問題である場合、バタワースおよびチェビシェフ タイプ II の歪みが小さい (群遅延が平坦である) ことに注意してください。前の手順で設計した 4 つのフィルターの群遅延応答を比較して、そのことを確認します。

hfvt.Analysis = "grpdelay";

Figure Figure 3: Group delay contains an axes object. The axes object with title Group delay, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Group delay (in samples) contains 4 objects of type line. These objects represent Butterworth, Chebyshev Type I, Chebyshev Type II, Elliptic.

最小次数設計

最小次数設計は、通過帯域、阻止帯域、および許容可能なリップルの振幅が完全に指定されている場合に適用されます。この場合、3 dB カットオフ周波数は重要ではありません。設計仕様を満たすのに必要な最小フィルター次数は、設計アルゴリズムによって自動的に導出されます。

最小次数の IIR フィルターを設計します。

Fp = .1; 
Fst = .3; 
Ap = 1;
Ast = 60;
setspecs(d,"Fp,Fst,Ap,Ast",Fp,Fst,Ap,Ast);
Hbutter = design(d,"butter",SystemObject=true);
Hcheby1 = design(d,"cheby1",SystemObject=true);
Hcheby2 = design(d,"cheby2",SystemObject=true);
Hellip = design(d,"ellip",SystemObject=true);
hfvt = fvtool(Hbutter,Hcheby1,Hcheby2,Hellip,DesignMask="on");
legend(hfvt, ...
    "Butterworth","Chebyshev Type I","Chebyshev Type II","Elliptic");

Figure Figure 4: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 5 objects of type line. These objects represent Butterworth, Chebyshev Type I, Chebyshev Type II, Elliptic.

バタワース設計では 7 次のフィルターを適用することにより仕様を満たす必要がありますが、2 種類のチェビシェフ手法の場合は 5 次のフィルターで十分です。楕円設計では、必要なフィルター次数がさらに 4 まで減ります。

order(Hbutter)
ans = 7
order(Hcheby1)
ans = 5
order(Hcheby2)
ans = 5
order(Hellip)
ans = 4

通過帯域または阻止帯域仕様への完全な準拠

最小次数設計では、指定の仕様を満たす理想的な次数は非整数となる場合があります。最も近い整数に切り上げた場合、非整数の次数が追加されるため、仕様よりも大きくなる可能性があります。

2 つの帯域のうち少なくとも 1 つで仕様と完全に一致させるには、MatchExactly オプションを使用して設計アルゴリズムに制約を課します。既定では、チェビシェフ I 型設計のフィルター次数は、通過帯域で仕様を満たし、阻止帯域で仕様よりも大きくなります。バタワースとチェビシェフ II 型のフィルター次数は、阻止帯域で仕様を満たし、通過帯域で仕様よりも大きくなります。楕円フィルターの設計では、両方の帯域でターゲット減衰量の仕様を満たしますが、阻止帯域のエッジ周波数は仕様よりも大きくなります。

Hellipmin1 = design(d,"ellip",MatchExactly="passband",SystemObject=true);
Hellipmin2 = design(d,"ellip",MatchExactly="stopband",SystemObject=true);
hfvt = fvtool(Hellip, Hellipmin1, Hellipmin2,DesignMask="on");
legend(hfvt,"Matched passband and stopband", ...
    "Matched passband", "Matched stopband", ...
    Location="Northeast")

Figure Figure 5: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 4 objects of type line. These objects represent Matched passband and stopband, Matched passband, Matched stopband.

通過帯域でズームインし、通過帯域のエッジを比較します。両方の設計において一致する通過帯域の減衰は、通過帯域エッジ周波数 0.1𝝅 rad/サンプルで正確に 1 dB です。

結果のフィルター次数が変化しないことを確認します。

order(Hellip)
ans = 4
order(Hellipmin1)
ans = 4
order(Hellipmin2)
ans = 4

ハイパス、バンドパス、およびバンドストップ フィルター

前の手順の結果は、ハイパス、バンドパス、およびバンドストップ応答タイプに一般化できます。例として、3 つの最小次数バンドパス フィルターを設計します。

d = fdesign.bandpass("Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2", ...
    .35,.45,.55,.65,60,1,60);
Hbutter = design(d,"butter",SystemObject=true);
Hcheby1 = design(d,"cheby1",SystemObject=true);
Hcheby2 = design(d,"cheby2",SystemObject=true);
Hellip = design(d,"ellip",SystemObject=true);
hfvt = fvtool(Hbutter,Hcheby1,Hcheby2,Hellip,DesignMask="on");
legend(hfvt,...
    "Butterworth","Chebyshev Type I","Chebyshev Type II","Elliptic",...
    Location="Northwest")

Figure Figure 6: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 5 objects of type line. These objects represent Butterworth, Chebyshev Type I, Chebyshev Type II, Elliptic.

参考

関連するトピック