主要内容

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

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

matlabでのシステム设计とシミュレーション

系统对象を使用すると,MATLAB®でのシステムの设计と​​が可手にます.system对象はmatlabで下の図のようようににによう使します。

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

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

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

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

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

この节の例では,ソフトウェアで事前定义されて系统对象の实用方法をを明します。关明します系统对象を作物しし使使するは,条件付きコード使使しはの作物ます付きの作用成により,ループ内でその关键呼び出された场にが回避されます。系统对象の作成を参照してください。

,DSP SYSTEM TOOLBOX™および音频工具箱™│││││││││││││││││││││││├

  • dsp。AudioFileReader- オーディオオーディオデータのファイルのの

  • dsp。FIRFilter- オーディオデータのフィルター经理

  • audioDeviceWriter- フィルター管理されたたたデータのの生

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

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

コンポーネントコンポーネント构成

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

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

ほとんどのプロパティは互いにしていますます。ただし,一切の系统对象プロパティによって他のがががまたはになったり,他のプロパティのががれれたりするがあります。に,依赖于プロパティプロパティを设定する前コントロールプロパティを设定するようにして

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

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

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

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

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

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

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

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

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

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

この例では,系统对象コンポーネントの作品成となプロパティプロパティの成を同にうううます示し示しををとますとととととし指定指定します各で指定ししし示しで指定します

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

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

フィルター致理性を行作作作作者关有关部FIR1を使使ててますししし。关键萤火虫1のフィルターのしし。

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

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

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

コンポーネントのシステムへの组み立て

系统对象のの

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

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

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

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

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

尽管~isDone(audioIn)音频= audioIn();%读取音频源文件y = filtlp(音频);%过滤数据audioOut (y);%播放过滤的数据结束

システムの実行

。

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

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

System对象によってによって,以以のの加の仕様制制制されるもありますます。

  • 入力サイズ

  • 入力の実数/複素数

  • 入力のデータ型

  • 调整可能なプロパティのデータ型

  • 離散状態のデータ型

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

オブジェクトの再设定

プロパティの変更

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

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

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

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

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

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

重置(audioIn);%重置音频文件Wn = (0.05, 0.1, 0.15, 0.2);x= 1:20 00 Wn_X = ceix (x/1000);filtLP。分子= fir1 (Wn (Wn_X), 160年“高”);音频= audioIn ();%读取音频源文件y = filtlp(音频);%过滤数据audioOut (y);%播放过滤的数据结束