Main Content

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

filt2block

Simulink フィルター ブロックの生成

説明

filt2block(b) では、フィルター係数 bDiscrete FIR Filter block が生成されます。

filt2block(b,'subsystem') では、sum ブロック、gain ブロックおよび delay ブロックを使って FIR フィルターを実装する Simulink® サブシステム ブロックが生成されます。

filt2block(___,'FilterStructure',structure) では、FIR フィルターとしてフィルター structure を指定しています。

filt2block(b,a) では、分子係数 b と分母係数 aDiscrete Filter block が生成されます。

filt2block(b,a,'subsystem') では、sum ブロック、gain ブロックおよび delay ブロックを使って IIR フィルターを実装する Simulink サブシステム ブロックが生成されます。

filt2block(___,'FilterStructure',structure) では、IIR フィルターとしてフィルター structure を指定しています。

filt2block(sos) では、2 次セクション行列 sosBiquad Filter block が生成されます。sos は K 行 6 列の行列で、セクション数 K が 2 以上でなければなりません。この構文を使用するには、DSP System Toolbox™ ソフトウェアがインストールされていなければなりません。

filt2block(sos,'subsystem') では、sum ブロック、gain ブロックおよび delay ブロックを使って双二次フィルターを実装する Simulink サブシステム ブロックが生成されます。

filt2block(___,'FilterStructure',structure) では、双二次フィルターとしてフィルター structure を指定しています。

filt2block(d) は、デジタル フィルター d を実装する Simulink ブロックを生成します。d を作成するには、関数 designfilt を使用します。このブロックは、d が FIR の場合は Discrete FIR Filter block で、d が IIR の場合は Biquad Filter block です。

filt2block(d,'subsystem') は、sum ブロック、gain ブロックおよび delay ブロックを使って、d を実装する Simulink サブシステム ブロックを生成します。

filt2block(___,'FilterStructure',structure) は、d を実装するフィルター structure を指定します。

filt2block(___,Name,Value) は、1 つ以上の Name,Value ペアの引数によって指定された追加オプションを使用します。

すべて折りたたむ

ウィンドウ法を使用して 30 次の FIR フィルターを設計します。カットオフ周波数 π/4 ラジアン/サンプルを指定します。Simulink® ブロックを作成します。

b = fir1(30,0.25);
filt2block(b)

30 次の IIR バタワース フィルターを設計します。カットオフ周波数 π/4 ラジアン/サンプルを指定します。Simulink® ブロックを作成します。

[b,a] = butter(30,0.25);
filt2block(b,a)

ウィンドウ法を使用して 30 次の FIR フィルターを設計します。カットオフ周波数 π/4 ラジアン/サンプルを指定します。直接型 I 転置構成をもつ Simulink® ブロックを作成します。

b = fir1(30,0.25);
filt2block(b,'FilterStructure','directFormTransposed')

30 次の IIR バタワース フィルターを設計します。カットオフ周波数 π/4 ラジアン/サンプルを指定します。直接型 I 構成をもつ Simulink® ブロックを作成します。

[b,a] = butter(30,0.25);
filt2block(b,a,'FilterStructure','directForm1')

カットオフ周波数 π/5 ラジアン/サンプルをもつ 5 次のバタワース フィルターを設計します。双二次フィルターを求め、2 次セクションから Simulink® サブシステム ブロックを生成します。

[z,p,k] = butter(5,0.2);
sos = zp2sos(z,p,k);
filt2block(sos,'subsystem')

sum ブロック、gain ブロックおよび delay ブロックを使って FIR ローパス フィルターを実装する Simulink® サブシステム ブロックを生成します。'FrameBasedProcessing'false として指定することで、入力処理がチャネルとしての要素となるように指定します。

B = fir1(30,.25);
filt2block(B,'subsystem','BlockName','Lowpass FIR',...
              'FrameBasedProcessing',false)

正規化された阻止帯域周波数が 0.45 で、正規化された通過帯域周波数が 0.55 のハイパス楕円フィルターを設計します。40 dB の阻止帯域の減衰量を指定します。正規化された阻止帯域周波数が 0.45 で、正規化された通過帯域周波数が 0.55 のハイパス楕円フィルターを設計します。阻止帯域の減衰量 40dB と通過帯域リップル 0.5dB を指定します。フィルターを直接型 II 構造体として実装し、"HP" と名前を付け、新しい Simulink® モデルに配置します。

d = designfilt('highpassiir','DesignMethod','ellip', ...
               'StopbandFrequency',0.45,'PassbandFrequency',0.55, ...
               'StopbandAttenuation',40,'PassbandRipple',0.5);

filt2block(d,'subsystem','FilterStructure','directForm2', ...
             'Destination','new','BlockName','HP')

入力引数

すべて折りたたむ

行ベクトルまたは列ベクトルとして指定するフィルターの分子係数。フィルター係数は z0 の係数に対応する最初の要素と共に、z–1 の降べきの順に並べられます。

例: b = fir1(30,0.25);

データ型: single | double
複素数のサポート: あり

行ベクトルまたは列ベクトルとして指定するフィルターの分母係数。フィルター係数は z0 の係数に対応する最初の要素と共に、z–1 の降べきの順に並べられます。最初のフィルター係数は 1 でなければなりません。

データ型: single | double
複素数のサポート: あり

2 次セクション行列。K 行 2 列の行列で指定します。行列の各行は z–1 での双二次有理関数の係数を含みます。K 番目の有理双二次システムのインパルス応答の Z 変換は次のとおりです。

Hk(z)=Bk(1)+Bk(2)z1+Bk(3)z2Ak(1)+Ak(2)z1+Ak(3)z2

行列 sos の K 行目にある係数は、次の配列になります。

[Bk(1)Bk(2)Bk(3)Ak(1)Ak(2)Ak(3)]

フィルターの周波数応答は、次の式によって単位円上で評価される伝達関数です。z = ej2πf

データ型: single | double
複素数のサポート: あり

デジタル フィルター。digitalFilter オブジェクトで指定します。デジタル フィルターを周波数応答仕様に基づいて生成するには、関数 designfilt を使用します。

例: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) は、正規化された 3 dB の周波数 0.5π ラジアン/サンプルをもつ 3 次のバタワース フィルターを指定します。

フィルター構造。文字ベクトルまたは string スカラーとして指定します。structure の有効なオプションは入力引数によって異なります。次の表に、各入力で有効なフィルター構造をリストします。

入力フィルター構造
b'directForm' (規定値)、'directFormTransposed''directFormSymmetric''directFormAntiSymmetric''overlapAdd''overlapAdd' 構造は 'subsystem' を省略したときのみ使用可能で、その場合 DSP System Toolbox ソフトウェア ライセンスが必要です。
a'directForm2' (既定値)、'directForm1''directForm1Transposed''directForm2''directForm2Transposed'
sos'directForm2Transposed' (既定値)、'directForm1''directForm1Transposed''directForm2'
d
  • FIR フィルターの場合: 'directForm' (規定値)、'directFormTransposed''directFormSymmetric''directFormAntiSymmetric''overlapAdd''overlapAdd' 構造は 'subsystem' を省略したときのみ使用可能で、その場合 DSP System Toolbox ソフトウェア ライセンスが必要です。

  • IIR フィルターの場合: 'directForm2Transposed' (既定値)、'directForm1''directForm1Transposed''directForm2'

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: filt2block(...,'subsystem','BlockName','Lowpass FIR','FrameBasedProcessing',false)

文字ベクトルまたは string スカラーとして指定する Simulink フィルター ブロックの配置先。'current' で現在のモデルにフィルター ブロックを追加するか、'new' で新しいモデルにフィルター ブロックを追加するか、既存モデルの名前を指定できます。

例: filt2block([1 2 1],'Destination','MyModel','BlockName','New block')

データ型: char | string

ブロック名。文字ベクトルまたは string スカラーとして指定します。

データ型: char | string

logical false または true で指定するブロックの上書き。既存のブロックと同じ 'BlockName' の値を使用する場合、'OverwriteBlock'の値が、ブロックを上書きするかどうかを決定します。既定値は false です。

データ型: logical

logical false または true で指定する、ポートへの係数のマッピング。

データ型: logical

係数変数の名前。文字ベクトルの cell 配列または string 配列として指定します。この名前と値のペアは、'MapCoefficientsToPorts'true である場合のみ適用可能です。FIR フィルター、IIR フィルターおよび双二次フィルターの既定値は {'Num'}{'Num','Den'} および {'Num','Den','g'} です。

データ型: cell | string

logical true または false で指定するフレームベース処理またはサンプルベース処理。既定値は true で、フレームベース処理が使用されます。

データ型: logical

true または false で指定するゼロ ゲイン ブロックの削除。既定では、ゼロ ゲイン ブロックは削除されます。

データ型: logical

logical true または false で指定する、1 のゲインのブロックの直接接続への置き換え。既定の設定は true です。

データ型: logical

logical true または false で指定する、最も近いブロックでの符号変化への 1 の負のゲイン ブロックの置き換え。既定の設定は true です。

データ型: logical

logical true または false で指定する、単一遅延へのカスケード遅延の置き換え。既定の設定は true です。

データ型: logical

バージョン履歴

R2013a で導入