主要内容

dsphdl.ComplexToMagnitudeAngle

大小和相位角的复杂信号

描述

dsphdl.ComplexToMagnitudeAngle系统对象的大小和相角™计算复杂的信号。它提供了hardware-friendly控制信号。系统对象使用管线式坐标旋转数字计算机(CORDIC)算法来实现一个HDL-optimized实现。

计算大小和相位角的复杂信号:

  1. 创建dsphdl.ComplexToMagnitudeAngle对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

magAngle= dsphdl.ComplexToMagnitudeAngle返回一个dsphdl.ComplexToMagnitudeAngle系统对象,magAngle的大小和相角,计算复杂的输入信号。

例子

magAngle= dsphdl.ComplexToMagnitudeAngle (名称,值)集的性质magAngle使用一个或多个名称-值对。在单引号附上每个属性的名字。

例子:magAngle = dsphdl.ComplexToMagnitudeAngle (“AngleFormat”、“弧度”)

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

要返回的输出值类型,指定为的大小和角度,“级”,或“角”。你可以选择的对象返回输入信号的大小,或输入信号的相角,或两者兼而有之。

格式的相角输出值对象,指定为:

  • “归一化”——定点格式规范化的角度在范围[1]。

  • “弧度”——定点值范围(π,−π)。

产出规模的逆CORDIC增益系数,指定为真正的。这个对象实现增益系数与CSD逻辑或一个乘数,根据ScalingMethod财产。

请注意

如果你的设计包括datapath公司的增益系数后,可以设置ScaleOutput,包括CORDIC之后获得的增益系数。计算增益系数,看到算法。映射对象替换第一个CORDIC迭代的输入值到角范围(0,π/ 4)。因此,最初的旋转不贡献获得连任。

的来源NumIterations财产CORDIC算法,指定为:

  • “汽车”——迭代的数量设置为一个小于输入单词长度。如果输入是迭代的数量是16。

  • “属性”——使用NumIterations财产。

CORDIC算法的细节,请参阅算法

对象执行的CORDIC的迭代的数量,指定为一个整数。迭代的数量必须小于或等于一个小于输入单词长度。

CORDIC算法的细节,请参阅算法

依赖关系

要启用这个特性,设置NumIterationsSource“属性”

当你设定这个属性“CSD”,对象实现CORDIC获得扩展使用shift-and-add架构乘法操作。这个实现不使用乘法器资源和关键路径的长度可能会增加在你的设计。当你设定这个属性“乘数”,对象实现CORDIC增益比例乘法器和增加了延迟对象的四个周期。

依赖关系

要启用这个特性,设置ScaleOutput财产真正的

使用

描述

例子

(玛格,,validOut)= magAngle (X,validIn)转换一个标量或矢量复杂的值X组件的大小和相位的角度。validInvalidOut逻辑标量,显示输入和输出信号的有效性,分别。

(玛格,validOut)= magAngle (X,validIn)只返回组件的大小X

要使用这个语法,集OutputValue“级”

例子:magAngle = dsphdl.ComplextoMagnitudeAngle (“OutputValue”、“级”);

(,validOut)= magAngle (X,validIn)只返回组件阶段角度X

要使用这个语法,集OutputValue“角”

例子:magAngle = dsphdl.ComplextoMagnitudeAngle (“OutputValue”、“角”);

输入参数

全部展开

输入信号,指定为一个标量,一个列向量代表样本,或一个行向量代表通道。使用向量输入数据吞吐量,同时增加使用更多的硬件资源。转换逻辑的对象实现平行向量的每个元素。最多可以包含64个元素的输入向量。

该软件支持万博1manbetx仿真的数据类型,但不是HDL代码生成。

数据类型:fi|int8|int16|int32|uint8|uint16|uint32||
复数的支持:万博1manbetx是的

控制信号表明如果输入数据是有效的。当validIn1(真正的),对象捕捉的值dataIn论点。当validIn0(),忽略了值的对象dataIn论点。

数据类型:逻辑

输出参数

全部展开

级的计算复杂的输入信号,作为一个标量,返回一个列向量代表样本,或一个行向量代表通道。这个论点的尺寸和数据类型匹配的尺寸dataIn论点。

依赖关系

要启用这个论点,设置OutputValue财产的大小和角度“级”

角的计算复杂的输入信号,作为一个标量,返回一个列向量代表样本,或一个行向量代表通道。这个论点的尺寸和数据类型匹配的尺寸dataIn论点。这个值取决于的格式AngleFormat财产。

依赖关系

要启用这个论点,设置OutputValue财产的大小和角度“角”

控制信号,表明如果输出数据是有效的。当validOut1(真正的),该对象返回有效的数据玛格和/或参数。当validOut0(),值玛格和/或参数是无效的。

数据类型:逻辑

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

使用dsphdl.ComplextoMagnitudeAngle对象计算大小和相位角的复杂信号。对象使用CORDIC算法高效的硬件实现。

选择单词长度和创建随机复杂的输入信号。然后,将输入信号转换为定点。

= 4;b = 4;inputWL = 16;inputFL = 12;numSamples = 10;reData = ((b)。*兰德(numSamples 1) + a);imData = ((b)。*兰德(numSamples 1) + a);dataIn = (fi (reData + imData * 1, 1, inputWL, inputFL));图绘制(dataIn)标题(“随意”复杂的输入数据)包含(“真实”的)ylabel (“虚”)

编写一个函数,创建和调用系统对象™。你可以从这个函数生成高密度脂蛋白。

函数(杂志、角、validOut) = Complex2MagAngle(阴、validIn)% Complex2MagAngle%将一个复杂的数据样本大小和角度数据。%阴是定点复数。% validIn是一个逻辑标量值。%从这个函数可以生成HDL代码。持续的cma;如果isempty (cma) cma = dsphdl.ComplexToMagnitudeAngle (“AngleFormat”,“弧度”);结束(杂志、角、validOut) = cma(阴,validIn);结束

CORDIC的迭代的数量决定了对象的延迟计算每个输入样本的回答。延迟NumIterations + 4。在这个例子中,NumIterationsSource设置为默认的,“汽车”,所以对象使用inputWL-1迭代。延迟inputWL + 3

延迟= inputWL + 3;杂志= 0 (1,numSamples +延迟);ang = 0 (1, numSamples +延迟);validOut = false (1, numSamples +延迟);

调用该函数将每个样本。适用所有输入样本后,继续与无效输入调用函数,冲剩下的输出样本。

2 = 1:1:numSamples (mag (ii),和(2),validOut] = Complex2MagAngle (dataIn (ii),真的);结束2 = (numSamples + 1): 1: (numSamples +延迟)[杂志(ii),和(2),validOut (ii)] = Complex2MagAngle (fi (0 + 0 * 1, 1, inputWL, inputFL),假);结束%去除无效的输出值杂志= mag (validOut = = 1);ang =盎(validOut = = 1);杂志图极地(ang,“——r”)%红色是系统的输出对象标题(“来自dsphdl.ComplexToMagnitudeAngle输出”)magD = abs (dataIn);angD =角(dataIn);图极地(angD magD,“——b”)%蓝色是abs和角函数的输出标题(的abs和角函数的输出)

算法

全部展开

扩展功能

版本历史

介绍了R2014b

全部展开