このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Sine, Cosine
4 分の 1 波長対称を利用するルックアップ テーブル法を使用して固定小数点の正弦波または余弦波を実現
ライブラリ:
Simulink /
Lookup Tables
説明
Sine ブロックまたは Cosine ブロックは、4 分の 1 波長対称を使用するルックアップ テーブル法を使用して固定小数点で正弦波または余弦波を実現します。ブロックは、[出力式] パラメーターの選択に応じて、入力信号の次の関数を出力することができます。
sin(2πu)
cos(2πu)
exp(j2πu)
sin(2πu) and cos(2πu)
[ルックアップ テーブルのデータ点の数] パラメーターで、ルックアップ テーブルのデータ点の数を定義できます。ルックアップ テーブルに対するデータ点を (2^n)+1
(n は整数) に指定すると、ブロックの実現は最も効率的になります。
[出力語長] パラメーターを使用して、固定小数点出力データ型の語長を指定します。出力の小数部長は、出力の語長から 2 を差し引いた値です。
例
デジタル波形生成: 正弦波の近似
この例では、組み込みシステムと、任意の波形生成機器におけるデジタル波形合成アプリケーションで使用する、正弦波データ テーブルを設計および評価する方法について説明します。
端子
入力
u — 固定小数点正弦波または余弦波として実装する入力信号。
実数値信号
入力信号 u。実数値のスカラー、ベクトル、または行列として指定します。
ヒント
意味のあるブロック出力を得るには、ブロック入力値の範囲は [0, 1) となっていなければなりません。この範囲外の入力値は符号なしデータ型にキャストされ、オーバーフローはラップされます。こうした範囲外の入力で得られるブロック出力は、意味をなさない場合もあります。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
出力
sin(2*pi*u) — 固定小数点正弦波
実数値の固定小数点信号
固定小数点正弦波。ルックアップ テーブル法を使用して実装されます。
依存関係
この端子は、[出力式] が [sin(2*pi*u)]
または [sin(2*pi*u) and cos(2*pi*u)]
に設定されている場合に有効になります。
データ型: fixed point
cos(2*pi*u) — 固定小数点余弦波
実数値の固定小数点信号
固定小数点余弦波。ルックアップ テーブル法を使用して実装されます。
依存関係
この端子は、[出力式] が [cos(2*pi*u)]
または [sin(2*pi*u) and cos(2*pi*u)]
に設定されている場合に有効になります。
データ型: fixed point
exp(j*2*pi*u) — exp(j*2*pi*u)
複素数値の固定小数点信号
exp(j*2*pi*u)
。ルックアップ テーブル アプローチを使用して実装されます。
依存関係
この端子は、[出力式] が [exp(j*2*pi*u)]
に設定されている場合に有効になります。
データ型: fixed point
パラメーター
出力式 — 出力する信号を選択する
cos(2*pi*u)
| sin(2*pi*u)
| exp(j*2*pi*u)
| sin(2*pi*u) and cos(2*pi*u)
プログラムでの使用
ブロック パラメーター: Formula |
値: 'sin(2*pi*u)' | 'cos(2*pi*u)' | 'exp(j*2*pi*u)' | 'sin(2*pi*u) and cos(2*pi*u)' |
ルックアップ テーブルのデータ点の数 — ルックアップ テーブルから取得するデータ点の数を指定する
(2^5)+1
(既定値) | 2 以上の整数
ルックアップ テーブルに対するデータ点を (2^n)+1
(n は整数) に指定すると、ブロックの実装は最も効率的になります。[出力語長] パラメーターと互換性をもつようにするには、[ルックアップ テーブルのデータ点の数] を (2^(Output word length-2)+1) 以下の値にしなければなりません。
プログラムでの使用
ブロック パラメーター: NumDataPoints |
タイプ: スカラー |
値: integer >= 2 |
既定の設定: '(2^5)+1' |
出力語長 — 出力信号の固定小数点データ型の語長を指定する
16
(既定値) | 2 ~ 53 の整数
出力の小数部長は、出力の語長から 2 を差し引いた値です。[ルックアップ テーブルのデータ点の数] パラメーターと互換性をもつようにするには、(2^(Output word length - 2) +1) が [ルックアップ テーブルのデータ点の数] 以上でなければなりません。
メモ
ブロックは、倍精度浮動小数点値を使用してルックアップ テーブルを作成します。したがって、出力で達成できる最大精度は 53 ビットです。語長を 53 よりも大きい値に設定しても出力の精度は上がりません。
プログラムでの使用
ブロック パラメーター: OutputWordLength |
タイプ: スカラー |
値: integer from 2 to 53 |
既定の設定: '16' |
ルックアップ テーブルの内部ルール優先順位 — 中間計算の内部ルールを指定する
速度
(既定値) | 精度
より速く計算するには [速度]
を選択します。この場合、通常で最大 2 ビットの精度が失われる場合があります。
プログラムでの使用
ブロック パラメーター: InternalRulePriority |
値: 'Speed' | 'Precision' |
既定の設定: 'Speed' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
HDL コードは、Simulink ブロック パラメーターで指定した 1/4 波形のルックアップ テーブルを使用して Cosine ブロックと Sine ブロックを実装します。
HDL コードで除算演算子 (/
) が生成されないようにするには、[ルックアップ テーブルのデータ点の数] で (2^
を入力します。n
)+1n
は整数です。
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
Intel® MAX 10 デバイスを使用する場合、ルックアップ テーブルを RAM にマッピングするには、Quartus ツールでプロジェクトを作成するときに次の Tcl コマンドを追加します。
set_global_assignment -name INTERNAL_FLASH_UPDATE_MODE "SINGLE IMAGE WITH ERAM"
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2006a より前に導入
参考
Sine Wave | Trigonometric Function | Sine HDL Optimized, Cosine HDL Optimized (HDL Coder)
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)