Matlab フィルター設計 - IIR フィルターの設計とシミュレーション

Matlabフィルター設計 - IIR フィルターの設計とシミュレーション

1 はじめ
    に 現在の通信システムでは、信号にさまざまな複雑な成分が混在していることが多いため、多くの信号処理と分析はフィルターに基づいています。しかし、従来のデジタルフィルタの設計では煩雑な数式計算が必要であり、パラメータ変更後には再計算が必要となるため、フィルタ、特に高次フィルタの設計負荷が非常に高かった。MATLAB 信号処理ボックス (Signal Processing Toolbox) を使用すると、デジタル フィルターの設計とシミュレーションを迅速かつ効果的に実現できます。

2. デジタル フィルターと従来の設計手法デジタル フィルターは、入力信号を表すデジタル時系列を出力信号を表すデジタル時系列に変換し、その変換プロセスで信号をそれに応じたものにする計算プログラムまたはアルゴリズムとして理解できます
    。所定のフォームに変更します。デジタル フィルターには多くの分類がありますが、デジタル フィルターのインパルス応答の時間領域の特性に応じて、無限インパルス応答 (IIR) フィルターと有限インパルス応答 (FIR) フィルターの 2 種類に分類できます。 。     IIR デジタル フィルターは、アナログフィルターと一致する無限に広いインパルス応答を備えているため、IIR フィルターの設計をアナログ フィルターの設計に基づいてさらに変形できます。設計手法には主に古典的設計手法、直接設計手法、最大平滑化フィルタ設計手法が含まれます。FIR デジタル フィルターの単位インパルス応答は、有限長のシーケンスです。設計問題は、要求される伝達シーケンスやインパルス応答を満たす定数問題を決定することが基本であり、その設計手法には主に窓関数法、周波数サンプリング法、等リップル最良近似法などがあります。     実際のフィルタ設計では、プロセス全体の計算量が非常に多くなります。高次の IIR フィルタを設計すると計算量が多くなり、設計途中でパラメータやフィルタの種類を変更した場合には再計算が必要になります。     設計が完了したら、設計したフィルタの周波数応答をチェックする必要があります。振幅-周波数特性、位相-周波数応答特性を求めるための計算量も非常に多くなります。通常、設計するデジタルフィルタの順序や種類は必ずしも完全に決まっているわけではなく、多くの場合、設計要件やフィルタ効果に応じて継続的に調整し、設計の最適化を図る必要があります。この場合、フィルタの設計には多くの複雑な計算が必要となり、数式による計算や簡単なプログラムのコンパイルだけでは短期間で完了することが困難です。コンピューター支援設計用の MATLAB の強力な計算機能を使用すると、デジタル フィルターを迅速かつ効果的に設計でき、計算量が大幅に簡素化されます。


3 IIR フィルターの MATLAB 設計
3.1 FDATool インターフェイス設計
3.1.1 FDATool の概要
    FDATool (フィルター設計および分析ツール) は、MATLAB 信号処理ツールボックスの専用フィルター設計および解析ツールです。MATLAB 6.0 以降のバージョンには、特別にフィルター設計ツールボックス (フィルターデザインツールボックス)。FDATool は、FIR および IIR のさまざまな設計方法を含む、ほぼすべての従来のフィルターを設計できます。操作が簡単で、便利で柔軟です。
    FDAツール。インターフェイスは 2 つの部分に分かれており、1 つはデザイン フィルターです。インターフェイスの下部はフィルタの設計パラメータを設定するために使用され、他の部分はインターフェイスの上部にフィルタのさまざまな特性を表示するために使用される特性領域です。デザイン フィルター部分は主に次の部分に分かれています: フィルター タイプ (フィルター タイプ) オプション。ローパス (ローパス)、ハイパス (ハイパス)、バンドパス (バンド パス)、バンドストップ (バンド ストップ)、および特殊な FIR フィルターが含まれます。
   Design Method (設計法) オプションには、IIR フィルターの Butterwth (バターワース) 法、Chebyshev Type I (チェビシェフ I 型) 法、Chebyshev Type II (チェビシェフ II) 法、Ellipt ic (楕円フィルター デバイス) 法および等リップル法が含まれます。 FIRフィルター、Least-Squares(最小二乗)法、Window(窓関数)法。
  フィルター またはder (フィルター次数) オプションは、Specify Order (指定された次数) および Minimum Order (最小次数) を含むフィルターの次数を定義します。指定次数に設計するフィルタの次数を記入します(N次フィルタ、指定次数=N-1)。[最小次数] を選択した場合、MATLAB は選択したフィルター タイプに基づいて最小次数を自動的に使用します。
  [周波数仕様] オプションでは、周波数帯域のサンプリング周波数やカットオフ周波数など、周波数帯域のパラメーターを詳細に定義できます。その特定のオプションは、[フィルター タイプ] オプションと [設計方法] オプションによって決まります。たとえば、Bandpass (バンドパス) フィルターでは、Fstop1 (阻止帯域下限カットオフ周波数)、Fpass1 (通過帯域下限カットオフ周波数)、Fpass2 (通過帯域上限カットオフ周波数)、Fstop2 (阻止帯域上限カットオフ周波数)、および Lowpass (下限阻止帯域カットオフ周波数) を定義する必要があります。 pass) フィルターは Fstop1、Fpass1 のみを定義する必要があります。窓関数を使用してフィルタを設計する場合、遷移帯域は窓関数の種類と次数によって決定されるため、阻止帯域パラメータの代わりに通過帯域のカットオフ周波数を定義するだけで済みます。
    [振幅仕様] オプションでは、振幅減衰の状況を定義できます。たとえば、バンドパス フィルターを設計する場合、Wstop1 (周波数 Fstop1 での振幅減衰)、Wpass (通過帯域範囲内の振幅減衰)、および Wstop2 (周波数 Fstop2 での振幅減衰) を定義できます。窓関数設計を使用する場合、通過帯域のカットオフ周波数での振幅減衰は 6db に固定されるため、定義する必要はありません。
  [ウィンドウ仕様] オプション。ウィンドウ関数設計が選択されている場合、このオプションを定義できます。これにはさまざまなウィンドウ関数が含まれます。

3.1.2 IIR フィルターの設計例
    このテキストでは、MATLAB を使用してデジタル フィルターを設計する方法を説明するための例として IIR フィルターの設計を取り上げます。10 次のバンドパス チェビシェフ I フィルターを設計する必要があります。その通過帯域範囲は 100 ~ 200Hz、サンプリング周波数は 1000Hz、Rp=0.5 です。
    この例では、まず [フィルター タイプ] で [バンドパス (バンドパス フィルター)] を選択し、[設計方法] オプションで [IIR] を選択し、次に右隣のオプションで [チェビシェフ I (チェビシェフ I タイプ)] を選択し、[フィルター次数] 項目で [オーダー = 10 を指定] を指定します。チェビシェフ設計を使用しているため、オプションで選択する必要はありません。次に、周波数仕様で単位として Hz を選択し、サンプリング周波数 Fs=1000、通過帯域 Fpass1=100 および Fpass2= 200 を与えます。最後に、振幅仕様で単位として db を選択します。 Apass=0.5。設定が完了したら、
「フィルターの設計」をクリックして、設計された IIR フィルターを取得します。図 1 に示すように、メニュー オプション [分析] を使用すると、設計された振幅周波数応答、位相周波数応答、インパルス応答、およびゼロ極構成を特性領域で確認できます。設計が完了したら、結果を filterl.fda ファイルとして保存します。

 

 
 

 
 

 
図 1 フィルタの振幅周波数、位相周波数、インパルス応答 (特性領域)

3.2 プログラミング方法
  MATLAB には、さまざまなフィルタの設計に対応する振幅、位相、インパルス応答を計算するための関数があり、フィルタのプログラミングに使用できます。 。
  上の例の IIR フィルターのインパルス応答は次のようにプログラムできます:
%ehebyshevl bpf
n=10; % 次数は 10
Rp=0.5; % 振幅減衰は 0.5
Wn[100 200]/500;
[b,a] =chebyl(n,Rp,wn);
[y,t]impz(b,a,101);
Stem(t,y,'.');
    このプログラムを MATLAB 環境で実行して、フィルターの時間領域を取得しますインパルス応答。紙面の都合上、ソースプログラムについてはここでは詳しく説明しません。

3.3 設計例の分析
   図 1(a) から、このフィルタは 100 ~ 200Hz の通過帯域範囲で等しいリップルを持ちますが、阻止帯域では単調であることがわかります。これは、チェビシェフ I フィルタの振幅周波数特性です。図1(b)より、100~200Hzの範囲で位相ずれが小さく、その曲線が直線に近く歪みが小さいことがわかりますが、周波数がこの範囲を超えると位相ずれが大きくなります。が大きく、その曲線が非線形であるため、歪みも大きくなります。図 1(c) はチェビシェフ I フィルタの時間領域のインパルス応答を示しており、5ms ~ 100ms の範囲にインパルス応答があり、この範囲を超えるインパルス応答はほぼゼロであるため、チェビシェフ I の設計が実現されています。バンドパスフィルター

Simulinkシミュレーション
4.1  Simulinkシミュレーション例
    Simulink で関数モジュールを呼び出すことにより、デジタル フィルターのシミュレーション ブロック図を作成できます。シミュレーション プロセス中に、各機能モジュールをダブルクリックし、いつでもパラメータを変更して、さまざまな状態でのシミュレーション結果を取得します。たとえば、元の信号 x(t)=2sin(0.05wt)+w(t)、w(t) は伝達関数 H(z)=0.15/(1- 0.8z- 1)のフィルタでは、図2に示すようなシミュレーション結果が得られます。FDATool によって設計されたフィルター ファイルは、シミュレーション プロセス中にインポートできます。

 

 


 

 

4.2 シミュレーション解析
    図 2 の (b) と (c) の波形を比較すると、元の入力信号がフィルタでフィルタリングされた後、(b) の波形のバリ部分 (つまり、干渉ノイズ) が除去されていることがわかります。 ) がフィルタリングされて除去され、(c) に示すように、出力信号は A 正弦波に近づきます。これは、伝達関数が H(z)=0.15/(1-0.8z-1) であるフィルタの設計が適切であることを示しています。

5 結論
    MATLAB の強力なコンピューティング機能を使用して、MATLAB の Signal Processing Toolbox に基づくデジタル フィルター設計方法は、ソフトウェアで構成される従来のデジタル フィルターを迅速かつ効果的に設計でき、設計は便利で高速であり、作業が大幅に軽減されます。量。設計プロセス中にフィルタ特性を比較できます。フィルター設計を最適化するために、いつでもパラメーターを変更できます。MATLAB を使用したデジタル フィルターの設計は、デジタル通信システムやコンピューター分野の信号処理など幅広い応用が期待されており、注目されています。

[上記の情報はaibo Testingによって編集および公開されています。矛盾がある場合は、時間内に修正してください。引用がある場合は、出典を示してください。一緒に議論することを歓迎します。開発に注目しています! 焦点: CCC/SRRC/CTA/オペレーター倉庫]

おすすめ

転載: blog.csdn.net/weixin_47371464/article/details/131766651