Main Content

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

実践に即したデジタル フィルター設計の紹介

この例例,,信号处理工具箱®制品关数关数关数关数关数Designfiltを使用する、周波数応答仕様に基づいた FIR および IIR フィルターの設計法を説明します。ローパス フィルターのみを取り上げますが、結果の大部分は他の応答タイプにも該当します。

この例デジタルのでなく,设计焦点合わせてて说明します。デジタルフィルターフィルターのの适用についてのの実践にたデジタルフィルター绍介绍介の例を参照してください。

FIR フィルターの設計

ローパスフィルターの仕様

理想的は,信号すべて周波数成分うち,指定指定されれたカットカットオフ数 ω C より小さい成分をすべて残し、 ω C より成分弃却するです。理想ななローパスフィルターのに必要必要ななインパルスインパルスインパルスインパルス応答応答応答は无限にに长く长くなるなるなるためため,理想理想ななななななななななななななななな长のを行う,フィルターの帯域( ω < ω C )および阻止帯域 ( ω > ω C )の両方がするほか通过と阻止帯域间の迁移幅がが非ゼロに。。

通過帯域リップルおよび阻止帯域リップルと遷移幅の発生は望ましくありませんが、有限のインパルス応答で近似を行う場合には、理想的なローパスの応答からの偏差として避けることはできません。この偏差は以下の図で示されます。

  • 実践に即した FIR 設計は、一般的に、遷移幅と許容値を超えない最大の通過帯域リップルおよび阻止帯域リップルをもつフィルターで構成されます。それらの設計仕様に加えて、フィルター次数、または、それと等価の打ち切られたインパルス応答の長さを選択しなければなりません。

フィルター設計での設計仕様の位置付けは、各仕様を下の図に示す三角形の頂点の 1 つと考えるとわかりやすくなります。

三角形は、設計仕様を選択する際に使用可能な自由度を示すために使用されています。角度の合計は一定であるため、選択できるのは 2 つの仕様までです。3 番目の仕様は該当する設計アルゴリズムによって決定されます。また、三角形での角度と同様に、仕様の 1 つを大きくするか小さくすると、他の仕様の一方または両方に影響します。

fir fir firフィルター的安定性高く线位をを设计设计设计できるできるためため,,非常非常优れてていますます。。ただし,,このこのフィルターフィルターフィルターフィルターははががががことがあります。

最小次数の

最次数行うには,帯域周波数,阻止帯域周波数通过帯域帯域リップルリップルおよびおよびおよび阻止阻止帯域のの减衰量量をを指定指定しますます。これこれによりによりにより,アルゴリズムアルゴリズムアルゴリズムアルゴリズム

0.37*piラジアン/サンプルサンプル,周波数周波数0.43*piラジアン/サンプル(よってよって,迁移06*piラジアンははははははははははははラジアンラジアンラジアンラジアンラジアンラジアンラジアンfirフィルターフィルター设计します。。

fpass = 0.37;FSTOP = 0.43;AP = 1;AST = 30;d = distionfilt(“ Lowpassfir”,,,,'PassbandFrequency',,,,Fpass,...“ stopbandfquency',fstop,“ Passbandripple”,AP,'StopbandAttenuation',,,,Ast); hfvt = fvtool(d);

設計された次数は関数菲尔托德を使用てクエリでき。。

N = filtord(d)
N = 39

フィルター設計に使用するパラメーターの詳細は、関数信息を使用て入手でき。。

信息(D)
ans =17x44 char array'FIR Digital Filter (real) ' '------------------------- ' 'Filter Length : 40 ' 'Stable : Yes ' 'Linear Phase :是(类型2)''''设计方法信息'“设计算法:equiripple'''''''''''''样品率:n/a(归一化频率)'''响应:lowpass''规格:fp,fp,fst,ap,ap,ast''Stopband Atten。:30 db''Passband Edge:0.37''停止边缘:0.43''Passband Ripple:1 dB'
  • 既定では、関数Designfiltは等リップル設計アルゴリズムを選択します。与えられた次数における理想フィルターからの最大偏差が最も小さくなるため、線形位相等リップル フィルターが推奨されます。

しかし最设计は,カイザーを使用しても可能ことにに留意留意しししててください。。カイザーウィンドウウィンドウ法法ででは同じ同じ仕様に対してに対してフィルターフィルターフィルター次数大きく大きく大きく大きくが场合も问题がする可能性が小さくなり收束收束问题问题がが発生発生発生するする可能性ががあるあるののはは,,フィルターフィルターのの适用适用においてにおいてにおいてにおいて,迁移を非常非常非常非常量がに大きい场合。。

カイザーウィンドウて上记と仕様フィルターを设计,応答をを等リップルリップルフィルターとと比较。

dk = distionfilt(“ Lowpassfir”,,,,'PassbandFrequency',,,,Fpass,...“ stopbandfquency',fstop,“ Passbandripple”,AP,...'StopbandAttenuation',ast,“ DesignMethod”,,,,'kaiserwin');addfilter(hfvt,dk); legend(hfvt,“ equiripple设计”,,,,'Kaiser window design'

n =菲尔托德(DK)
n = 52

Hz での周波数パラメーターの指定

フィルターが動作するサンプルレートが既知の場合は、サンプルレートと周波数を Hz で指定できます。2 kHz のサンプルレートに対する最小次数等リップル フィルターを再設計します。

Fpass = 370; Fstop = 430; Ap = 1; Ast = 30; Fs = 2000; d = designfilt(“ Lowpassfir”,,,,'PassbandFrequency',,,,Fpass,...“ stopbandfquency',fstop,“ Passbandripple”,AP,...'StopbandAttenuation',ast,'采样率',,,,Fs); hfvt = fvtool(d);

固定次数,迁移幅

固定次数設計は計算負荷の影響を受けやすいフィルター適用や、フィルター係数の数に制限のあるフィルター適用を行う場合に役立ちます。通過帯域リップル/阻止帯域の減衰量の制御を犠牲にして遷移幅を固定するという選択肢もあります。

370 hz,,数,,がががががががががが周波周波周波周波周波帯域レートレートレートレート2khzの2khzの30fir fir firフィルターフィルターについて考え考えますます。。。この仕様仕様2二乘ですのでフィルターを设计结果を比较しましょ。

N = 30; Fpass = 370; Fstop = 430; Fs = 2000;% Design method defaults to 'equiripple' when omitteddeq = designfilt(“ Lowpassfir”,,,,“ FilterOrder”,n,,'PassbandFrequency',,,,Fpass,...“ stopbandfquency',fstop,'采样率',,,,Fs); dls = designfilt(“ Lowpassfir”,,,,“ FilterOrder”,n,,'PassbandFrequency',,,,Fpass,...“ stopbandfquency',fstop,'采样率',,,,Fs,“ DesignMethod”,,,,'ls');hfvt = fvtool(deq,dls);传奇(hfvt,“ equiripple设计”,,,,'Least-squares design'

等リップル フィルターは、指定された最小の阻止帯域の減衰量や指定された最大通過帯域リップルのあるフィルターを設計する場合など、特定の許容誤差を満たす必要があるフィルター適用に最適です。一方、この設計は、通過帯域や阻止帯域で (理想的なフィルターと実際のフィルターとの間の) 誤差のエネルギーを最小化する必要がある場合、望ましくない可能性があります。

  • 特定の周波数帯域の信号エネルギーをできる限り減らす場合には、最小二乗設計を使用してください。

前述の例では、設計されたフィルターには通過帯域と阻止帯域で同じリップルがありました。フィルター次数を固定しながら、重みを使用してどちらかの帯域でのリップルを減らすことができます。たとえば、阻止帯域リップルを通過帯域リップルの 1/10 にするには、阻止帯域に通過帯域の 10 倍の重みを指定しなければなりません。この事実を使用して等リップル フィルターを再設計します。

deqw = designfilt(“ Lowpassfir”,,,,“ FilterOrder”,n,,'PassbandFrequency',,,,Fpass,...“ stopbandfquency',fstop,'采样率',,,,Fs,...'PassbandWeight',,,,1,'StopbandWeight',,,,10); hfvt = fvtool(deq,deqw); legend(hfvt,“ equiripple设计”,,,,'Equiripple design with weighted stopband'

固定次数固定カットオフ数数

ウィンドウ设计使用て,フィルターおよび固定カット周波数をもつもつフィルターをを设计でき

  • フィルター次数を変更せずに、異なるウィンドウを使用することで阻止帯域の減衰量を制御できます。

60 hz,数カットカットオフ波波波波数,レートががががががががレートが100firフィルター次ローパスフィルターフィルターについて考えハミング。ハミングウィンドウウィンドウををを使用使用使用使用ししししててて作成作成作成ささされれれたたた设计设计ととと,チェビシェフ,チェビシェフチェビシェフチェビシェフ90され设计を比较。。

dhamming = designfilt(“ Lowpassfir”,,,,“ FilterOrder”,100,“ cutofffrequency',60,...'采样率',1000,'窗户',,,,“锤”);dchebwin = distionfilt(“ Lowpassfir”,,,,“ FilterOrder”,100,“ cutofffrequency',60,...'采样率',1000,'窗户',,,,{'chebwin',,,,90}); hfvt = fvtool(dhamming,dchebwin); legend(hfvt,“锤窗”,,,,'Chebyshev window'

固定のを指定するには他の方法もも。。つまりつまりつまり,,固定固定固定固定カットカットカット周波波波数数,,,通过通过通过通过帯域リップルリップルリップルリップルおよびおよびおよびおよびおよびおよびおよび阻止阻止阻止阻止阻止帯域帯域帯域帯域帯域帯域帯域帯域帯域のの减衰减衰减衰量量量ものものものものものものものものものものものものもの周波数によるです。

IIR フィルターの設計

fir firフィルター欠点欠点つ,特定の仕様をためためフィルター次数次数をを必要必要ととするですです。リップルリップルがが一定に维持されるれるれる次数フィルターフィルターははははフィードバック使用で,はるかに小さなフィルター次数一连のの设计设计仕様仕様満たす満たすことができことができます。。これこれこれこれこれこれががががががががががががががががががががががががががフィルターフィルターフィルターフィルターフィルターフィルターフィルターフィルターフィルターフィルターフィルターフィルターインパルスがれ场合に出力の减衰ゼロにならないという事実事実に由来由来いいい

  • 計算リソースが不足している場合には、IIR フィルターが役立ちます。ただし、安定した、因果性がある IIR フィルターは完全に線形な位相をもつことはできません。位相の線形性が要件である場合には IIR 設計は使用しないでください。

IIR フィルターを使用するもう 1 つの重要な理由は、FIR フィルターに比べて群遅延が小さいため、過渡特性応答が短くて済むためです。

バタワースフィルター

バタワースフィルターは最大フラット IIR フィルターです。通過帯域と阻止帯域が平坦であると、遷移帯域が非常に広くなります。狭い遷移幅のフィルターを得るには、大きな次数が必要になります。

通過帯域周波数が 100 Hz、阻止帯域周波数が 300 Hz、最大通過帯域リップルが 1 dB、阻止帯域の減衰量が 60 dB である最小次数バタワース フィルターを設計します。サンプルレートは 2 kHz です。

Fp = 100; Fst = 300; Ap = 1; Ast = 60; Fs = 2e3; dbutter = designfilt('lowpassiir',,,,'PassbandFrequency',fp,...“ stopbandfquency',fst,“ Passbandripple”,AP,...'StopbandAttenuation',ast,'采样率',,,,Fs,“ DesignMethod”,,,,'butter');

チェビシェフi型型

チェビシェフI型は通过帯域を许容ことで,次数のバタワースフィルターよりより迁移幅幅ますますます

  • バタワースとチェビシェフ型フィルターのに,,阻止帯域あり。。与え与え与えられられたたフィルターフィルターにおいて,,通过帯域帯域帯域リップルリップルととと幅

前述のバタワース フィルターと同じ仕様のチェビシェフ I 型フィルターを設計します。

dcheby1 = designfilt('lowpassiir',,,,'PassbandFrequency',fp,...“ stopbandfquency',fst,“ Passbandripple”,AP,...'StopbandAttenuation',ast,'采样率',,,,Fs,“ DesignMethod”,,,,'cheby1');

チェビシェフ II 型フィルター

  • チェビシェフ II 型フィルターには、最大フラット通過帯域および等リップル阻止帯域があります。

极端に量通常必要ないためためかの帯域リップルリップルを许容许容するすることことことでで的的小さな次数次数ででで必要必要必要なな迁移

前のと仕様の次数II型型を设计し。。

dcheby2 = designfilt('lowpassiir',,,,'PassbandFrequency',fp,...“ stopbandfquency',fst,“ Passbandripple”,AP,...'StopbandAttenuation',ast,'采样率',,,,Fs,“ DesignMethod”,,,,'cheby2');

楕円フィルター

楕円フィルターは、通過帯域と阻止帯域の両方でリップルを許容することで、チェビシェフ フィルターとバタワース フィルターを汎用的にします。リップルを小さくすると、楕円フィルターは、チェビシェフ フィルターまたはバタワース フィルターの位相応答および振幅を任意の近傍で近似することができます。

  • 楕円,られた迁移幅次数で达成し。。

dellip = distionfilt('lowpassiir',,,,'PassbandFrequency',fp,...“ stopbandfquency',fst,“ Passbandripple”,AP,...'StopbandAttenuation',ast,'采样率',,,,Fs,“ DesignMethod”,,,,'ellip');

4 つの IIR フィルターの次数と応答を比較します。

  • 仕様上の制約が同じである場合は、バタワース メソッドの次数が最も大きくなり、楕円メソッドの次数が最も小さくなります。

FilterOrders =[filtord(dbutter) filtord(dcheby1) filtord(dcheby2) filtord(dellip)]
FilterOrders =1×47 5 5 4
hfvt = fvtool(dbutter,dcheby1,dcheby2,dellip);轴([0 1E3 -80 2]);传奇(hfvt,'Butterworth',,,,'Chebyshev Type I',,,,...'Chebyshev II型',,,,“椭圆形”

通过帯域し,の差をし。。。

axis([0 150 -3 2]);

通过帯域阻止仕様への完全准拠准拠

最小次数設計では、理想的な次数を次の整数に丸めなければなりません。この追加の非整数次数により、アルゴリズムは実際に仕様を超えることになります。

  • 1つつ帯域一致するようアルゴリズム制约するに,,'MatchExactly'パラメーターをますその他の帯域その仕様を超え。。

既定の設定では、チェビシェフ I 型設計は通過帯域に一致します。バタワースとチェビシェフ II 型は阻止帯域に一致し、楕円設計は通過帯域と阻止帯域の両方に一致します (阻止帯域のエッジ周波数は超えます)。

dellip1 = distionfilt('lowpassiir',,,,'PassbandFrequency',fp,...“ stopbandfquency',fst,“ Passbandripple”,AP,...'StopbandAttenuation',ast,'采样率',,,,Fs,“ DesignMethod”,,,,'ellip',,,,...'MatchExactly',,,,“ passband');dellip2 = distionfilt('lowpassiir',,,,'PassbandFrequency',fp,...“ stopbandfquency',fst,“ Passbandripple”,AP,...'StopbandAttenuation',ast,'采样率',,,,Fs,“ DesignMethod”,,,,'ellip',,,,...'MatchExactly',,,,'stopband');hfvt = fvtool(dellip,dellip1,dellip2);传奇(hfvt,'Matched passband and stopband',,,,'Matched passband',,,,...'Matched stopband');轴([0 1E3 -80 2]);

一致する帯域一致する両方の设计リップルは,,通过帯域帯域周波数数数数数数値値値値値値値値値値値

群遅延の比较

IIR フィルターの場合、リップルと遷移幅のトレードオフだけでなく位相歪みの度合いも考慮する必要があります。ナイキスト区間全体にわたって線形位相をもつことが不可能であることはわかっています。このため、位相応答がどの程度線形でないかを確認する必要があります。これを行うには、(理想的には一定の) 群遅延を見てそれがどの程度平坦であるかを確認します。

前に設計した 4 つの IIR フィルターの群遅延を比較します。

  • 位相が問題となる場合は、バタワースおよびチェビシェフ II 型設計の群遅延が最も平坦であり、そのため発生する歪みが最小になることに留意してください。

hfvt = fvtool(dbutter,dcheby1,dcheby2,dellip,'Analysis',,,,'grpdelay');传奇(hfvt,'Butterworth',,,,'Chebyshev Type I',,,,...'Chebyshev II型',,,,“椭圆形”

まとめ

この例で,DesignfiltfirおよびもついろいろもついろいろもついろいろななローパスローパスローパスローパスおよびおよびおよびフィルターフィルターフィルターをDesignfiltは,バンド,バンド,,微分器ヒルベルトのの设计にもも使用できます。すべてすべてのの利用利用利用可能フィルター設計ギャラリーを参照しください。

参考情報

フィルター設計および解析についての詳細は、Signal Processing Toolbox® ソフトウェア ドキュメンテーションを参照してください。フィルター適用についての詳細は、実践にたデジタルフィルター绍介绍介の例を参照してください。

参考

||