ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Magnitude-Angle to Complex

振幅信号と位相角信号の両方またはどちらか一方を複素信号に変換

  • ライブラリ:
  • Simulink / Math Operations

    HDL Coder / HDL Floating Point Operations

説明

サポートされている演算

Magnitude-Angle to Complex ブロックは、振幅入力と位相角入力を複素数出力に変換します。角度の入力は、rad 単位でなければなりません。

2 つのブロック入力があるときには、ブロックは入力次元の次の組み合わせをサポートします。

  • 同じ次元の 2 つの入力

  • 一方のスカラー入力ともう一方の n 次元配列

このブロック入力が配列である場合、出力は複素信号の配列になります。大きさ入力のベクトルの要素は、対応する複素数出力要素の大きさにマップされます。同様に、角度の入力ベクトルの要素は、対応する複素数の出力要素の角度にマップされます。ある入力がスカラーの場合、その入力はすべての複素数出力信号の対応する成分 (大きさまたは角度) にマップされます。

CORDIC 近似に対する範囲外入力の影響

CORDIC 近似法 (詳細を参照) を使用する場合、位相角のブロック入力には次の制限があります。

  • 符号付き固定小数点型の場合、入力角度は範囲 [–2π, 2π) rad の範囲内に収まらなければなりません。

  • 符号なし固定小数点型の場合、入力角度は範囲 [0, 2π) rad の範囲内に収まらなければなりません。

次の表は、範囲外入力に対する処理をまとめています。

ブロックの使用法範囲外入力の影響
シミュレーションエラーが表示されます。
生成コード未定義の動作が発生します。
アクセラレータ モード

CORDIC 近似を使用する場合は、Magnitude-Angle to Complex ブロックに対して必ず範囲内入力を使用します。生成コードまたはアクセラレータ モードで未定義の動作に依存するのを防ぎます。

端子

入力

すべて展開する

振幅。実数値のスカラー、ベクトル、または行列として指定します。

依存関係

  • この端子を有効にするには、[入力][振幅と角度] に設定します。

制限

  • 片方の入力が浮動小数点データ型をもつ場合、もう一方の入力も同じデータ型を使用しなければなりません。たとえば、両方の信号は double または single でなければなりません。

  • 固定小数点データ型は、[近似法][CORDIC] に設定したときにのみサポートされます。片方の入力が固定小数点データ型をもつ場合、もう一方の入力も同じ固定小数点データ型をもたなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

ラジアン位相角。実数値のスカラー、ベクトル、または行列として指定します。CORDIC 近似を計算するには、入力角は次の範囲になければなりません。

  • [–2π, 2π) rad (符号付き固定小数点型の場合)

  • [0, 2π) rad (符号なし固定小数点型の場合)

詳細については、CORDIC 近似に対する範囲外入力の影響を参照してください。

依存関係

  • この端子を有効にするには、[入力][振幅と角度] に設定します。

制限

  • 片方の入力が浮動小数点データ型をもつ場合、もう一方の入力も同じデータ型を使用しなければなりません。たとえば、両方の信号は double または single でなければなりません。

  • 固定小数点データ型は、[近似法][CORDIC] に設定したときにのみサポートされます。片方の入力が固定小数点データ型をもつ場合、もう一方の入力も固定小数点データ型をもたなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

振幅、またはラジアン位相角。実数値のスカラー、ベクトル、または行列として指定します。

  • [入力][振幅] に設定する場合、振幅を入力端子に指定し、角度をダイアログ ボックスで指定します。

  • [入力][角度] に設定する場合、角度を入力端子に指定し、振幅をダイアログ ボックスで指定します。

依存関係

この端子を有効にするには、[入力][振幅] または [角度] に設定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

出力

すべて展開する

複素信号。指定する振幅および位相角から形成されます。

このブロック入力が配列である場合、出力は複素信号の配列になります。大きさ入力のベクトルの要素は、対応する複素数出力要素の大きさにマップされます。同様に、角度の入力ベクトルの要素は、対応する複素数の出力要素の角度にマップされます。ある入力がスカラーの場合、その入力はすべての複素数出力信号の対応する成分 (大きさまたは角度) にマップされます。

データ型: single | double | fixed point

パラメーター

すべて展開する

入力の種類 大きさ入力、角度の入力、またはこれらの両方。

プログラムでの使用

ブロック パラメーター: Input
型: 文字ベクトル
値: 'Magnitude' | 'Angle' | 'Magnitude and angle'
既定の設定: 'Magnitude and angle'

rad 単位の出力信号の定数位相角CORDIC 近似を計算するには、入力角は次の範囲になければなりません。

  • [–2π, 2π) rad (符号付き固定小数点型の場合)

  • [0, 2π) rad (符号なし固定小数点型の場合)

詳細については、CORDIC 近似に対する範囲外入力の影響を参照してください。

依存関係

このパラメーターを有効にするには、[入力][振幅] に設定します。

プログラムでの使用

ブロック パラメーター: ConstantPart
型: 文字ベクトル
値: 定数スカラー
既定の設定: '0'

出力信号の定数振幅。実数値のスカラー、ベクトル、または行列として指定します。

依存関係

このパラメーターを有効にするには、[入力][角度] に設定します。

プログラムでの使用

ブロック パラメーター: ConstantPart
型: 文字ベクトル
値: 定数スカラー
既定の設定: '0'

出力を計算するための近似のタイプを指定します。

近似法サポートされるデータ型このメソッドを使用できる場合
なし (既定の設定)

浮動小数点

既定のテイラー級数アルゴリズムを使用する必要がある場合。

CORDIC

浮動小数点と固定小数点

高速の近似計算が必要な場合。

CORDIC 近似を使用するときは、入力角度について以下のガイドラインに従ってください。

  • 符号付き固定小数点型の場合、入力角度は範囲 [–2π, 2π) rad の範囲内に収まらなければなりません。

  • 符号なし固定小数点型の場合、入力角度は範囲 [0, 2π) rad の範囲内に収まらなければなりません。

ブロックは次のデータ型伝播規則を使用します。

大きさ入力のデータ型近似法複素数出力のデータ型

浮動小数点

なし または CORDIC

入力と同じ

符号付き、固定小数点

CORDIC

fixdt(1, WL + 2, FL)

ここで、WLFL は大きさの語長と小数部の長さ

符号なし、固定小数点

CORDIC

fixdt(1, WL + 3, FL)

ここで、WLFL は大きさの語長と小数部の長さ

プログラムでの使用

ブロック パラメーター: ApproximationMethod
型: 文字ベクトル
値: 'None' | 'CORDIC'
既定の設定: 'None'

CORDIC アルゴリズムを実行する反復回数取りうる値の範囲は入力のデータ型によって異なります。

ブロック入力のデータ型指定できる値
浮動小数点正の整数
固定小数点大きさ入力の語長または位相角入力の語長を超えない正の整数、どちらか小さいほう

依存関係

このパラメーターを有効にするには、[近似法][CORDIC] に設定します。

プログラムでの使用

ブロック パラメーター: NumberOfIterations
型: 文字ベクトル
値: 固定小数点入力の語長以下の正の整数
既定の設定: '11'

このチェック ボックスを選択すると、複素数出力の実数部および虚数部を (1/CORDIC gain) 倍にスケーリングできます。この値は、指定する反復の数によって異なります。反復の数が増えると、値は 1.647 に近づきます。

このチェック ボックスは既定で選択されており、複素数出力の数値的により正確な結果である X + iY になります。ただし、出力をスケーリングすることによって、2 つの余分な乗算、X 用と Y 用が追加されます。

依存関係

このパラメーターを有効にするには、[近似法][CORDIC] に設定します。

プログラムでの使用

ブロック パラメーター: ScaleReciprocalGainFactor
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

サンプル時間を -1 以外の値で指定します。詳細については、サンプル時間の指定を参照してください。

依存関係

このパラメーターは、明示的に -1 以外の値に設定されていない限り表示されません。詳細は、サンプル時間が推奨されないブロックを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: 文字ベクトル
値: スカラー
既定の設定: '-1'

ブロックの特性

データ型

double | single

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

詳細

すべて展開する

参照

[1] Volder, JE. “The CORDIC Trigonometric Computing Technique.” IRE Transactions on Electronic Computers EC-8 (1959); 330–334.

[2] Andraka, R. “A survey of CORDIC algorithm for FPGA based computers.” Proceedings of the 1998 ACM/SIGDA sixth international symposium on Field programmable gate arrays. Feb. 22–24 (1998): 191–200.

[3] Walther, J.S. “A Unified Algorithm for Elementary Functions.” Hewlett-Packard Company, Palo Alto. Spring Joint Computer Conference (1971): 379–386. (from the collection of the Computer History Museum). www.computer.org/csdl/proceedings/afips/1971/5077/00/50770379.pdf

[4] Schelin, Charles W. “Calculator Function Approximation.” The American Mathematical Monthly 90, no. 5 (1983): 317–325.

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入