ザイリンクス Sine Wave ブロックは、シミュレーション時間を時間ソースとして使用して、サイン波を生成します。
ザイリンクス Sine Wave ブロックは、正弦曲線波形を出力します。ブロックからの出力は、サイン波、コサイン波、またはその両方です。Sine Wave ブロックを ザイリンクス FPGA または SoC にインプリメントすると、ターゲット デバイス用にブロック パラメーターが最適化されます。
Sine Wave ブロックの出力は、次の式で決定されます。
y = sin (2 π (k+o)/p)
説明
p: サイン波周期ごとクロック サイクルごとのタイム サンプル数
k: 繰り返し整数値 (0 ~ p-1)
o: 信号のオフセット (位相シフト)
このブロックでは、Model Composer は、最初のタイム ステップで k を 0 に設定し、上記の式を使用してブロック出力を算出します。次のタイム ステップでは、Simulink が k を増分し、ブロックの出力を再計算します。k が p に達すると、Simulink は、ブロック出力を算出する前に k を 0 にリセットします。このプロセスは、シミュレーションの終了まで継続されます。
Sine Wave ブロックの出力の特性は、次の式で決定されます。
周期ごとのサンプル数 = 2π / (周波数 * サンプル時間)
オフセット サンプル数 = 位相オフセット * 周期ごとのサンプル数 / 2π
Sine Wave ブロックは、単純なサイン波およびコサイン波を生成するのに理想的です。サイン波のインプリメンテーションで位相ジェネレーター、複数チャネルのサポート、AXI4 ポートなどの複雑な機能を使用する場合は、Sine Wave ブロックではなくザイリンクス DDS Compiler 6.0 ブロックを使用してください。
Vivado デザイン フローでは、Sine Wave ブロックはコード生成時に LogicCore IP DDS Compiler v6.0 として推論されます。
ブロック パラメーター
Simulink® モデルでブロックのアイコンをダブルクリックすると、[Block Parameters] ダイアログ ボックスが開きます。
このブロック特定のパラメーターには、次のものがあります。
- System Parameters
-
- Select the input format
- 周波数および位相オフセット入力を周波数 (Hz) (Frequency) または角速度 (Radians) のどちらで入力するかを指定します。
- Frequency
- 周波数を Hz またはラジアンで指定します。デフォルト値は 1 です。
- Phase Offset
- 位相シフトを Hz またはラジアンで指定します。デフォルト値は 0 です。
- Output Selection
-
- Sine_and_Cosine
- ブロックにサインとコサインの両方の出力ポートを配置します。
- Sine
- ブロックにサイン出力ポートを配置します。
- Cosine
- ブロックにコサイン出力ポートを配置します。
- Spurious Free Dynamic Range (SFDR)
- Sine Wave ブロックによって生成される出力の精度を指定します。これにより、出力幅および内部バス幅が設定され、さまざまなインプリメンテーションが制御されます。
- Explicit Sample Period
- その下の Sample Period で明示的に指定したサンプル時間を使用します。オフにすると、Model Composer 基本周期がブロック サンプル タイムとして使用されます。
- Sample Period
- Explicit Sample Period をオンにした場合に、ブロックのサンプル時間を指定します。
例
次に、Sine Wave ブロックを使用して正弦曲線信号を生成する例を示します。
(1/1e6) のサンプル周期または 1 MHz で動作するシステムで、位相オフセットが π/2 で 20 kHz の正弦波を生成するには、次の仕様を Sine Wave ブロックで使用します。
これらの設定は、次のサイン波を生成します。
サイン波の波長 = Simulink サンプル周期/周波数 => 1 MHz/20 kHz = 0.5 * 10-4
サイン波のスペクトラム ビューは次のとおりです。
さらに、次のようになります。
各周期のサンプルの数 = (2π/(1/1e6 * 20e3))
= 50 (1 サイクルにおけるサンプルの合計数)
オフセット サンプル数 = (π/2) * (50/2π) = 50/4