DSP System Toolbox

主な機能

  • MATLAB System object および Simulink ブロックとしてアルゴリズムを提供
  • ストリーミング システム、フレームベース システム、マルチレート システムのシミュレーション
  • シグナル ジェネレーター、ならびに マルチメディア ファイルおよびASIO ドライバーとマルチチャンネル オーディオを含むデバイスの I/O サポート
  • パラメトリック イコライザー、適応フィルター、マルチレート フィルター、オクターブ フィルターおよび音響重み付けフィルターといった、専門分野別フィルターの設計手法
  • 2 次セクション型フィルターとラティス波形デジタル フィルターなどの、フィルターの実現のためのアーキテクチャー
  • ピーク間、ピークと二乗平均平方根間、状態レベル推定、および 2 値波形の指標に用いる信号測定
  • FFT、スペクトル推定、ウィンドウ制御、信号統計および線形代数
  • 浮動小数点、整数、固定小数点のデータ型をアルゴリズムでサポート
  • 固定小数点モデリングと、C コードおよび HDL コードの生成をサポート
Acoustic noise cancellation algorithm using System objects in MATLAB.
MATLAB の System object を使用した音響ノイズ キャンセリング アルゴリズム (左上)。適応処理前 (右上) と適応処理後 (右下) のフィルター係数をプロットして値を表示することができます。

システム設計とプロトタイピングの DSP アルゴリズム

DSP System Toolbox では、システムの挙動の数学的なモデリングとモデルのシミュレーションを行って、システムのパフォーマンスを正確に予測し、最適化を行うことができます。また、この System Toolbox を使用することで、MATLAB/Simulink でデジタル システムをシミュレーションすることが可能です。Simulink と DSP System Toolbox を併用すれば、ミックスドシグナル システムやマルチドメイン システムなどの、高度なシステムをモデリングできます。

DSP System Toolbox のアルゴリズムは、通信、オーディオ、音声処理、レーダー、制御システム、画像/動画処理、医療、および産業用アプリケーションの信号処理システムの構築ブロックとして使用できます。

DSP のアルゴリズム ライブラリ

MATLAB 関数、MATLAB System object、または Simulink ブロックとして実装されているすべての DSP System Toolbox のアルゴリズムは、倍精度および単精度の浮動小数点データ タイプをサポートしています。また、ほとんどのアルゴリズムは整数データ タイプと固定小数点データ タイプの両方をサポートしています (Fixed-Point Designer™が必要です)。

DSP System Toolbox には、次のカテゴリのアルゴリズムがあります。

  • コンボリューション、窓関数、パディング、むだ時間のモデリング、ピーク検出、ゼロクロッシング検出などの信号操作
  • 高速フーリエ変換 (FFT)、離散コサイン変換 (DCT)、短時間フーリエ変換、離散ウェーブレット変換 (DWT) などの信号変換
  • デジタル FIR および IIR フィルターのフィルター設計と実装手法
  • 信号解析とスペクトル推定のための統計的信号処理手法
  • バッファリング、インデキシング、スイッチング、スタッキング、キューイングなどの信号操作
  • 線形システム ソルバー、行列の分解、逆行列計算などの線形代数ルーチン
  • スカラーおよびベクトルの量子化と符号化および復号化
Partial list of System objects available in MATLAB, with category view of blocks available for use in Simulink, with expanded views of the Signal Processing Sources and Transforms block libraries.
MATLAB で提供されている System object の一部のリスト (上) と、Simulink で使用可能なブロックのカテゴリ表示 (中央)、および Signal Processing Sources と Transforms ブロック ライブラリの展開表示 (下)。

マルチレート システムのモデリング

DSP System Toolbox は、サンプル レートを変換するためのマルチレート処理や、異なるサンプル レートやクロック レート間のインターフェイスをとるシステムのモデリングもサポートしています。マルチレート機能には、マルチレート フィルターや、アップサンプリング、ダウンサンプリング、補間、デシメーション、リサンプリングなどの信号処理が含まれます。

Sigma-delta A/D converter model in Simulink showing signals operating at multiple sample rates.
複数のサンプル レートで動作する信号を示す、Simulink におけるシグマ デルタ型 A/D 変換機のモデル。

可変サイズの信号

DSP System Toolbox では、実行時にサイズや値が変化する信号入力をサポートしています。また、System object や Simulink ブロックのサブセットは、シミュレーション中、または条件付きで実行されるサブシステムの初期化時に発生するモード切り替えイベント中にサイズが変化する、可変サイズ信号をサポートしています。可変サイズ信号に対応できるため、リソース、制約、環境が可変のシステムのモデリングも可能です。

適応フィルター、マルチレート フィルター、専門分野別フィルターの設計手法

DSP System Toolbox では、デジタル フィルターの設計と実装のために多くの手法が提供されています。ローパス、ハイパス、バンドパス、バンドストップなどの応答タイプのフィルターを設計し、直接型 FIR、オーバーラップ加算 FIR、2 次型の直接型 II、カスケード オールパス、ラティスなどのフィルター構造を使用して実行することができます。

MATLAB 関数、アプリまたは Simulink ブロックを使用してフィルターを設計できます。

DSP System Toolbox では、次の多くの設計手法がサポートされています。

  • 最小次数設計、制約付きリップル設計、最小位相設計といった、高度な等リップル FIR フィルター
  • 線形位相、最小位相、準線形位相 (IIR) の各設計に加え、等リップル、傾きをもつ遮断帯域、およびウィンドウの各手法を提供するナイキストとハーフバンドの FIR フィルターと IIR フィルター
  • 計算上の複雑さを最小限に抑えるためにカスケードされた段階の数を最適にできる、最適化された多段階設計
  • 調整可能なフィルタリング アプリケーションに適した Farrow フィルター構造の実装などの、非整数遅延フィルター
  • 近似線形位相パスバンド応答を取得するための他の IIR フィルターのグループ遅延を補正する、任意群遅延をもつオールパス IIR フィルター
  • ロバストな固定小数点の実装のためのラティス波形デジタル IIR フィルター
  • あらゆるフィルター仕様の設計を可能にする任意の振幅と位相の FIR フィルターと IIR フィルター
Specialized filter designs in MATLAB showing LMS adaptive filter applied to a noisy music signal, arbitrary magnitude filter design, direct-form FIR filter responses for fixed-point data types, and octave filter design.
ノイズの多い音楽の信号に適用した LMS 適応フィルター (左上)、任意振幅のフィルター設計 (右上)、固定小数点データ タイプに対する直接型 FIR フィルターの応答 (左下)、およびオクターブ フィルター設計 (右下) を示す、MATLAB における専門分野別フィルターの設計。

適応フィルター

DSP System Toolbox では、適応フィルターの設計のために、LMS ベース、RLS ベース、アフィン投影、高速トランスバーサル、周波数領域、およびラティスベースの各手法が提供されています。また、係数や、学習曲線、収束の追跡など、これらのフィルターを解析するためのアルゴリズムも用意されています。

マルチレート フィルター

DSP System Toolbox では、ポリフェーズ インターポレーター、デシメーター、サンプルレート変換器、CIC フィルターと補償器などの、マルチレート フィルターの設計と実装のための関数が提供されているほか、多段階設計手法もサポートされています。また、マルチレート フィルターの計算の複雑さを推定するための専門分野別解析関数も提供されています。

Interactive design of a lowpass filter in the Filterbuilder tool and visualization of magnitude response.
Filterbuilder ツールにおけるローパス フィルターの対話式の設計 (左) と、振幅応答の可視化 (右)。

DSP アプリケーションのための専門分野別フィルター

DSP System Toolbox では、次の専門分野別デジタル フィルターを設計および実装できます。

  • オーディオ、音声処理、および音響関係のアプリケーションのためのオーディオ重み付けフィルター、オクターブ フィルター、およびパラメトリック イコライザー フィルター
  • 通信システムのためのパルス整形、ピークまたはノッチ、およびマルチレート フィルター
  • 航空ナビゲーション システムのための Kalman フィルター

Simulink システム モデルでのフィルターの使用

DSP System Toolbox で設計したデジタル フィルターは、Simulink のシステムレベルのモデルで使用することも可能です。MATLAB 関数と System object を使用することで、MATLAB のフィルター設計からビットトゥルーな Simulink モデルを生成できます。また、DSP System Toolbox のフィルター設計ブロック ライブラリを使用して、Simulink から直接フィルターを設計、シミュレーションおよび実装できます。

ストリーミングとフレームベース信号処理

DSP System Toolbox では、MATLABSimulink でのストリーミング信号処理とフレームベース処理がサポートされており、リアルタイム信号処理システムを効率的にシミュレーションすることができます。

ストリーミングとフレームベースの処理手法を利用すれば、入力データをフレームにバッファーして、複数のサンプル データを一度に処理できるため、シミュレーションを加速することができます。多くのサンプルで固定の処理オーバーヘッドを分散することにより、シミュレーションの加速が実現します。これらの手法ではシステムにある程度の遅延が生じますが、多くの場合、スループットを向上するように適切なフレーム サイズを選択すれば、許容範囲を超える遅延が発生することはありません。

MATLAB では、データ駆動型アルゴリズム、ソース、シンクを表現する system object を使用して、ストリーミング信号処理が行われます。System object は、データのインデックス付け、バッファリング、アルゴリズムの状態管理など、ストリーム処理の詳細の多くを暗黙的に管理します。また System object は、標準の MATLAB 関数および演算子と組み合わせて使用することができます。System object を使用する MATLAB プログラムは、MATLAB Function ブロックを使用して Simulink モデルに組み込むことができます。ほとんどの System object には、対応する Simulink ブロックがあり、同じ機能を持ち合わせています。

Simulink では、ブロックのダイアログで指定されている処理モードがフレームベースの処理に設定されている場合、DSP System Toolbox ブロックによって入力信号がフレームとして処理されます。また、DSP System Toolbox では、短い遅延時間とスカラー処理を必要とするアプリケーションのために、サンプルベースの処理もサポートされています。多くのブロックでは、サンプルベースとフレームベースの処理モードが両方ともサポートされています。

Envelope detection algorithm illustrating stream processing in MATLAB with System objects.
MATLAB における System object を使用したストリーム処理を示す、エンベロープ検出アルゴリズム。エンベロープ検出のヒルベルト変換および振幅変調の両方の手法のシミュレーション結果が表示されます。

信号生成、I/O、および可視化

信号の生成とインポート

作業に使う信号は、さまざまなソースから取得することができます。以下を行うことができます。

  • マルチメディア ファイルから音声信号をインポート
  • サウンドカードから音声データを記録
  • マルチチャネルの音声データをリアルタイムで取り込む
  • IP ネットワーク ポートから UDP パケットを受け取る

シミュレーション結果は音声ファイルやオーディオ デバイスにエクスポートしたり、IP ネットワークを通じて UDP パケットとして送信したりできます。

また、DSP System Toolbox の関数を使用すれば、バイナリ信号、ランダム信号、あるいは正弦波やチャープ信号などの一般的な波形を生成できます。

時間領域と周波数領域における信号の可視化

DSP System Toolbox では、時間領域と周波数領域の可視化のために、Time Scope、Spectrum Scope、Vector Scope、および Waterfall Scope の各ツールが提供されています。

Visualizing time-domain signals in the Time Scope tool.
Time Scope ツールを使用した時間領域信号の可視化。シミュレーション制御により、Time Scope の内部からシミュレーションの開始、一時停止、停止を実行できます。

Time Scope では、信号が時間領域で表示され、連続と離散、固定サイズと可変サイズ、浮動小数点と固定小数点のデータ、および N 次元の信号など、さまざまな信号がサポートされています。また、各入力信号が異なる次元、サンプル レート、およびデータ タイプをもつ場合でも、複数の信号を同じ軸に表示できます。Time Scope のシミュレーション制御では、ウィンドウを切り替えずに、シミュレーションの開始、一時停止、続行、停止を実行できるうえ、スナップショットをとることも可能です。

Spectrum Scope では、時間領域の入力信号のスペクトルが推定され、線形スケールまたは対数スケールに周波数スペクトルが表示されます。Scope のパラメーターでは、FFT の長さ、バッファーのサイズとオーバーラップ、およびスペクトルの単位を指定できます。

Vector Scope は、デジタル オシロスコープと同様の総合的な表示ツールです。ベクトルからの連続した時間サンプルや、フィルター係数やスペクトルの振幅などのデータを含むベクトルをプロットする場合に使用できます。

Waterfall Scope は、各ベクトルが連続するサンプル時間の入力データを表す場合に、複数のデータ ベクトルを一度に表示できます。このツールでは、実数の倍精度のデータのみが表示されます。

DSP システム モデルのための固定小数点の実装とコード生成

DSP System Toolbox を Fixed-Point Designer と併用すれば、固定小数点の信号処理アルゴリズムをモデリングし、量子化がシステムの挙動やパフォーマンスに与える影響を解析できます。

DSP System Toolbox では、次のような固定小数点データ タイプがサポートされています。

  • 1 ~ 128 ビットまでのワード サイズ
  • オーバーフロー処理と丸め手法
  • 内部変数のオーバーフロー、最大値、最小値のログ記録
  • 手動または自動スケーリング
  • システム レベルのデータ タイプ設定を制御するためのデータ タイプ オーバーライド オプション

固定小数点システムのモデリングとシミュレーション

DSP System Toolbox の System object やブロックを固定小数点モードで演算を行うように設定できます。これによって、実際のハードウェアへの実装を行う前に、異なるワード長や、スケーリング、オーバーフロー処理、丸め方法を使用してシミュレーションを実行して設計のトレードオフを解析できます。

固定小数点モードは、次の DSP アルゴリズムでサポートされています。

  • FFT、DCT、IFFT、IDCT、およびその他の信号変換
  • Digital Filter、Biquad Filter、LMS Filter、およびその他のフィルター実装
  • 平均値、分散、自動相関、ヒストグラム、およびその他の統計
  • Levinson-Durbin、Forward Substitution、Backward Substitution、およびその他の線形システム ソルバー
  • Matrix Multiply、Matrix Product、Matrix Sum、Matrix 1-Norm などの行列演算
  • Cumulative Product、Cumulative Sum、Difference、Normalization などの数学演算

Simulink と DSP System Toolbox を併用すると、固定小数点演算のブロック設定を自動化することができます。以下に例を示します。 

  • 特定のハードウェア ターゲットとの互換性を確保するために、アキュムレーターと乗算器のサイズを決定。
  • フィルターの係数のバイナリ ポイントは、ユーザー定義のワード長、精度および実効値に基づいて自動的に決定。
  • 積のアウトプットは、積のフィルター係数-入力値間のすべてのビットを保持。
  • 積和演算は、オーバーフローを避けるよう設定。
Block dialog for FFT block in DSP System Toolbox.
DSP System Toolbox の FFT ブロックのブロック ダイアログ。このダイアログには、積和演算、積、および出力信号の固定小数点データ タイプを設定するためのオプションがあります (Simulink Fixed-Point が必要です)。

固定小数点フィルターの設計

DSP System Toolbox のフィルター設計関数では浮動小数点フィルターを設計でき、これらのフィルターは Fixed-Point Toolbox を使用して簡単に固定小数点データ タイプに変換できます。この設計フローを使用すれば、固定小数点フィルターの設計を簡易化することができ、量子化の影響を簡単に解析することが可能です。

C コードと HDL コードの生成

DSP System Toolbox を MATLAB Coder および Simulink Coder と併用すれば、アルゴリズムやシステム モデルから C コードを生成できます。生成したコードは、製品開発のプロセスで、システムの検証や、ラピッド プロトタイピング、および実装に使用できます。

DSP System Toolbox を Filter Design HDL Coder と併用すれば、デジタル フィルターの設計から HDL コードを生成できます。Simulink では、HDL Coder と併用した場合は、DSP System Toolbox のブロックによって HDL コードの生成がサポートされます。

製品評価版の入手
または製品の購入

MATLABで信号処理 ~各種センサーを題材として~

Web セミナーを表示する