Complex to Magnitude-Angle
计算复信号的幅值和/或相位角
库:
Simulink /
Math Operations
描述
Complex to Magnitude-Angle 模块输出输入信号的幅值和/或相位角,具体取决于输出参数的设置。输出是与模块输入具有相同数据类型的实数值。输入可以是复信号数组,这种情况下,输出信号也是数组。幅值信号数组包含对应的复数输入元素的幅值。同样,角度输出包含输入元素的角度。
端口
输入
模块计算并输出幅值和/或相位角的复输入信号。
限制
仅当逼近方法设置为 CORDIC 时才支持定点数据类型。
数据类型: single | double
输出
输出信号,即输入信号的幅值和/或相位角。要选择输出,请设置输出参数。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
相位角弧度,以实数值标量、向量或矩阵形式返回。
依赖关系
要启用此端口,请将输出设置为幅值和角度或角度。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
参数
指定输出是输入信号的幅值和/或相位角(弧度)。
编程用法
参数:Output
|
| 类型:字符向量 |
值:'Magnitude and angle' | 'Magnitude' | 'Angle' |
默认值:'Magnitude and angle'
|
指定计算输出的逼近方法类型。
| 逼近方法 | 支持的数据类型 | 何时使用此方法 |
|---|---|---|
| 无(默认值) | 浮点 | 您想使用默认的泰勒级数算法。 |
| CORDIC | 浮点和定点 | 您需要快速的近似计算时。 |
模块使用以下数据类型传播规则。
| 复数输入的数据类型 | 逼近方法 | 幅值输出的数据类型 | 角度输出的数据类型 |
|---|---|---|---|
浮点 | 无或 CORDIC | 与输入相同 | 与输入相同 |
有符号、定点 | CORDIC |
其中:
|
其中:
|
无符号、定点 | CORDIC |
其中:
|
其中:
|
编程用法
模块参数:ApproximationMethod |
| 类型:字符向量 |
值:'None' | 'CORDIC' |
默认值:'None' |
CORDIC 算法执行的迭代次数,指定为正整数值标量。增加迭代次数可以得出更准确的结果,但会增加计算开销和延迟。
| 模块输入的数据类型 | 您可以指定的值 |
|---|---|
| 浮点 | 正整数。最大值是 52(对于双精度)或 23(对于单精度)。 |
| 定点 | 不超过幅值输入字长或相位角输入字长(二者中取较小值)的正整数。 |
依赖关系
要启用此参数,请将逼近方法设置为 CORDIC。
编程用法
模块参数:NumberOfIterations |
| 类型:字符向量 |
| 值:正整数,小于等于定点输入的字长 |
默认值:'11' |
选中此复选框可按增益因子的倒数 (1/CORDIC gain) 缩放模块的幅值。此值取决于您指定的迭代次数。随着迭代次数的增加,值将接近于 1.647。
此复选框默认处于选中状态,从而使得复数输出 X + iY 得到数值意义上更为精确的结果。但是,缩放输出增加了两个额外的乘法运算,一个针对 X,另一个针对 Y。
依赖关系
要启用此参数,请将逼近方法设置为 CORDIC。
编程用法
模块参数:ScaleReciprocalGainFactor |
| 类型:字符向量 |
值:'on' | 'off' |
默认值:'on' |
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
详细信息
CORDIC 是 Coordinate Rotation DIgital Computer(坐标旋转数字计算方法)的缩写。基于吉文斯旋转的 CORDIC 算法是最节省硬件资源的可用算法之一,因为它只需进行迭代移位相加运算(请参阅“参考资料”)。CORDIC 算法不需要显式乘数。使用 CORDIC,您可以计算各种函数,如正弦、余弦、反正弦、反余弦、反正切和向量幅值。您可以将此算法用于除法、平方根、双曲线和对数函数。
增加 CORDIC 迭代次数可以得出更准确的结果,但这样会增加计算开销和延迟。
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
该模块支持使用 HDL Coder™ 生成 HDL 代码。HDL Coder 提供影响 HDL 实现和综合逻辑的额外配置选项。
此模块具有多周期实现,这会在生成的代码中引入额外的延迟。要查看增加的延迟,请查看生成的模型或验证模型。请参阅Generated Model and Validation Model (HDL Coder)。
通用
| HDL 属性 | 描述 |
|---|---|
| ConstMultiplierOptimization | 指定常量乘法器的优化方法。您可以将此属性设置为 csd、fcsd、auto 或 none。默认设置为无。有关详细信息,请参阅ConstMultiplierOptimization (HDL Coder)。 |
| ConstrainedOutputPipeline | 指定要重新分配给设计输出的寄存器数量。使用受限输出流水线在特定位置放置寄存器并优化设计速度。分布式流水线不会重新分配使用受限输出流水线放置的寄存器。默认值为 |
| InputPipeline | 指定要在生成的代码中插入的输入流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
| OutputPipeline | 指定要在生成的代码中插入的输出流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
| LatencyStrategy | 指定设计中模块的延迟策略。您可以将 LatencyStrategy 设置为 Max、Min、Custom、Custom(PerIteration) 或 Zero。对于定点数据类型,模块级设置确定延迟策略值。默认设置为 要为定点数据类型启用此属性,请将输出模块参数设置为幅值和角度、幅值或角度,并将逼近方法模块参数设置为 CORDIC。 |
| CustomLatency | 当您将 LatencyStrategy 属性设置为 Custom 时,请使用此属性指定在 |
| IterationsPerPipeline | 当您将 LatencyStrategy 属性设置为 Custom(PerIterations) 时,请使用此属性来指定每个流水线阶段的迭代次数。有关详细信息,请参阅IterationsPerPipeline (HDL Coder)。 |
| SynthesisAttributes | 指定模型中模块和模块输出信号的综合属性。生成的 HDL 代码包含这些属性。有关详细信息,请参阅SynthesisAttributes (HDL Coder)。 |
当您将逼近方法模块参数设置为 CORDIC 时,该模块会引入额外的延迟周期。该模块根据输出和迭代次数模块参数以及 LatencyStrategy HDL 模块属性来计算延迟值。下表显示该模块如何计算延迟值:
| LatencyStrategy 设置 | 延迟值 (L) |
|---|---|
| Max | 延迟值取决于输出参数:
|
| Min | 该模块使用方程 L = 3 + |
| Custom | 使用 CustomLatency 属性指定 |
| Custom(PerIteration) | 使用 IterationsPerPipeline 属性指定每次迭代的流水线阶段数。该模块使用方程 L = 3 + |
| Zero | 该模块的延迟值为 0。 |
您可以使用以下 HDL Coder 优化来优化速度、面积和 I/O。
面积优化
| 优化 | 描述 |
|---|---|
| Resource Sharing (HDL Coder) | 资源复用是一种面积优化,其中 HDL Coder 确定多个在功能上等效的资源,并用单个资源替换它们。 |
| Streaming (HDL Coder) | 流式处理是一种面积优化,其中 HDL Coder 将向量数据路径变换为标量数据路径或多个较小的向量数据路径。 |
速度优化
| 优化 | 描述 |
|---|---|
| Specify Distributed Pipelining Settings (HDL Coder) | 分布式流水线或寄存器重定时是一种速度优化,它可以移动设计中的现有延迟,以在缩减关键路径的同时保留功能性行为。 |
| Clock-Rate Pipelining (HDL Coder) | 时钟频率流水线是一个优化框架,它允许其他速度优化和面积优化在时钟频率下引入延迟。 |
| Specify Adaptive Pipelining Settings (HDL Coder) | 自适应流水线优化创建带寄存器的模块模式或组合,通过在设计中的模块中插入流水线寄存器,可以提高可实现的时钟频率并减少 FPGA 板上的面积使用量。 |
| 关键路径估计 (HDL Coder) | 要快速确定设计中最可能的关键路径,请使用关键路径估计。关键路径估计加速寻找关键路径的迭代过程。要了解在关键路径估计中表征的模块,请参阅Characterized Blocks (HDL Coder)。 |
版本历史记录
在 R2006a 之前推出使用 SynthesisAttributes HDL 模块属性指定模块及其输出信号的综合属性。HDL Coder 在生成的 HDL 代码中包含这些属性。
要按因子 (1/CORDIC gain) 缩放 Complex to Magnitude-Angle 模块的幅值,请选择按增益因子的倒数缩放输出参数。此值取决于您指定的迭代次数。随着迭代次数的增加,值将接近于 1.647。
Complex to Magnitude-Angle 模块现在支持具有定点输入数据类型的 HDL 代码生成。要生成 HDL 代码,请将输出参数设置为幅值和角度、幅值或角度,将逼近方法参数设置为 CORDIC,并启用按增益因子的倒数缩放输出参数。
Complex to Magnitude-Angle 模块现在支持 CORDIC 逼近方法。此方法允许在输入 Port_1 处使用定点输入。要选择 CORDIC 方法,请将新逼近方法参数设置为 CORDIC。
选择 CORDIC 方法时,模块图标会更新。新参数“迭代次数”允许您定义 CORDIC 算法的迭代次数。
![]()
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)