Main Content

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

Lowpass Filter

FIR または IIR ローパス フィルターの設計

  • Lowpass Filter block

ライブラリ:
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 番目の正弦波信号を選択したときのフィルター処理された出力です。

拡張例

端子

入力

すべて展開する

実数値または複素数値の列ベクトルまたは行列として指定される入力信号。入力信号が行列の場合、行列の各列は独立したチャネルとして扱われます。入力信号の行数はチャネル長を表します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
複素数のサポート: あり

出力

すべて展開する

フィルター処理された信号。ベクトルまたは行列として返されます。出力は入力と同じサイズ、データ型および実数/複素数の特性をもちます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
複素数のサポート: あり

パラメーター

すべて展開する

メイン

ブロックが FIR ローパス フィルターと IIR ローパス フィルターのどちらを実装するのかを指定します。

このチェック ボックスをオンにすると、ブロックは最小次数と指定の通過帯域、阻止帯域周波数、通過帯域リップルおよび阻止帯域の減衰量を使ってフィルターを設計します。

このチェック ボックスをオフにすると、[フィルター次数] を正の整数として指定できます。

ローパス フィルターのフィルター次数を正の整数として指定します。

依存関係

このパラメーターを有効にするには、[最小次数フィルターの設計] チェック ボックスをオフにします。

ローパス フィルターの通過帯域エッジ周波数を、正の実数のスカラー (Hz 単位または正規化周波数単位 (R2023a 以降)) として指定します。

[サンプル レート モード] パラメーターを次のように設定します。

  • [ダイアログで指定] または [入力端子から継承] –– 通過帯域エッジ周波数の値は Hz 単位となります。この値は入力サンプル レートの値の半分より小さくなければなりません。

  • [Use normalized frequency (0 to 1)] –– 通過帯域エッジ周波数の値は正規化周波数単位となります。値は、1.0 未満の正のスカラーでなければなりません。

(R2023a 以降)

ローパス フィルターの阻止帯域エッジ周波数を、正の実数のスカラー (Hz 単位または正規化周波数単位 (R2023a 以降)) として指定します。

[サンプル レート モード] パラメーターを次のように設定します。

  • [ダイアログで指定] または [入力端子から継承] –– 阻止帯域エッジ周波数の値は Hz 単位となります。この値は入力サンプル レートの値の半分より小さくなければなりません。

  • [Use normalized frequency (0 to 1)] –– 阻止帯域エッジ周波数の値は正規化周波数単位となります。値は、1.0 未満の正のスカラーでなければなりません。

(R2023a 以降)

依存関係

このパラメーターを有効にするには、[最小次数フィルターの設計] チェック ボックスをオンにします。

通過帯域でのフィルター応答の最大リップルを、正の実数のスカラー (dB 単位) として指定します。

阻止帯域での最小減衰量を、正の実数のスカラー (dB 単位) として指定します。

R2023a 以降

以下のオプションのいずれかを使用して、入力サンプル レートを指定します。

  • ダイアログで指定 –– ブロックのダイアログ ボックスで [入力サンプル レート (Hz)] パラメーターを使用して入力サンプル レートを指定します。

  • 入力端子から継承 –– ブロックは入力信号からサンプル レートを継承します。

  • [Use normalized frequency (0 to 1)] –– 通過帯域エッジと阻止帯域エッジの周波数を正規化周波数単位 (0 ~ 1) で指定します。

入力サンプル レートをスカラー (Hz 単位) として指定します。

依存関係

このパラメーターを有効にするには、[サンプル レート モード] パラメーターを [ダイアログで指定] に設定します。 (R2023a 以降)

フィルターの可視化ツール (fvtool) を開き、Lowpass Filter の振幅応答と位相応答を表示します。応答はブロック ダイアログ ボックスのパラメーターに基づきます。これらのパラメーターを変更すると FVTool が更新されます。

FVTool の実行中に振幅応答を更新するには、ダイアログ ボックスのパラメーターを変更して [適用] をクリックします。

実行するシミュレーションのタイプ:

  • インタープリター型実行 (既定)

    MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、シミュレーションの起動時間は短くなりますが、シミュレーションの速度は [コード生成] よりも遅くなります。

  • コード生成

    生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink® は対象ブロックの C コードを生成します。この C コードは、モデルが変更されない限り以降のシミュレーションで再利用されます。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、シミュレーションの速度は [インタープリター型実行] よりも速くなります。

データ型

固定小数点演算出力の丸め手法。

係数の固定小数点データ型。次のいずれかとして指定します。

  • fixdt(1,16) — 2 進小数点スケーリングが行われる、語長 16 の符号付き固定小数点データ型。このブロックは、係数がオーバーフローなしに表現可能範囲の最大を占めるように、係数値から自動的に小数部の長さを決定します。

  • fixdt(1,16,0) — 語長が 16 で小数部の長さが 0 の符号付き固定小数点データ型。小数部の長さは、他の任意の整数値に変更できます。

  • <データ型式> — データ型オブジェクトとして評価する式を使ってデータ型を指定します。例: 数値型 (fixdt([ ]1615))。このデータ型の符号モードを [ ] または true として指定します。

  • Refresh Data Type — 既定のデータ型に更新します。

[データ型アシスタントを表示] ボタン をクリックして、データ型の設定を行うためのデータ型アシスタントを表示します。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

ブロックの特性

データ型

double | fixed point | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

アルゴリズム

すべて展開する

拡張機能

バージョン履歴

R2015b で導入

すべて展開する