Lowpass Filter
FIR または IIR ローパス フィルターの設計
ライブラリ:
DSP System Toolbox /
Filtering /
Filter Designs
説明
Lowpass Filter ブロックは、ブロック パラメーターで指定したフィルター設計を使って入力信号の各チャネルを時間の経過と共に個別にフィルター処理します。[フィルター タイプ] パラメーターを使用して、IIR と FIR のどちらのローパス フィルターをブロックで実装するのかを制御できます。通過帯域および阻止帯域のエッジ周波数は、Hz 単位または正規化周波数単位 (R2023a 以降)で指定できます。
このブロックは ARM® Cortex® コード生成をサポートします。このブロックは、特定の状況下で SIMD コード生成もサポートします。詳細については、コード生成を参照してください。
例
Lowpass Filter ブロックを使用して、正弦波信号をローパス フィルター処理します。元の信号とフィルター処理された信号のスペクトルをスペクトル アナライザーでプロットします。
LowpassFilterSinusoid.slx モデルを開いて検証します。入力は 1 kHz と 15 kHz のトーンおよびノイズを含んだ正弦波信号です。入力信号のサンプル レートは 44.1 kHz です。追加されたノイズは、平均 0、分散 0.05 のホワイト ガウスです。
ローパス フィルターは、通過帯域エッジ周波数 8 kHz、阻止帯域エッジ周波数 12 kHz の最小次数フィルターです。ブロック ダイアログ ボックスで入力信号のサンプル レートを指定します。
モデルを実行し、フィルター処理された出力をスペクトル アナライザーで表示します。1 kHz のトーンは影響を受けませんが、15 kHz のトーンは減衰されます。


サンプル レートが固定であるものの不明なオーディオ信号から 5 kHz を超えるすべての周波数をフィルター処理します。
LowpassFilterAudioSignal.slx モデルを開いて検証します。入力はサンプル レートが不明な音声信号です。Lowpass Filter ブロックは 5 kHz の通過帯域エッジ周波数をもちます。ブロック ダイアログ ボックスの [サンプル レート モード] パラメーターは既定で Inherit from input port に設定されています。そのため、ブロックは入力ポートから音声信号のサンプル レートを継承します。
モデルを実行します。入力信号とフィルター処理された出力のスペクトルをスペクトル アナライザーで表示します。


シミュレーション中にサンプル レートとフレーム サイズが変化する正弦波信号をローパス フィルター処理します。
LowpassFilterVarSizeSinSignal.slx モデルを開いて検証します。入力は 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 以降
以下のオプションのいずれかを使用して、入力サンプル レートを指定します。
[Use normalized frequency (0 to 1)]–– 通過帯域エッジと阻止帯域エッジの周波数を正規化周波数単位 (0 ~ 1) で指定します。ダイアログで指定–– ブロックのダイアログ ボックスで [入力サンプル レート (Hz)] パラメーターを使用して入力サンプル レートを指定します。入力端子から継承–– ブロックは入力信号からサンプル レートを継承します。
入力サンプル レートをスカラー (Hz 単位) として指定します。
依存関係
このパラメーターを有効にするには、[サンプル レート モード] パラメーターを [ダイアログで指定] に設定します。 (R2023a 以降)
フィルターの可視化ツール (fvtool) を開き、Lowpass Filter の振幅応答と位相応答を表示します。応答はブロック ダイアログ ボックスのパラメーターに基づきます。これらのパラメーターを変更すると FVTool が更新されます。

FVTool の実行中に振幅応答を更新するには、ダイアログ ボックスのパラメーターを変更して [適用] をクリックします。
実行するシミュレーションのタイプ:
インタープリター型実行(既定)MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、シミュレーションの起動時間は短くなりますが、シミュレーションの速度は
[コード生成]よりも遅くなります。コード生成生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink® は対象ブロックの C コードを生成します。この C コードは、モデルが変更されない限り以降のシミュレーションで再利用されます。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、シミュレーションの速度は
[インタープリター型実行]よりも速くなります。
データ型
固定小数点演算出力の丸め手法。
係数の固定小数点データ型。次のいずれかとして指定します。
fixdt(1,16)— 2 進小数点スケーリングが行われる、語長16の符号付き固定小数点データ型。このブロックは、係数がオーバーフローなしに表現可能範囲の最大を占めるように、係数値から自動的に小数部の長さを決定します。fixdt(1,16,0)— 語長が16で小数部の長さが0の符号付き固定小数点データ型。小数部の長さは、他の任意の整数値に変更できます。<データ型式>— データ型オブジェクトとして評価する式を使ってデータ型を指定します。例: 数値型 (fixdt([ ]、16、15))。このデータ型の符号モードを[ ]またはtrueとして指定します。Refresh Data Type— 既定のデータ型に更新します。
[データ型アシスタントを表示] ボタン
をクリックして、データ型の設定を行うためのデータ型アシスタントを表示します。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
アルゴリズム
最小次数の設計では、このアルゴリズムは一般化された Remez FIR フィルター設計アルゴリズムを使用します。次数が指定された設計では、このアルゴリズムは制約付き等リップル FIR フィルター設計アルゴリズムを使用します。設計されたフィルターは、Direct form 構造体を持つタイプ 1 の線形位相フィルターとして実装されます。
IIR 構成では、このアルゴリズムは楕円設計法を使用して、フィルター設計の仕様を満たすために必要な SOS およびスケール値を計算します。アルゴリズムは計算した SOS とスケール値を使用して Direct form I 双二次 IIR フィルターを設定します。このフィルターが、ローパス フィルターの IIR バージョンの基礎を形成します。
拡張機能
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 で導入[サンプル レート モード] パラメーターを [Use normalized frequency (0 to 1)] に設定した場合、通過帯域と阻止帯域のエッジ周波数を正規化周波数単位 (0 ~ 1) で指定できます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)

