Accelerating the pace of engineering and science

DSP System Toolbox

主な機能

  • MATLAB® でのストリーミング信号処理
  • Simulink® 用の信号処理および線形代数ブロック
  • シングルレート、マルチレート、FIR、IIR および適応フィルターの設計
  • ストリーミング信号の可視化および測定のためのタイムスコープ、スペクトラムアナライザー、ロジック アナライザー
  • 信号処理アルゴリズムの固定小数点システムのモデリングとシミュレーション
  • C コードおよび C++ コード生成のサポート
  • HDL コード生成のサポート

MATLAB でのストリーミング信号処理

DSP System Toolbox™ には、MATLAB でストリーミング信号を処理するためのフレームワークが用意されています。このシステム ツールボックスには、シングルレート フィルター、マルチレート フィルター、適応フィルター、FFT などのストリーミング信号の処理に最適化された信号処理アルゴリズムのライブラリが付属しています。このシステム ツールボックスは、オーディオ、医用生体、通信、制御、地震動、センサー、音声などの用途の信号処理ソリューションの設計、シミュレーションおよび配布に最適です。

ストリーミング信号処理手法を使用すると、継続的に流れるデータ ストリームの処理が可能になります。これにより、入力データがフレームに分割され、各フレームを取得しながらデータ ストリームを処理するようになるため、多くの場合、シミュレーションを高速化できます。たとえば、MATLAB でのストリーミング信号処理により、マルチチャンネル オーディオのリアルタイム処理が可能になります。

ストリーミング信号処理は、データ駆動型アルゴリズム、信号源、終端を表現する System object™ という DSP アルゴリズム コンポーネントのライブラリを使用して行われます。System object を使用すると、データのインデックス付け、バッファリング、アルゴリズムの状態管理などのタスクが自動化されるため、ストリーミング アプリケーションを作成できます。また MATLAB System object は、標準の MATLAB 関数および MATLAB 演算子と組み合わせて使用することができます。

タイムスコープスペクトラムアナライザーを使用して、ストリーミング信号を可視化および測定できます。

ストリーミング信号およびデータに最適化されたアルゴリズムを使用して、ストリーミング データにシングルレート フィルター、マルチレート フィルター、適応フィルターを適用できます。

Streaming signal processing technique in MATLAB.
基本的なストリーミング ループを実装する MATLAB コード (左)。タイムスコープ (右上) とスペクトラムアナライザー (右下) は、ライブ信号が発生して処理されるときにその信号を可視化および測定します。

DSP システムの設計、実装、テストのためのアルゴリズム ライブラリ

DSP System Toolbox には、ストリーミング システムの設計、実装、検証に最適化された、MATLAB 関数または MATLAB System object として実装される 350 以上のアルゴリズムが用意されています。これらのアルゴリズムは、倍精度および単精度の浮動小数点データ型をサポートします。また、ほとんどのアルゴリズムは、整数データ型と固定小数点データ型もサポートします (Fixed-Point Designer™ が必要です)。

MATLAB 環境で利用できるDSP System Toolboxのアルゴリズムには、次のカテゴリがあります。

Partial list of System objects available in MATLAB.
コマンド ライン ヘルプによって表示される、またはタブ補完で確認可能な、MATLAB で提供されている信号処理アルゴリズムの一部のリスト。

マルチレート システム

MATLAB 環境でのDSP System Toolbox は、サンプルレート変換のためのマルチレート処理や、異なるサンプルレートやクロック レート間のインターフェイスをとるシステムのモデリングもサポートしています。マルチレート機能には、FIR と IIR のハーフバンド フィルター、ポリフェーズ フィルター、CIC フィルターFarrow フィルターなどの多段フィルターおよびマルチレート フィルターがあります。また、内挿、間引き、任意のサンプルレート変換などの信号操作も含まれます。

Efficient sample-rate conversion between arbitrary factors.
任意の要素間の効率的なサンプルレート変換。示されている例には、次が含まれています。さまざまな実装のための構造とそれらのコスト解析を示す MATLAB コード、サンプルレート変換で効率的な実装を行える Farrow 構造 (左)、ポリフェーズ フィルターと Farrow フィルターによるサンプルレート変換での実装時の比較結果を表す振幅応答 (右上)、Farrow 構造と FIR ポリフェーズ構造のフィルターをカスケード接続したサンプルレート変換のハイブリッド ソリューション (中央右)、スペクトラムアナライザーによる、単一のフィルターおよび多段の FIR と Farrow フィルターの組み合わせの、周波数応答のストリーミング可視化 (右下)。

Simulink 用の信号処理および線形代数ブロック

Simulink では、DSP System Toolbox は、フィルター、FFT 等の変換、線形代数のための信号処理アルゴリズム のブロックライブラリを提供します。これらのブロックは、ストリーミング入力信号を、個々のサンプル、またはフレームと呼ばれるサンプルの集まりとして処理します。サンプルベースの処理では、遅延が少なくなり、スカラー処理を必要とするアプリケーションに対応できます。フレームベースの処理では、遅延は多くなりますが、スループットが向上します。このシステム ツールボックスでは、サンプルベースとフレームベースの処理モードが両方ともサポートされています。

System object を使用している MATLAB プログラムは、MATLAB Function ブロックまたは MATLAB System ブロックを使用して Simulink モデルに組み込むことができます。ほとんどの System object には、対応する Simulink ブロックがあり、同じ機能を持ち合わせています。

Frame-based operation showing frame-based throughput rate vs. sample-based alternative.
各 ISR (割り込みサービス ルーチン) 間で 16 個のサンプルのフレームを取得するフレームベースの処理。フレームベースのスループット率の方がもう一方のサンプルベースの何倍も高くなっていることを示しています。

DSP システムの設計、実装、検証のための信号処理ブロック

信号処理のための Simulink ブロックは、倍精度および単精度の浮動小数点データ型と整数データ型をサポートします。また、固定小数点データ型もサポートします (Fixed-Point Designer と併用する場合)。

DSP System Toolbox の信号処理ブロックには、次のものがあります。

  • FFT (高速フーリエ変換)、DCT (離散コサイン変換)、STFT (短時間フーリエ変換)、DWT (離散ウェーブレット変換) などの信号変換
  • FIR フィルター、IIR フィルター、アナログ フィルターの設計と実装
  • CIC、ハーフバンド、ポリフェーズ、Farrow などの、サンプルレート変換用のマルチレート フィルターおよび多段フィルター
  • スペクトル推定、イコライザー、ノイズ抑制のための統計的適応信号処理手法
  • コンボリューション、ウィンドウ処理、パディング、遅延、ピーク検出、ゼロクロッシング検出などの信号操作および測定
  • タイムスコープ、スペクトラムアナライザーなどを使用したストリーミング信号の可視化と測定
  • バッファリング、インデックス処理、スイッチング、スタッキング、キューイングなどの信号操作
  • チャープおよびカラード ノイズ発生器、NCO、UDP 受信機と送信機などの信号源と終端
  • 線形システムのソルバー、行列の分解、逆行列計算などの数値線形代数ルーチン
DSP System Toolbox blocks library for signal processing available in Simulink.
Simulink で使用可能な信号処理のための DSP System Toolbox ブロック ライブラリ (上)、線形システム ソルバーの展開表示 (左下)、変換 (右下)。

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

Simulink 環境でのDSP System Toolbox は、サンプルレート変換のためのマルチレート処理や、異なるサンプルレートやクロック レート間のインターフェイスをとるシステムのモデリングもサポートしています。マルチレート フィルター ブロックには、CIC、FIR レート変換、FIR 内挿および間引き、2 進解析フィルター バンクなどの多段フィルターおよびマルチレート フィルター ブロックがあります。

Sigma-delta A/D converter model in Simulink showing signals operating at multiple sample rates.
複数のサンプルレートを含む、Simulink におけるシグマ デルタ型 A/D 変換器のモデル (左)。レート調整のための NCO、CIC 間引き、CIC 補償器、ハーフバンド間引き、サンプルレート変換器を含む通信システムにおける、ベースバンド変換のシンプルな DDC (デジタル ダウン コンバーター) のシミュレーション (右)。

シングルレートとマルチレートの FIR フィルターおよび IIR フィルターの設計と適応フィルター

DSP System Toolbox には、FIR フィルター、IIR フィルター、多段フィルター、マルチレート フィルター、適応フィルターのための幅広いフィルター設計アルゴリズムおよび実装アルゴリズムが用意されています。ローパス、ハイパス、バンドパス、バンドストップなどの応答タイプのフィルターを設計できます。このようなフィルターは、直接型 FIR、オーバーラップ加算 FIR、IIR 2 次セクション型 (双二次)、カスケード オールパス、ラティスなどのフィルター構造で実現することができます。

Filterbuilder アプリ、MATLAB コードまたは Simulink ブロックを使用してフィルターを設計できます。また、FIR フィルターと IIR フィルターの固定小数点量子化の影響を解析し、フィルター係数の最適な語長を特定することができます。

実行時に帯域幅やゲインの中で重要なフィルター パラメーターを、調整可能なフィルターとして設計することもできます。

Filterbuilder app for interactive filter design.
Filterbuilder アプリでローパス フィルターを対話的に設計(左)、UI での実装時のフィルター仕様の指定 (中央)、LPF 応答の振幅の可視化 (右)。

MATLAB で DSP System Toolbox を使用して設計したデジタル フィルターは、Simulink のシステムレベルのモデルで使用することも可能です。このシステム ツールボックスには、ローパスハイパスなどのフィルターの設計、シミュレーション、実装を Simulink で直接行うための、すぐに使用可能なフィルター ブロックのライブラリがあります。

従来の FIR フィルターと IIR フィルターの設計アルゴリズムに加えて、DSP System Toolbox では次のような特定用途向けフィルターおよび設計法がサポートされています。

  • 最小次数設計、制約付きリップル設計、最小位相設計といった、高度な等リップル FIR フィルター
  • ナイキストフィルター、FIR ハーフバンドフィルター、IIR ポリフェーズ フィルターについて、等リップル、傾きを持つ阻止帯域、ウィンドウ法による設計だけでなく、線形位相、最小位相、準線形位相を持つハーフバンド設計。
  • ソフトウェア無線およびシグマ デルタ型変換器での乗算器なしの実装のための CIC 内挿および間引きフィルター
  • 計算量を最小限に抑えるためにカスケード接続の段数を最適化する、最適化多段設計
  • 調整が必要なフィルター アプリケーションに適した Farrow フィルター構造の実装に使われる、非整数倍遅延フィルター
  • 線形位相の通過帯域をを得るために他のIIR フィルターの群遅延を補正する、任意群遅延をもつオールパス IIR フィルター
  • ロバストな実装のためのラティスウェーブデジタルIIR フィルター
  • あらゆるフィルター仕様の設計を可能にする任意振幅と任意位相の FIR フィルターと IIR フィルター
Specialized filter designs in MATLAB.
MATLAB におけるフィルター設計の例。左上から時計回りに、任意振幅応答、ローパス FIR 設計比較、バンドパス IIR 設計比較、双二次フィルターの累積セクション解析、固定小数点係数 256 デジタル ダウン コンバーターの応答解析、多段複素バンドパス FIR。

適応フィルター

DSP System Toolbox では、MATLAB および Simulink での適応フィルター処理のためにいくつかの手法が提供されています。これらの手法は、システム同定、スペクトル推定、イコライザー、ノイズ抑制などの用途で広く使用されています。このような適応フィルターには、LMS ベースRLS ベースアフィン投影高速トランスバーサル周波数領域ラティスベースカルマン フィルターがあります。このシステム ツールボックスには、適応フィルターを解析するために、係数や学習曲線、収束の追跡をするアルゴリズムが用意されています。

System identification using RLS adaptive filtering showing how to tune parameters at run time using the UI.
実行時に UI を使用してパラメーターを調整する方法を示す、RLS 適応フィルターを使用したシステム同定。この図には次が含まれています。RLS アルゴリズムを呼び出す MATLAB コード (左上)、中心周波数および RLS 忘却係数を調整するための UI (右上)、RLS フィルター学習曲線のプロット (中央右)、目的の伝達関数と推定伝達関数のプロット (右下)、そしてこれらのSimulink モデルのバージョン (左下)。

マルチレート フィルターおよび多段フィルターと解析

DSP System Toolbox では、ポリフェーズ内挿、間引き、サンプルレート変換器、FIR ハーフバンドIIR ハーフバンド、Farrow フィルター、CIC フィルターと補償器などの、マルチレート フィルターの設計と実装が提供されているほか、多段階設計法もサポートされています。また、マルチレート フィルターおよび多段フィルターの計算量を推定するために特化した解析関数も提供されています。

Responses of equiripple design and corresponding multirate and multistage design.
FVTool を使用した等リップル設計と、それに相当するマルチレート設計・多段階設計の周波数応答の比較 (左)、入力信号と各フィルター出力のパワー スペクトル密度プロットによるパフォーマンスの比較 (右)。
Audio sample-rate conversion of streaming audio signal.
44.1 kHz から 96 kHz へのストリーミング オーディオ信号のオーディオ サンプルレート変換。この図は次を示しています。MATLAB コード (左)、2 段階のサンプルレート変換で使用されるマルチレート フィルターの振幅応答 (フィルター 1 は内挿係数が 160、間引き係数が 147 の FIR レート変換で、フィルター 2 は内挿係数が 2 の FIR 内挿フィルター) (右)。

信号のスコープ、アナライザーおよび測定機能

DSP System Toolbox は、MATLAB および Simulink でストリーミング信号の時間領域または周波数領域の可視化、測定、解析を行うためのスコープおよびデータ ログを提供します。スコープは、業界標準のオシロスコープやスペクトラムアナライザーを使用しているユーザーには馴染み深い測定機能および統計機能が付属しています。

このシステム ツールボックスには、時間領域信号の遷移を表示するためのロジック アナライザーも用意されています。これは、HDL 実装のためのモデルのデバッグに役立ちます。

また、時間経過で変化するフィルター係数のようなデータ ベクトルを可視化するための任意プロットを作成することもできます。

Time Scope for visualization and measurement in time domain of multichannel signals.
マルチチャンネル信号の時間領域における可視化および測定を行うための時間スコープ。図には次が含まれています。カーソル測定およびトリガー計測 (左上)、バイレベル測定パネルとオーバーシュート・アンダーシュート ペイン (右上)、ピーク探索の測定結果 (右下)、カーソル測定 (左下)。

時間スコープでは、信号が時間領域で表示され、マルチチャンネル I/O システムに対して、連続、離散、固定サイズ、可変サイズ、浮動小数点データ、固定小数点データ、N 次元の信号など、さまざまな信号がサポートされています。時間スコープを使用すると、各入力信号が異なる次元、サンプルレート、データ型をもつ場合でも、複数の信号を同じ軸に表示できます。または、スコープ ウィンドウ内で別々の表示領域に多チャンネルの信号を表示することもできます。時間スコープでは、RMS (二乗平均平方根)、ピーク間、平均値、中央値などの解析、測定、統計処理を実行できます。

Spectrum Analyzer for frequency-domain visualization and measurements of various multichannel signals.
さまざまなマルチチャンネル信号の周波数領域の可視化および測定を行うためのスペクトラムアナライザー。図は次を示しています。THD、SNR、SINAD、SFDR などの高調波歪み測定 (左上)、ACPR (隣接チャネル電力比) の測定 (右上)、時変スペクトルのスペクトログラム (左下)、ピーク探索と TOI (3 次相互変調) 歪み測定 (右下)。

スペクトラムアナライザーでは、さまざまな入力信号の周波数スペクトルが計算され、線形スケールまたは対数スケールで周波数スペクトルが表示されます。スペクトラムアナライザーは、高調波歪み測定 (THD、SNR、SINAD、SFDR)、TOI (3 次相互変調) 歪み測定、ACPR (隣接チャネル電力比) の測定、CCDF (相補累積分布関数)、PAPR (ピーク対平均電力比) などの測定および解析を実行します。スペクトラムアナライザーのスペクトログラム モード ビューは、時変スペクトルの表示方法を示します。ここでは、自動ピーク検出を実行できます。

DSP System Toolbox には追加の可視化機能として、実数または複素数、ベクトル、配列、フレームなどのデータに固定小数点や倍精度、ユーザー定義のデータ列のデータ型のような、さまざまな信号またはデータを表示および測定できるツールが用意されています。可視化ツールの中には、ストリーミング データまたは信号を 3D 表示できるものもあり、これによってシミュレーションが停止するまでの期間にわたってデータ解析を実行できます。

View of LMS adaptive filter weights on the array plot.
配列プロットによる LMS 適応フィルターの重み係数の表示。例題の実行中に、ノイズの多い入力信号に対する適応フィルター処理によりフィルターの重み係数が変わることを確認します (左上)。ロジック アナライザーによる時間領域信号の遷移を表示します (右上)。Vector Scope ブロックは、一定期間のユーザー定義のデータ列から現在のフレームの番号を表示し、新しい入力を受け取るたびにカウントを自動的にインクリメントして、それをシミュレーションが停止するまで続けます (右下)。Waterfall Scope ブロックは、複数のデータ ベクトルを一度に表示し、音響ノイズ キャンセリングの連続したサンプル時間の出力データを表します (左下)。

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

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

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

固定小数点モードは、FFT、フィルター、統計、線形代数などの多数の DSP アルゴリズムがサポートされています。DSP System Toolbox では、固定小数点演算のための System object およびブロックの設定を自動化することができます。

FFT MATLAB System object and FFT Simulink block provisions.
FFT 処理のMATLAB System object には、加算、積算、出力データに固定小数点データ型を設定するためのプロパティがあります (左)。FFT 処理の Simulink ブロックのダイアログ ボックスにも、加算、積算、出力信号に固定小数点データ型を設定するためのオプションがあります (Fixed-Point Designer が必要です) (右)。

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

DSP System Toolbox のフィルター設計関数および Filterbuilder アプリでは浮動小数点フィルターを設計でき、これらのフィルターは Fixed-Point Designer を使用して固定小数点データ型に変換できます。この設計フローを使用すれば、固定小数点フィルターの設計および最適化をシンプルにすることができ、量子化の影響を解析することが可能です。

Fixed-point filter design analysis of quantization noise.
量子化ノイズを含む固定小数点フィルター設計の解析。フィルター設計での制約が満たされておらず、語長が 8 ビットのため阻止帯域の減衰量が不十分です (右)。異なる係数の語長として12 ビットの語長で満足し、フィルター設計の制約が満たされています (左)。

デスクトップおよび組み込みワークフロー用の C コードと C++ コードの生成

DSP System Toolbox を MATLAB Coder™ および Simulink Coder™ と併用すると、MATLAB および Simulink の信号処理アルゴリズムおよびシステム モデルから C と C++ ソース コードや、パフォーマンス向上のための MEX 関数を生成できます。

生成したコードは、製品開発のプロセスで、システムの高速化や、ラピッド プロトタイピング、実装と配布、統合に使用できます。

デスクトップでの高速化

シミュレーション中に計算量が多いアルゴリズムを高速化するために、効率的でコンパクトな実行可能コードである MEX 関数を生成できます。MATLAB および Simulink でフィルター、FFT、統計線形代数 などの浮動小数点アルゴリズムおよび固定小数点アルゴリズムを高速化できます。

フレームベースのストリーミング シミュレーションを高速化するために、dspunfold では、DSP の展開技術を使用して、複数のスレッド間において生成された MEX 関数で計算負荷を分散します。

スタンドアロン実行と他の環境との統合

DSP System Toolbox では、アルゴリズムのスタンドアロンの実行可能ファイルを生成することで、MATLAB コードまたは Simulink モデルから生成した C コードを、配布やデスクトップでのプロトタイピングに使用することもできます。このスタンドアロンの実行可能ファイルは、UDP コンポーネントを使用して、MATLAB または Simulink 内から直接リアルタイムで調整できます。このスタンドアロンの実行可能ファイルは MATLAB コードまたは Simulink モデルとは異なるスレッドで実行されるため、アルゴリズムのリアルタイムのパフォーマンスが向上します。

信号処理アルゴリズムの生成された C コードは、コンパイルされたライブラリ コンポーネントとして、カスタム シミュレーターなどの他のソフトウェアや SystemC などの標準的なモデリング ソフトウェアに統合できます。

How to generate an MEX function tuned for performance from MATLAB.
MATLAB からパフォーマンスが最適になるように調整された MEX 関数を生成して、デスクトップでシミュレーションを高速化する方法。次が示されています。3 バンドのオーディオ パラメトリック イコライザー関数のサンプル MATLAB コード (左)、メイン処理のアルゴリズムと同等の MEX ファイル (右)。

ARM Cortex プロセッサ向けに最適化された C コード生成

DSP System Toolbox を ARM Cortex-A または ARM Cortex-M のハードウェア サポート アドオンおよび Embedded Coder® と併用すると、FFT、FIR、双二次フィルターなどの主要な DSP アルゴリズム用の MATLAB System object または Simulink ブロックから、最適化された C コードを生成できます。生成されたコードは、ARM Cortex-A Ne10 ライブラリまたは ARM Cortex-M CMSIS ライブラリ向けに最適化されたルーチンを呼び出します。主なメリットは、標準的な C コードと比べてパフォーマンスが直接的に向上することです。また、PIL (プロセッサインザループ) テストを使用して、コード検証およびプロファイルを実行することもできます。

FPGA および ASIC 開発用の HDL コードの生成

MATLAB で DSP System Toolbox を Filter Design HDL Coder™ と併用すると、デジタル フィルターを設計し、効率的で合成と移植が可能な VHDL® コードと Verilog® コードを生成して、FPGA または ASIC で実装することができます。また、VHDL および Verilog のテスト ベンチを自動的に作成して、生成されたコードのシミュレーション、テスト、検証を実行することもできます。

DSP System Toolbox を HDL Coder™ と併用すると、合成と読み取りが可能な VHDL コードと Verilog コードをシステム設計用途で生成できます。この製品には、フィルター、FFTIFFTNCO などのリソースとパフォーマンスのために最適化されたアルゴリズムのサポートが含まれます。

Generate HDL code for programmable FIR filter model.
プログラマブル FIR フィルター モデルの HDL コードの生成。これらの図は次を示しています。HDL 実装用プログラマブル FIR フィルター モデル (左上)、レジスタ サブシステムを介したプログラマブル FIR (右上)、スコープでのフィルター入力と基準信号の表示 (中央右)、ロジック アナライザーでの係数、書き込みアドレスとイネーブル信号、フィルター入力信号とリファレンス信号の表示 (右下)、Simulink モデルから自動生成された HDL コード (左下)。

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

医療機器開発におけるモデルベースデザイン

Web セミナーを表示する