主要内容

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

系统对象を使用したMATLABでのシステム設計

Matlabでのシステム設計とシミュレ,ション

系统对象を使用すると,MATLAB®でのシステムの設計とシミュレ,ションが可能になります。系统对象は MATLAB で下の図のように使用します。

  1. 個々のコンポ,ネントの作成-システムで使用する系统对象を作成します。個々のコンポ,ネントの作成。システムツールボックスで提供される系统对象に加えて,独自の系统对象も作成できます。系统对象の作成を参照してください。

  2. コンポ,ネントの構成-必要に応じてオブジェクトのプロパティ値を変更して特定のシステムをモデル化します。すべての System object™ のプロパティには既定値があり、既定値をそのまま使用できる場合もあります。コンポ,ネントの構成を参照してください。

  3. コンポ,ネントのシステムへの組み立て——これらの系统对象を含むMATLABプログラムを作成し,MATLAB変数を入出力として使用して系统对象を接続し,システムをシミュレーションします。系统对象の接続を参照してください。

  4. システムの実行-プログラムを実行します。システムの実行中に調整可能なプロパティを変更できます。システムの実行オブジェクトの再設定を参照してください。

個々のコンポ,ネントの作成

この節の例では,ソフトウェアで事前定義されている系统对象の使用方法を説明します。関数を使用して System object を作成して使用するには、条件付きコードを使用したオブジェクトの作成を指定します。条件付きの作成により、ループ内でその関数が呼び出された場合にエラーが回避されます。また、独自の System object を作成することもできます。系统对象の作成を参照してください。

ここでは、DSP系统工具箱™および音频工具箱™の事前定義されたコンポーネントを使用してシステムを設定する方法を説明します。

  • dsp。AudioFileReader—オディオデタのファルの読み取り

  • dsp。FIRFilter—オディオデタのフィルタ処理

  • audioDeviceWriter—フィルタ処理されたオディオデタの再生

最初に,既定のプロパティ設定を使用してコンポ,ネントオブジェクトを作成します。

audioIn = dsp.AudioFileReader;filtLP = dsp.FIRFilter;audioOut = audioDeviceWriter;

コンポ,ネントの構成

コンポ,ネントの構成が必要な場合

オブジェクトのプロパティを作成時に設定しなかった場合に既定値以外の値を使用するには,これらのプロパティを明示的に設定しなければなりません。一部のプロパティはシステムの実行中に値を変更できます。詳細は,オブジェクトの再設定を参照してください。

ほとんどのプロパティは互いに独立しています。ただし,一部の系统对象プロパティによって他のプロパティが有効または無効になったり,他のプロパティの値が制限されたりすることがあります。エラーや警告を避けるために,依赖プロパティを設定する前にコントロールプロパティを設定するようにしてください。

コンポ,ネントのプロパティ値の表示

オブジェクトの現在のプロパティ値を表示するには,オブジェクトのハンドル名(たとえばaudioIn)をコマンドラleiンに入力します。特定のプロパティの値を表示するにはobjecthandle.propertyname(たとえばaudioIn。文件名)と入力します。

コンポ,ネントのプロパティ値の構成

ここでは,コンポーネントオブジェクトのプロパティを設定して,システムのコンポーネントを構成する方法について示します。

コンポ,ネントを作成済みでまだ構成していない場合は,次の手順を実行します。後の例で説明するように,コンポ,ネントの作成と構成を同時に行うこともできます。

ファルリダオブジェクトでは,読み取るファルを指定して出力デタ型を設定します。

フィルターオブジェクトでは,ローパスフィルターの次数とカットオフ周波数を指定する関数fir1を使用してフィルターの分子係数を指定します。

オディオデバスラタオブジェクトでは,サンプルレトを指定します。この場合は,入力デ,タと同じサンプルレ,トを使用します。

audioIn。文件名=“speech_dft_8kHz.wav”;audioIn。OutputDataType =“单身”;filtLP。分子= fir1(160,.15);audioOut。SampleRate = audioIn.SampleRate;

コンポ,ネントの作成と構成の同時実行

この例では、系统对象コンポーネントの作成と必要なプロパティの構成を同時に行う方法を示します。各プロパティを名称と取值引数のペアで指定します。

ファルリダオブジェクトを作成し,読み取るファルを指定して出力デタ型を設定します。

audioIn = dsp。AudioFileReader (“speech_dft_8kHz.wav”...“OutputDataType”“单身”);

フィルタ処理を行うオブジェクトを作成し,関数fir1を使用してフィルタの分子を指定します。関数fir1のロパスフィルタの次数とカットオフ周波数を指定します。

filtLP = dsp。FIRFilter (“分子”fir1(160 .15点));

オーディオプレイヤーオブジェクトを作成し,サンプルレートを入力データと同じレートに設定します。

audioOut = audioDeviceWriter(“SampleRate”, audioIn.SampleRate);

コンポ,ネントのシステムへの組み立て

系统对象の接続

必要なコンポーネントを決定し,系统对象を作成および構成したら,システムを組み立てます。系统对象は他のMATLAB変数と同様に使用してMATLABコードに含めます。MATLAB変数は系统对象との間で受け渡すことができます。

系统对象を使用することと関数を使用することの主な違いは,系统对象は2つの手順のプロセスを使用するということです。まず,オブジェクトを作成してそのパラメ,タ,を設定してから,オブジェクトを実行します。オブジェクトを実行することでオブジェクトを初期化し,データフローおよびシステムの状態管理を制御します。通常系统对象はコ,ドル,プ内部で呼び出します。

あるオブジェクトからの出力を別のオブジェクトへの入力として使用します。一部の系统对象では,オブジェクトのプロパティを使用して入出力を変更できます。適切な数の入出力が使用されていることを検証するには,任意の系统对象に対して输入参数个数およびnargoutを使用できます。使用可能なすべての系统对象関数にいては,系统对象の関数を参照してください。

システムでのコンポ,ネントの接続

この節では,コンポーネントを接続して1つにまとめてオーディオデータのファイルを読み取り,フィルターおよび再生する方法を示します。而ル,プは関数结束を使用して,ファ。

~isDone(audioIn) audio = audioIn();读取音频源文件y = filtLP(音频);过滤数据audioOut (y);播放过滤后的数据结束

システムの実行

コードを実行するには,コマンドラインに直接コードを入力するか,プログラムを含むファイルを実行します。システムに対してコ,ドを実行すると,デ,タはオブジェクトを介して処理されます。

システムの実行中に変更できないものにいて

系统对象をはじめて呼び出すと,そのオブジェクトが初期化されてから実行されます。系统对象によるデ,タの処理が開始されたら,調整不可能なプロパティを変更できなくなります。

系统对象によっては,以下の追加の仕様が制限される場合もあります。

  • 入力サ@ @ズ

  • 入力の実数/複素数

  • 入力のデ,タ型

  • 調整可能なプロパティのデ,タ型

  • 離散状態のデ,タ型

系统对象の作成者がこれらの仕様を制限している場合,系统对象の使用中にこれらを変更しようとするとエラーが発生します。

オブジェクトの再設定

プロパティの変更

系统对象によるデ,タの処理が開始されたら,"調整不可能"なプロパティを変更できなくなります。任意の系统对象に対してisLockedを使用して,オブジェクトがデ,タの処理中かどうかを検証できます。処理が完了したら,関数释放を使用してリソ,スを解放し,調整不可能なプロパティへの変更を可能にします。

オブジェクトの一部のプロパティは"調整可能"で,オブジェクトが使用中であっても変更できます。系统对象の大半のプロパティは調整不可能です。個々のプロパティが調整可能かどうかを確認するには、オブジェクトのリファレンス ページを参照してください。

入力の実数/複素数,次元,またはデ,タ型の変更

オブジェクトの使用中,アルゴリズムを呼び出した後には,一部の系统对象では入力の実数/複素数,次元,またはデータ型の変更が許可されません。系统对象によってこれらの仕様が制限されている場合,释放を呼び出して仕様を変更することができます。释放を呼び出すと,状態や離散状態など,系统对象のその他の要素もリセットされます。

システムの調整可能なプロパティの変更

この例では,フィルタ,オブジェクトの分子プロパティを変更することによって,コードの実行中にフィルターのタイプをハイパスフィルターに変更する方法を説明します。変更は,オブジェクトが次に呼び出されるときに有効になります。

重置(audioIn);%重置音频文件Wn = [0.05,0.1,0.15,0.2];Wn_X = ceil(x/1000);filtLP。分子= fir1(160,Wn(Wn_X),“高”);audio = audioIn();读取音频源文件y = filtLP(音频);过滤数据audioOut (y);播放过滤后的数据结束