主な機能

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

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

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

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

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

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

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

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

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

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

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

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

マルチレート システム

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Explore gallery (2 images)


適応フィルター

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

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

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

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

Explore gallery (2 images)


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

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

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

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

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

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

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

Explore gallery (3 images)


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

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

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

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

量子化ノイズを含む固定小数点フィルター設計の解析。フィルター設計での制約が満たされておらず、語長が 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 などの標準的なモデリング ソフトウェアに統合できます。

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 などのリソースとパフォーマンスのために最適化されたアルゴリズムのサポートが含まれます。

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