主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

系统对象とは

系统对象™は,特殊なMATLAB®オブジェクトです。多くのツールボックスには系统对象が含まれています。系统对象は入力が時間経過とともに変化する動的システムを実装およびシミュレーションするために特別に設計されています。多くの信号処理システム、通信システムおよび制御システムは動的です。動的システムでは、出力信号の値は入力信号の瞬間的な値とシステムの過去の動作の両方に依存します。System object は内部状態を使用してこの過去の動作を保管し、次の計算ステップで使用します。このため、System object はビデオやオーディオ処理システムなどのセグメント内の大規模なデータ ストリームを処理する反復的な計算に対して最適化されています。ストリーミング データの処理機能により、メモリに大量のデータを保存せずに済むという利点がもたらされます。ストリーミング データの使用により、ループを効率的に使用するシンプルなプログラムを使用できます。

たとえば,ファイルからデータを読み取り,このデータにフィルターを適用し,フィルター処理された出力を別のファイルに書き込むシステムに系统对象を使用することができます。一般的には,各ループ反復で,指定した量のデータがフィルターに渡されます。ファイルリーダーオブジェクトは,状態を使用してファイル内で次にデータの読み取りを始める位置を追跡します。同様に,ファイルライターオブジェクトでも,データが上書きされないように,出力ファイルに最後にデータを書き込んだ位置が追跡されます。フィルターオブジェクトではフィルター処理が適切に実行されるようにフィルターの内部状態が維持されます。次の図は単ループのシステムを表しています。

これらの利点により,系统对象はストリーミングデータの処理に適しています。

多くの系统对象では以下の機能がサポートされています。

  • 固定小数点演算(定点设计师™ライセンスが必要)

  • Cコードの生成(MATLAB编码器™または金宝app®编码器のライセンスが必要)

  • 高密度脂蛋白コードの生成(HDL编码器™ライセンスが必要)

  • 実行可能ファイルまたは共有ライブラリの生成(MATLAB编译器™ライセンスが必要)

メモ

製品のドキュメンテーションで,使用する特定の系统对象を固定小数点,コード生成,およびMATLAB编译器がサポートしていることを確認してください。

系统对象はデータの処理に少なくとも次の2つのコマンドを使用します。

  • オブジェクトの作成(fft256 = dsp。FFTなど)

  • オブジェクトからのデータの実行(fft256 (x)など)

作成を実行から分離することで,異なる設定ごとに永続的で再利用可能な複数のオブジェクトを作成できます。このアプローチを使用すると,入力の確認と検証の反復を防ぐことができるだけでなく,プログラミングループ内で簡単に使用することができるため,全体的なパフォーマンスが向上します。それとは対照的に,MATLAB関数は,関数の呼び出しのたびにパラメーターを確認しなければなりません。

システムツールボックスで提供される系统对象に加えて,独自の系统对象も作成できます。系统对象の作成を参照してください。

系统对象の実行

系统对象を実行して,そのアルゴリズムによって定義されている演算を実行するには,オブジェクトを関数のように呼び出します。たとえば,dsp。FFT系统对象を使用し,長さ1024を指定し,dftという名前を付けてFFTオブジェクトを作成するには,次を使用します。

dft = dsp。FFT (“FFTLengthSource”“属性”“FFTLength”, 1024);
このオブジェクトを入力xで実行するには,次を使用します。
dft (x);
入力引数を指定せずに系统对象を実行する場合,空の小かっこを含めなければなりません。たとえば,asysobj ()を指定します。

系统对象を実行すると,初期化,オブジェクトの状態の処理など,データ処理に関連するその他の重要なタスクも実行されます。

メモ

系统对象を実行する代替方法は,関数一步を使用することです。たとえば,dft = dsp。FFTを使用して作成されたオブジェクトの場合,步骤(dft, x)を使用して実行できます。

系统对象の関数

系统对象を作成したら,さまざまなオブジェクト関数を使用してデータを処理したり,オブジェクトからの情報またはオブジェクトに関する情報を取得します。関数を使用するための構文は<对象函数名称>(<系统对象名称>)で,必要に応じて入力引数を追加します。たとえば,txfourier = dsp。FFTで,txfourierが割り当てた名前である場合,重置(txfourier)を使用して関数重置を呼び出します。

共通のオブジェクト関数

以下のオブジェクト関数はすべての系统对象でサポートされます。関数が特定のオブジェクトに適用されない場合は、その関数を呼び出してもオブジェクトに影響しません。

関数 説明
オブジェクト関数の実行,または
一步

オブジェクトを実行して,そのオブジェクトによって定義されたアルゴリズムを使用してデータを処理します。

例:オブジェクトdft = dsp.FFT;の場合,オブジェクトを次のように実行します。

  • y = dft (x)

  • y =步骤(dft, x)

この処理の一環として,オブジェクトは必要に応じてリソースを初期化し,出力を返し,オブジェクト状態を更新します。実行中は,調整可能なプロパティのみを変更できます。系统对象の両方の実行方法によって、通常の MATLAB 変数が返されます。

释放

リソースを解放し、系统对象のプロパティ値および系统对象の使用中に制限される追加の特性の変更を可能にします。

重置 系统对象をそのオブジェクトの初期値にリセットします。
输入参数个数 系统对象のアルゴリズム定義が受け入れる入力の数を返します。アルゴリズム定義に变长度输入宗量が含まれる場合,输入参数个数出力は負になります。
nargout 系统对象のアルゴリズム定義が受け入れる出力の数を返します。アルゴリズム定義にvarargoutが含まれる場合,nargout出力は負になります。
克隆 同じプロパティ値をもつ同じデータ型の別のオブジェクトを作成します。
isLocked オブジェクトが既に呼び出され,オブジェクトに対して释放をまだ呼び出していないかどうかを示す論理値を返します。
结束 matlab.system.mixin.FiniteSourceから継承するソースオブジェクトのみに適用されます。データファイルの終端に到達したかどうかを示す論理値を返します。特定のオブジェクトにデータ終了機能がない場合,この関数の値は常にを返します。

参考

関連するトピック