DSP System Toolbox

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

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

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 用の信号処理ブロックライブラリ

Simulink で使用可能な信号処理のための DSP System Toolbox ブロックライブラリ (上)、線形システムソルバーの展開表示 (左下)、変換 (右下)。

マルチレートシステムのモデル化

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

シグマデルタ ADC 用の多段間引き

シグマデルタ アナログ デジタル コンバーター用の多段間引きフィルターの Simulink モデル

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

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

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

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

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

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

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

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

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

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

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

  • FFT (高速フーリエ変換) や DCT (離散コサイン変換) などの信号変換
  • デジタル FIR および IIR フィルターの設計と実装手法
  • FIR と IIR のハーフバンド フィルター、ポリフェーズ フィルター、CIC フィルター、Farrow フィルターなどの、サンプルレート変換用のマルチレート フィルターおよび多段フィルター
  • スペクトル推定、イコライザー、ノイズ抑制のための統計的適応信号処理手法
  • 畳み込み、ウィンドウ処理、パディング、遅延のモデル化、ピーク検出、可変の非整数倍遅延などの信号操作および測定
  • タイムスコープ、スペクトラムアナライザーおよびロジックアナライザーを使用した実行時の信号可視化
MATLAB でのストリーミング信号処理用のライブラリ

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

マルチレート システム

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

3 段階 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 では次のような特定用途向けフィルターおよび設計法がサポートされています。

適応フィルター

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

音響ノイズ キャンセリング システムのモデルをシミュレーションしながら、正規化した LMS 適応フィルターの動的応答を可視化

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

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

単一ステージと多段フィルターの設計

FVTool を使用した等リップル設計と、それに相当するマルチレート設計・多段階設計の周波数応答の比較 (左)、入力信号と各フィルター出力のパワー スペクトル密度プロットによるパフォーマンスの比較 (右)。

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

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

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

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

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

時間スコープでの波形計測用のデータカーソル

データカーソルを使用して、時間スコープで波形の 2 点間の時間差および振幅差を測定。

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

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

スペクトル アナライザーによる測定

非線形増幅器モデルをチャープ信号に適用することで生成された、スペクトルピークの周波数とパワーの測定。

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

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

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

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

固定小数点データ型の FFT プロパティ

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 などの標準的なモデリング ソフトウェアに統合できます。

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 コードをシステム設計用途で生成できます。FPGA/ASIC のリソース使用量とパフォーマンスを最適化するには、DSP HDL Toolbox ブロックの使用を検討します。

部分的なシリアルシストリック FIR フィルター構造

ロジックアナライザーを使用したプログラム可能 FIR フィルターのハードウェアモデルの検証。