このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Lowpass Filter
FIR または IIR ローパス フィルターの設計
ライブラリ:
DSP System Toolbox /
Filtering /
Filter Designs
説明
Lowpass Filter ブロックは、ブロック パラメーターで指定したフィルター設計を使って入力信号の各チャネルを時間の経過と共に個別にフィルター処理します。[フィルター タイプ] パラメーターを使用して、IIR と FIR のどちらのローパス フィルターをブロックで実装するのかを制御できます。通過帯域および阻止帯域のエッジ周波数は、Hz 単位または正規化周波数単位 (R2023a 以降)で指定できます。
このブロックは ARM® Cortex® コード生成をサポートします。このブロックは、特定の状況下で SIMD コード生成もサポートします。詳細については、コード生成を参照してください。
例
正弦波信号のローパス フィルター処理
Lowpass Filter ブロックを使用して、正弦波信号をローパス フィルター処理します。元の信号とフィルター処理された信号のスペクトルをスペクトル アナライザーでプロットします。
モデルを開いて検証します。入力は 1 kHz と 15 kHz のトーンおよびノイズを含んだ正弦波信号です。入力信号のサンプル レートは 44.1 kHz です。追加されたノイズは、平均 0、分散 0.05 のホワイト ガウスです。
ローパス フィルターは、通過帯域エッジ周波数 8 kHz、阻止帯域エッジ周波数 12 kHz の最小次数フィルターです。ブロック ダイアログ ボックスで入力信号のサンプル レートを指定します。
モデルを実行し、フィルター処理された出力をスペクトル アナライザーで表示します。1 kHz のトーンは影響を受けませんが、15 kHz のトーンは減衰されます。
オーディオ信号のローパス フィルター処理
サンプル レートが固定であるものの不明なオーディオ信号から 5 kHz を超えるすべての周波数をフィルター処理します。
モデルを開いて検証します。入力はサンプル レートが不明な音声信号です。Lowpass Filter ブロックは 5 kHz の通過帯域エッジ周波数をもちます。ブロック ダイアログ ボックスの [サンプル レート モード] パラメーターは既定で Inherit from input port
に設定されています。そのため、ブロックは入力ポートから音声信号のサンプル レートを継承します。
モデルを実行します。入力信号とフィルター処理された出力のスペクトルをスペクトル アナライザーで表示します。
可変サイズ正弦波信号のローパス フィルター処理
シミュレーション中にサンプル レートとフレーム サイズが変化する正弦波信号をローパス フィルター処理します。
モデルを開いて検証します。入力は 2 つの正弦波信号のいずれかです。最初の正弦波信号は、サンプル レートが 44100 Hz でフレーム サイズが 256 である 1 kHz の正弦波です。2 番目の正弦波信号は、サンプル レートが 22050 Hz でフレーム サイズが 128 である 10 kHz の正弦波です。いずれの信号もフレーム周期は同じです (256/44100 または 128/22050)。サンプル レートとフレーム周期の詳細については、サンプルベースおよびフレームベースの概念を参照してください。手動スイッチを使用して、どの正弦波を Lowpass Filter ブロックへの入力とするかを制御できます。
シミュレーション中に入力サンプル レートが変化するため、Lowpass Filter ブロックの周波数仕様を正規化された周波数単位で指定します。これを行うには、Lowpass Filter ブロック ダイアログ ボックスの [サンプル レート モード] パラメーターを Use normalized frequency (0 to 1)
に設定します。ここで、ローパス フィルターの通過帯域エッジ周波数を、正規化された周波数単位で 0.5 に設定します。
モデルを実行します。入力とフィルター処理された出力のスペクトルをスペクトル アナライザーで表示します。
これは、2 番目の正弦波信号を選択したときのフィルター処理された出力です。
拡張例
端子
入力
Port_1 — フィルター処理する入力信号
列ベクトル | 行列
実数値または複素数値の列ベクトルまたは行列として指定される入力信号。入力信号が行列の場合、行列の各列は独立したチャネルとして扱われます。入力信号の行数はチャネル長を表します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
複素数のサポート: あり
出力
Port_1 — フィルター処理された信号
ベクトル | 行列
フィルター処理された信号。ベクトルまたは行列として返されます。出力は入力と同じサイズ、データ型および実数/複素数の特性をもちます。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
複素数のサポート: あり
パラメーター
メイン
フィルター タイプ — FIR または IIR フィルター
FIR
(既定値) | IIR
ブロックが FIR ローパス フィルターと IIR ローパス フィルターのどちらを実装するのかを指定します。
最小次数フィルターの設計 — 最小次数フィルターの設計
on
(既定値) | off
このチェック ボックスをオンにすると、ブロックは最小次数と指定の通過帯域、阻止帯域周波数、通過帯域リップルおよび阻止帯域の減衰量を使ってフィルターを設計します。
このチェック ボックスをオフにすると、[フィルター次数] を正の整数として指定できます。
フィルター次数 — ローパス フィルターの次数
50
(既定値) | 正の整数
ローパス フィルターのフィルター次数を正の整数として指定します。
依存関係
このパラメーターを有効にするには、[最小次数フィルターの設計] チェック ボックスをオフにします。
通過帯域エッジ周波数 (Hz) — 通過帯域エッジ周波数
8e3
(既定値) | 実数の正のスカラー
ローパス フィルターの通過帯域エッジ周波数を、正の実数のスカラー (Hz 単位または正規化周波数単位 (R2023a 以降)) として指定します。
[サンプル レート モード] パラメーターを次のように設定します。
[ダイアログで指定]
または[入力端子から継承]
–– 通過帯域エッジ周波数の値は Hz 単位となります。この値は入力サンプル レートの値の半分より小さくなければなりません。[Use normalized frequency (0 to 1)]
–– 通過帯域エッジ周波数の値は正規化周波数単位となります。値は、1.0
未満の正のスカラーでなければなりません。
(R2023a 以降)
阻止帯域エッジ周波数 (Hz) — 阻止帯域エッジ周波数
12e3
(既定値) | 実数の正のスカラー
ローパス フィルターの阻止帯域エッジ周波数を、正の実数のスカラー (Hz 単位または正規化周波数単位 (R2023a 以降)) として指定します。
[サンプル レート モード] パラメーターを次のように設定します。
[ダイアログで指定]
または[入力端子から継承]
–– 阻止帯域エッジ周波数の値は Hz 単位となります。この値は入力サンプル レートの値の半分より小さくなければなりません。[Use normalized frequency (0 to 1)]
–– 阻止帯域エッジ周波数の値は正規化周波数単位となります。値は、1.0
未満の正のスカラーでなければなりません。
(R2023a 以降)
依存関係
このパラメーターを有効にするには、[最小次数フィルターの設計] チェック ボックスをオンにします。
通過帯域の最大リップル (dB) — 通過帯域の最大リップル
0.1
(既定値) | 実数の正のスカラー
通過帯域でのフィルター応答の最大リップルを、正の実数のスカラー (dB 単位) として指定します。
阻止帯域の最小減衰量 (dB) — 阻止帯域の最小減衰量
80
(既定値) | 実数の正のスカラー
阻止帯域での最小減衰量を、正の実数のスカラー (dB 単位) として指定します。
サンプル レート モード — 入力サンプル レートを指定するモード
ダイアログで指定
(既定値) | 入力端子から継承
| Use normalized frequency (0 to 1)
R2023a 以降
以下のオプションのいずれかを使用して、入力サンプル レートを指定します。
ダイアログで指定
–– ブロックのダイアログ ボックスで [入力サンプル レート (Hz)] パラメーターを使用して入力サンプル レートを指定します。入力端子から継承
–– ブロックは入力信号からサンプル レートを継承します。[Use normalized frequency (0 to 1)]
–– 通過帯域エッジと阻止帯域エッジの周波数を正規化周波数単位 (0 ~ 1) で指定します。
入力サンプル レート (Hz) — 入力サンプル レート
44100
(既定値) | スカラー
入力サンプル レートをスカラー (Hz 単位) として指定します。
依存関係
このパラメーターを有効にするには、[サンプル レート モード] パラメーターを [ダイアログで指定]
に設定します。 (R2023a 以降)
フィルター応答の表示 — フィルターの可視化ツールを開く
button
フィルターの可視化ツール (fvtool
) を開き、Lowpass Filter の振幅応答と位相応答を表示します。応答はブロック ダイアログ ボックスのパラメーターに基づきます。これらのパラメーターを変更すると FVTool が更新されます。
FVTool の実行中に振幅応答を更新するには、ダイアログ ボックスのパラメーターを変更して [適用] をクリックします。
シミュレーション実行方法 — 実行するシミュレーションのタイプ
インタープリター型実行
(既定値) | コード生成
実行するシミュレーションのタイプ:
インタープリター型実行
(既定)MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、シミュレーションの起動時間は短くなりますが、シミュレーションの速度は
[コード生成]
よりも遅くなります。コード生成
生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink® は対象ブロックの C コードを生成します。この C コードは、モデルが変更されない限り以降のシミュレーションで再利用されます。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、シミュレーションの速度は
[インタープリター型実行]
よりも速くなります。
データ型
丸めモード — 丸め方法
負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算出力の丸め手法。
係数 — 係数のデータ型
fixdt(1,16)
(既定値) | fixdt(1,16,0)
| <データ型式>
係数の固定小数点データ型。次のいずれかとして指定します。
fixdt(1,16)
— 2 進小数点スケーリングが行われる、語長16
の符号付き固定小数点データ型。このブロックは、係数がオーバーフローなしに表現可能範囲の最大を占めるように、係数値から自動的に小数部の長さを決定します。fixdt(1,16,0)
— 語長が16
で小数部の長さが0
の符号付き固定小数点データ型。小数部の長さは、他の任意の整数値に変更できます。<データ型式>
— データ型オブジェクトとして評価する式を使ってデータ型を指定します。例: 数値型 (fixdt
([ ]
、16
、15
))。このデータ型の符号モードを[ ]
またはtrue
として指定します。Refresh Data Type
— 既定のデータ型に更新します。
[データ型アシスタントを表示] ボタン をクリックして、データ型の設定を行うためのデータ型アシスタントを表示します。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
アルゴリズム
FIR ローパス フィルター
最小次数の設計では、このアルゴリズムは一般化された Remez FIR フィルター設計アルゴリズムを使用します。次数が指定された設計では、このアルゴリズムは制約付き等リップル FIR フィルター設計アルゴリズムを使用します。設計されたフィルターは、Direct form
構造体を持つタイプ 1 の線形位相フィルターとして実装されます。
IIR ローパス フィルター
IIR 構成では、このアルゴリズムは楕円設計法を使用して、フィルター設計の仕様を満たすために必要な SOS およびスケール値を計算します。アルゴリズムは計算した SOS とスケール値を使用して Direct form I
双二次 IIR フィルターを設定します。このフィルターが、ローパス フィルターの IIR バージョンの基礎を形成します。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
Lowpass Filter ブロックは ARM Cortex コード生成をサポートします。ARM Cortex コード生成の詳細については、ARM Cortex-M プロセッサおよび ARM Cortex-A プロセッサ用のコード生成を参照してください。
Lowpass Filter ブロックは、次の条件を満たす場合、Intel AVX2 コード置換ライブラリを使用した SIMD コード生成もサポートします。
[フィルター タイプ] が
[FIR]
に設定されている。入力信号のデータ型が
single
またはdouble
である。
SIMD テクノロジーにより、生成コードのパフォーマンスが大幅に向上します。詳細については、SIMD コード生成を参照してください。このブロックから SIMD コードを生成するには、Use Intel AVX2 Code Replacement Library to Generate SIMD Code from Simulink Blocksを参照してください。
バージョン履歴
R2015b で導入R2023a: 正規化周波数のサポート
[サンプル レート モード] パラメーターを [Use normalized frequency (0 to 1)]
に設定した場合、通過帯域と阻止帯域のエッジ周波数を正規化周波数単位 (0 ~ 1) で指定できます。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)