このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
離散時間信号
時間と周波数の用語
Simulink® モデルは離散時間信号と連続時間信号をどちらも処理できます。DSP System Toolbox™ を使用して作成されたモデルは、離散時間信号のみを処理することを目的としています。離散時間信号は特定の時点に対応する一連の値です。信号が定義される時点がその信号の "サンプル時間" であり、関連する信号値がその信号の "サンプル" です。従来、離散時間信号はサンプル時間とサンプル時間の間の時点では未定義であると見なされています。定期的にサンプリングされた信号の場合、連続するサンプル時間の任意のペア間の等間隔がその信号の "サンプル周期" Ts です。"サンプル レート" Fs はサンプル周期の逆数、つまり 1/Ts です。サンプルレートは信号の 1 秒あたりのサンプル数です。
この 7.5 秒の三角波セグメントは、サンプル周期が 0.5 秒で、サンプル時間は 0.0、0.5、1.0、1.5、...、7.5 です。そのため、シーケンスのサンプルレートは 1/0.5、つまり 2 Hz です。
Simulink モデルで検出される離散時間信号の特性を説明するために、多くの異なる用語が使用されています。さまざまなブロックがサンプルベースおよびフレームベースの信号で動作する方法を説明するためによく使用される用語を次の表に示します。
用語 | シンボル | 単位 | メモ: |
---|---|---|---|
サンプル周期 | Ts | 秒 | ブロックへの入力 (Tsi) またはブロックからの出力 (Tso) で示す、シーケンスにおける連続するサンプル間の時間間隔。 |
フレーム周期 | Tf | 秒 | ブロックへの入力 (Tfi) またはブロックからの出力 (Tfo) で示す、シーケンスにおける連続するフレーム間の時間間隔。 |
信号周期 | T | 秒 | 周期信号が 1 回反復する間の経過時間。 |
サンプル周波数 | Fs | Hz (1 秒あたりのサンプル) | 単位時間あたりのサンプル数、Fs = 1/Ts。 |
周波数 | f | Hz (1 秒あたりのサイクル数) | 周期信号または信号成分の単位時間あたりの反復回数、f = 1/T。 |
ナイキスト レート | Hz (1 秒あたりのサイクル数) | エイリアシングを回避する最小サンプルレート。通常は、サンプリングされている信号の最も高い周波数の 2 倍。 | |
ナイキスト周波数 | fnyq | Hz (1 秒あたりのサイクル数) | 信号内に存在する最も高い周波数の 2 倍。 |
正規化周波数 | fn | サンプルあたり 2 サイクル | サンプルレートの半分に正規化された周期信号の周波数 (線形)、fn = ω/π = 2f/Fs。 |
角周波数 | Ω | 1 秒あたりのラジアン | 角度単位での周期信号の周波数、Ω = 2πf。 |
デジタル (正規化された角) 周波数 | ω | サンプルあたりのラジアン | サンプルレートに正規化された周期信号の周波数 (角度)、ω = Ω/Fs = πfn。 |
メモ:
ブロック ダイアログでは、"サンプル時間" という用語は "サンプル周期" Ts を指すために使用されます。たとえば、Signal From Workspace ブロックの [Sample time] パラメーターはインポートされた信号のサンプル周期を指定します。
離散時間シミュレーション用の推奨設定
Simulink では、複数の異なるシミュレーション ソルバー アルゴリズムから選択できます。これらのソルバー アルゴリズムには Simulink モデルからアクセスできます。
[モデル化] タブの [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。
[ソルバー] ペインで行う選択によって、Simulink における離散時間信号の処理方法が決まります。信号処理シミュレーションについて推奨される [ソルバー] の設定は次のとおりです。
タイプ:
固定ステップ
ソルバー:
離散 (連続状態なし)
固定ステップ サイズ (基本サンプル時間):
auto
各離散レートを個別のタスクとして扱う:
Off
DSP Simulink モデル テンプレートを使用して、すべての新しいモデルに対してこれらのソルバー オプションを自動的に設定することができます。詳細については、信号処理モデル向け Simulink 環境の構成を参照してください。
Simulink のタスク モード
ソルバーのタイプが [固定ステップ]
に設定されている場合、Simulink は次の 2 つのタスク モードで動作します。
シングルタスク モード
マルチタスク モード
[モデル化] タブの [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。[ソルバー] ペインで、[タイプ]、[固定ステップ]
を選択します。[ソルバーの詳細] を展開します。マルチタスク モードを指定するには、[各離散レートを個別のタスクとして扱う] を選択します。シングルタスク モードを指定するには、[各離散レートを個別のタスクとして扱う] をオフにします。
[各離散レートを個別のタスクとして扱う] を選択した場合でも、以下の場合はシングルタスク モードが使用されます。
モデルにサンプル時間が 1 つだけ含まれている
モデルに連続サンプル時間と離散サンプル時間が含まれており、固定ステップ サイズが離散サンプル時間に等しい
シングル レートで動作する標準的なモデルの場合、Simulink によってシングルタスク モードが選択されます。
固定ステップのシングルタスク モード
固定ステップのシングルタスク モードでは、離散時間信号は、サンプル時間とサンプル時間の間が定義済みのままになっていて、時間と周波数の用語で説明されているプロトタイプと異なっています。たとえば、離散時間の三角波を表現すると次のようになります。
t = 3.112
秒の時点でのこの信号値は、t = 3
秒の時点での信号値と同じになります。固定ステップのシングルタスク モードでは、信号のサンプル時間は、信号が定義されている時点ではなく、信号が値を変化させることができる時点です。サンプル時間とサンプル時間の間では、信号は前のサンプル時間の値を取ります。
その結果、Simulink で固定ステップのシングルタスク モードにおける、レートが異なる 2 つの信号の加算などのクロスレート処理が許可されます。この詳細については、クロスレート処理で説明しています。
離散時間シミュレーションに関するその他の設定
Simulink で利用可能なその他のソルバー オプションが離散時間信号に与える影響を把握しておくと便利です。特に、次の設定における離散時間信号のプロパティに注意してください。
タイプ:
固定ステップ
。マルチタスク モードを有効にするには、[各離散レートを個別のタスクとして扱う] を選択します。固定ステップのマルチタスク ソルバーが選択されている場合、Simulink の離散信号はサンプル時間とサンプル時間の間で定義されていません。たとえば、異なるサンプルレートを持つ信号が追加される場合など、信号の未定義領域を参照しようとする操作が行われると、Simulink によってエラーが生成されます。
タイプ:
可変ステップ
(Simulink の既定のソルバー)[可変ステップ]
ソルバーが選択されている場合、離散時間シミュレーション用の推奨設定で説明した固定ステップのシングルタスクの場合と同様に、サンプル時間とサンプル時間の間の離散時間信号は定義済みのままです。[可変ステップ]
ソルバーが選択されている場合、クロスレート処理を Simulink で行うことができます。
複数のレートが含まれる標準的なモデルの場合、Simulink によってマルチタスク モードが選択されます。
クロスレート処理
固定ステップのマルチタスク ソルバーが選択されている場合、Simulink の離散信号はサンプル時間とサンプル時間の間で未定義です。そのため、クロスレート処理 (サンプルレートが異なる 2 つの信号の加算など) を実行するには、2 つの信号を共通のサンプルレートに変換しなければなりません。Signal Operations ライブラリと Multirate Filters ライブラリのいくつかのブロックがこのタスクを実行できます。詳細は、Convert Sample and Frame Rates in Simulink Using Rate Conversion Blocksを参照してください。診断設定に応じてレートが暗黙的に変更されます。ただし、これは推奨されません。マルチタスク データ転送 (Simulink)、シングル タスク データ転送 (Simulink)を参照してください。離散モードのクロスレート処理に対して明示的なレート変換を要求することにより、Simulink ではサンプル レートの変換に関する問題を設計プロセスの早い段階で特定することができます。
[可変ステップ]
ソルバーまたは固定ステップのシングルタスク ソルバーが選択されている場合、離散時間信号はサンプル時間とサンプル時間の間で定義済みのままです。そのため、信号独自のレートおよび位相とは異なるレートや位相を持つ信号をサンプリングする場合であっても、意味のある値を測定することになります。
MATLAB® コマンド ラインで、
ex_sum_tut1
と入力します。Cross-Rate Sum Example モデルが開きます。このモデルは、サンプル周期が異なる 2 つの信号を加算します。
上の Signal From Workspace ブロックをダブルクリックします。[ブロック パラメーター: Signal From Workspace] ダイアログ ボックスが開きます。
[Sample time] パラメーターを
1
に設定します。これにより、サンプル時間 1、2、3、... で高速信号 (Ts=1) が作成されます。
下の Signal From Workspace ブロックをダブルクリックします。
[Sample time] パラメーターを
2
に設定します。これにより、サンプル時間 1、3、5、... で低速信号 (Ts=2) が作成されます。
[デバッグ] タブの [情報のオーバーレイ]、[色] を選択します。
[色] を選択すると、実行中のさまざまなサンプリング レートを確認できます。サンプル時間の色分けの詳細については、サンプル時間情報の表示 (Simulink)を参照してください。
モデルを実行します。
メモ:
クロスレート処理で DSP Simulink モデル テンプレートを使用すると、固定ステップのシングルタスク ソルバーが選択されている場合でも、エラーが生成されます。これは、[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断] セクションの [サンプル時間] ペインで、[シングルタスク データ転送] が
[エラー]
に設定されているという事実によるものです。MATLAB コマンド ラインで「
dsp_examples_yout
」と入力します。次の出力が表示されます。
dsp_examples_yout = 1 1 2 2 1 3 3 2 5 4 2 6 5 3 8 6 3 9 7 4 11 8 4 12 9 5 14 10 5 15 0 6 6
行列の最初の列が高速信号です (Ts=1)。行列の 2 列目が低速信号です (Ts=2)。3 列目は 2 つの信号の和です。予想どおり、低速信号は 2 秒ごとに 1 回変化します。これは、高速信号の半分の頻度です。それにもかかわらず、Simulink では、ブロックが実行されない時間インスタンスの間、低速信号の前の値が保持されるため、低速信号が常に定義されています。
一般に、[可変ステップ]
および固定ステップのシングルタスク モードの場合、サンプル時間とサンプル時間の間の離散信号の値を測定するとき、前のサンプル時間の信号の値が観測されています。