このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Sine Wave
連続正弦波または離散正弦波の生成

ライブラリ:
DSP System Toolbox /
Sources
DSP System Toolbox HDL Support /
Sources
説明
Sine Wave ブロックは実数または複素数のマルチチャネルの正弦波信号を生成します。各出力チャネルには独立した振幅と周波数および位相があります。ブロックは、浮動小数点データ型および符号付き固定小数点データ型をサポートします。
ブロックは、[Output complexity] パラメーターを [Real]
に設定すると、実数の正弦波信号を生成します。実数の正弦波出力は次のようなタイプの式で定義されます
ここで、A は [Amplitude] パラメーター、f (Hz 単位) は [Frequency] パラメーター、ϕ (ラジアン単位) は [Phase offset] パラメーターでそれぞれ指定します。
ブロックは、[Output complexity] パラメーターを [Complex]
に設定すると、複素指数信号を生成します。この複素指数信号は次のようなタイプの式で定義されます
マルチチャネル出力の生成
実数と複素数の両方の正弦波では、[Amplitude]、[Frequency] および [Phase offset] の各パラメーター値 (A、f および ϕ) はスカラーまたは長さ N のベクトルにすることができます。ここで、N は出力に望ましいチャネル数です。これらのパラメーターの少なくとも 1 つを長さ N のベクトルとして指定すると、他のパラメーターで指定されたスカラー値が各チャネルに適用されます。
たとえば、以下のような実数正弦波を含む 3 チャネルの出力を生成するには、ブロック パラメーターを次のように設定します。
Output complexity =
Real
Amplitude =
[1 2 3]
Frequency =
[1000 500 250]
Phase offset =
[0 0 pi/2]
例
端子
出力
Port_1 — 正弦波信号
スカラー | ベクトル | 行列
正弦波信号をスカラーまたはベクトルとして出力します。出力の実数/複素数の詳細については、説明を参照してください。マルチチャネル サポートの詳細については、マルチチャネル出力の生成を参照してください。
ヒント
固定小数点データ型を出力するには、[Sample mode] を [Discrete]
、[Computation method] を [Table lookup]
に設定しなければなりません。
データ型: single
| double
| fixed point
複素数のサポート: あり
パラメーター
Main
Amplitude — 正弦波の振幅
1
(既定値) | スカラー | ベクトル
N 出力チャネルそれぞれに正弦波の振幅を含む長さ N のベクトル、またはすべての N チャネルに適用するスカラーです。ベクトルの長さは [Frequency] パラメーターと [Phase offset] パラメーターで指定した長さと同じでなければなりません。
ヒント
このパラメーターは、[Computation method] が [Trigonometric fcn]
または [Differential]
に設定されている場合にのみ、調整可能 (Simulink)です。
調整可能: Yes
Frequency (Hz) — 各正弦波の周波数
100
(既定値) | スカラー | ベクトル
N 出力チャネルそれぞれに正弦波の周波数 (Hz 単位) を含む長さ N のベクトル、またはすべての N チャネルに適用するスカラーです。ベクトルの長さは [Amplitude] パラメーターと [Phase offset] パラメーターで指定した長さと同じでなければなりません。正、ゼロまたは負の周波数を指定できます。
ヒント
このパラメーターは、以下のいずれかを設定する場合、調整可能 (Simulink)です。
[Sample mode] を
[Continuous]
。[Sample mode] を
[Discrete]
、[Computation method] を[Trigonometric fcn]
。
調整可能: Yes
Phase offset (rad) — Phase offset
0
(既定値) | スカラー | ベクトル
N 出力チャネルそれぞれに正弦波の位相オフセット (ラジアン単位) を含む長さ N のベクトル、またはすべての N チャネルに適用するスカラーです。ベクトルの長さは [Amplitude] パラメーターと [Frequency] パラメーターで指定した長さと同じでなければなりません。
ヒント
このパラメーターは、以下のいずれかを設定する場合、調整可能 (Simulink)です。
[Sample mode] を
[Continuous]
。[Sample mode] を
[Discrete]
、[Computation method] を[Trigonometric fcn]
。
調整可能: Yes
Sample mode — 連続または離散サンプリング モード
Discrete
(既定値) | Continuous
サンプリング モードを [Continuous]
または [Discrete]
として指定します。
Continuous
連続モードでは、i 番目のチャネルの正弦波 yi が連続関数として計算されます。
また、ブロックの出力は連続になります。このモードでは、ブロックは [Sample time] が
0
に設定された Simulink® Sine Wave ブロックと同じように動作します。このモードでは精度が高くなりますが、各シミュレーション ステップで三角関数評価が必要になり、計算量が増大します。また、この手法では絶対シミュレーション時間が追跡されるため、時間値が上限に達したときに、最終的には不連続点が発生してしまいます。多くの DSP System Toolbox™ ブロックは連続時間の入力を受け入れないことにも注意してください。
Discrete
離散モードでは、三角関数の直接評価、テーブル ルックアップまたは微分法によって、ブロックは離散時間出力を生成することができます。これらの計算方法の詳細については、アルゴリズムを参照してください。
Output complexity — 実数または複素数波形
Real
(既定値) | Complex
生成する波形のタイプ。[Real]
は実数の正弦波を指定し、[Complex]
は複素指数を指定します。
Computation method — 離散時間正弦波の計算方法
Trigonometric fcn
(既定値) | Table lookup
| 微分
離散時間正弦波が生成される方法。次のようになります。[Trigonometric fcn]
、[Table lookup]
または [Differential]
。使用可能な各オプションの詳細については、アルゴリズムを参照してください。
依存関係
このパラメーターは、[Sample mode] を [Discrete]
に設定した場合にのみ表示されます。
メモ
固定小数点正弦波を生成するには、[Computation method] を [Table lookup]
に設定しなければなりません。
Optimize table for — 速度またはメモリの最適化
Speed
(既定値) | メモリ
[Speed]
または [Memory]
に対する正弦値テーブルを最適化します。速度で最適化すると、テーブルには k 要素が含まれ、メモリで最適化すると、テーブルには k/4 要素が含まれます。ここで、k は正弦波の 1 完全周期での入力サンプル数です。
依存関係
このパラメーターは、[Computation method]
パラメーターを [Table lookup] に設定した場合にのみ表示されます。
Sample time — サンプル周期
1/1000
(既定値) | スカラー
ゼロより大きい有限のスカラーとして、正弦波がサンプリングされる周期 Ts。ブロックの出力フレーム周期は MTs で、M は [Samples per frame] パラメーターで指定します。
依存関係
このパラメーターを有効にするには、[Sample mode] を [Discrete]
に設定します。
Samples per frame — フレームあたりのサンプル数
1
(既定値) | 正の整数
出力フレーム M にバッファリングする、各正弦波からの連続するサンプル数。正のスカラー整数として指定します。このパラメーターは調整できません。
ブロック出力はフレーム周期 MTs をもつ M 行 N 列の行列となります。Ts は [Sample time] パラメーターで指定します。
依存関係
このパラメーターを有効にするには、[Sample mode] を [Discrete]
に設定します。
Resetting states when re-enabled — Enabled Subsystem 内での状態の動作
Restart at time zero
(既定値) | Catch up to simulation time
このパラメーターは、サブシステムが再度イネーブルになるときの Sine Wave ブロックの動作を決定します。ブロックは、自身を開始状態にリセットする ([Restart at time zero]
) か、または現在のシミュレーション時間に基づいて正弦波の生成を再開 ([Catch up to simulation time]
) することができます。
依存関係
このパラメーターは、Sine Wave ブロックが Enabled Subsystem 内にあり、Enable (Simulink) ブロックの [States when enabling] パラメーターが [reset]
に設定されている場合にのみ適用されます。
Data Types
Output data type — 出力データ型
double
(既定値) | single
| fixdt(1,16)
| fixdt(1,16,0)
| <data type expression>
| Inherit: Inherit via back propagation
[Output data type] のデータ型プロパティを指定する方法を選択します。以下の選択肢があります。
継承
— データ型の継承に関するルールを指定できます。例:[Inherit: Inherit via back propagation]
組み込み
— 組み込みデータ型を指定できます。例:[double]
固定小数点
— データ型の固定小数点の属性を指定できます。式
— 有効なデータ型として評価する式を指定できます。例:fixdt(1,16)
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
アルゴリズム
[Sample mode] パラメーターで [Discrete]
を選択すると、その下にある [Computation method] パラメーターで、離散正弦波を生成するための次の 3 つのオプションが提供されます。[Trigonometric fcn]
、[Table lookup]
、[Differential]
。
三角関数
三角関数法は、以下の連続関数をサンプリングすることによって i 番目のチャネル yi にある正弦波を計算します。
周期は Ts を使用します。Ts は [Sample time] パラメーターで指定します。この演算モードには、[Continuous]
サンプル モードと同じ利点と欠点があります。
各サンプル時間で、ブロックは正弦波の "最初のサイクル内" の適切な時間値で正弦波関数を評価します。三角評価を各正弦波の最初のサイクルに制限することにより、ブロックは非常に大きな数値の正弦波を計算するときに生じる不正確さを回避し、拡張演算中に不連続が発生する可能性を除去します (絶対時間変数がオーバーフローする可能性があるとき)。したがって、テーブル ルックアップ法に必要なメモリを回避しますが、より多くの浮動小数点演算の負荷がかかります。
テーブル ルックアップ
テーブル ルックアップ法はシミュレーションの開始時に各出力正弦波の "一意の" サンプルを事前計算し、必要に応じてサンプルをメモリから呼び出します。有限長のテーブルはすべての出力シーケンスが繰り返されるときにのみ作成できるため、この手法では出力の各正弦波の周期をサンプル周期で等分割できる必要があります。すなわち、1/(fiTs) = ki は各チャネル i = 1, 2, ..., N について整数値でなければなりません。
[Optimize table for] パラメーターを [Speed]
に設定すると、各チャネルに作成したテーブルには ki 要素が含まれます。[Optimize table for] パラメーターを [Memory]
に設定すると、各チャネルに作成したテーブルには ki/4 要素が含まれます。
長い出力シーケンスの場合、テーブル ルックアップ法では、必要となる浮動小数点演算は他のどの手法よりもはるかに少なくなりますが、特に高いサンプルレート (長いテーブル) の場合に非常に大量のメモリが要求されます。この手法は DSP ハードウェアのコードのエミュレートまたは生成を目的としたモデルに推奨されるため、実行速度を最適化しなければなりません。
メモ
このブロックのルックアップ テーブルは倍精度浮動小数点値から作成されます。したがって、[Table lookup]
計算モードを使用する場合、出力で得られる精度の最大値は 53 ビットです。[Output] または [User-defined] データ型の語長を 53 ビットより大きい値に設定しても出力の精度は上がりません。
ヒント
固定小数点正弦波を生成するには、[Table Lookup]
を選択しなければなりません。
微分
微分法はインクリメンタル アルゴリズムを使用します。このアルゴリズムは、次の恒等式を使用して、前のサンプル時間 (および事前計算された更新項目) で計算された出力値に基づいて出力サンプルを計算します。
したがって、i 番目のチャネルの正弦波の更新方程式 yi は行列形式で次のように記述することができます。
Ts は [Sample time] パラメーターで指定します。Ts は定数のため、右側の行列は定数となり、シミュレーションの開始時に 1 回計算できます。その後、各タイム ステップでの単純な行列の乗算によって、Aisin[2πfi(t+Ts)+ϕi] の値を sin(2πfit+ϕi) と cos(2πfit+ϕi) の値から計算します。
このモードでは計算負荷が減少しますが、累積量子化誤差により、時間の経過と共にドリフトする可能性があります。この手法は絶対時間値に依存しないので、(絶対時間変数がオーバーフローする可能性がある) 拡張演算中に不連続が発生する危険性はありません。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
Sine Wave ブロックは、連続のサンプル モードで作成された場合、絶対シミュレーション時間を参照します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための Verilog および VHDL のコードを生成します。
HDL Coder™ は、HDL の実装および合成ロジックに影響を与える、追加の構成オプションを提供します。
このブロックは 1 つの既定の HDL アーキテクチャをもっています。
HDL コードを生成する場合、次のような Sine Wave ブロックの設定を選択しなければなりません。
計算法:
Table lookup
サンプル モード:
Discrete
出力
出力端子のデータ型を
single
またはdouble
にすることはできません。
このブロックは、複素信号に対するコード生成をサポートします。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
入力が固定小数点の場合、勾配が 2 のべき乗でバイアスが 0 の符号付き整数または符号付き固定小数点でなければなりません。
バージョン履歴
R2006a より前に導入
参考
ブロック
- Chirp | Signal From Workspace | Signal Generator (Simulink) | Sine Wave (Simulink) | Enabled Subsystem (Simulink)
関数
オブジェクト
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)