结肠表达式使用整型操作数

8视图(30天)
下面的代码不工作因为结肠操作数不是整数的值
stepSize =(π/ 512);
thRadDbl = (0: stepSize:(2 *π- stepSize));
问题:如何重写结肠表达式使用整型操作数?
2的评论
生活是美好的
生活是美好的 2021年2月4日
注意!
我收到一封电子邮件,别人删除答案!不知道/不跟踪那是什么。

登录置评。

接受的答案

安迪·巴特利特
安迪·巴特利特 2021年1月29日
1)
为嵌入式设计,如果可能的话可以考虑改变你的设计工作与革命的弧度。
1革命= 360度= 2 *π弧度
多个角度传感器是完全匹配的记录在革命的角度。例如,规格表可能会说,每个角度传感器脉冲/ 4096等于360度。这相当于2 ^ -12转每脉冲。等价于4096年脉冲= 1革命。对于这个传感器,大角度的数据类型
numerictype(0 12 12) % 0到略低于1革命
numerictype(12) 0, 16日% 0到16岁以下的革命
更新这个角将无损的,需要一个简单的增量或添加。相比之下,试图记录度的角度或弧度总是涉及精度损失代表360/4096或2 *π/ 4096,并将需要更多的数学和更大的类型。
计算正弦或余弦,它通常是有用的先做模。一个巨大的优势在革命与二进制定点扩展角模1革命是无损和繁琐。只是一个简单的屏蔽操作把所有分数位放任何整数位。相比之下,试图做模块360或2 *π需要更多的计算成本,并且可以引入精度损失。
2)
创建您的evenspaced向量n个元素,包括封闭的开区间[0,valueMax)。
2)
你给n = 1000的一个例子。
如果可能考虑改变2的幂像n = 1024 = 2 ^ 10。这通常会使数学更好,如果使用革命,那么数学将无损。
2 b)
你需要选择一个定点数据类型为整个向量。你无法为每个元素使用不同的数据类型的向量。首先确定,精度要求的水平。例如,如果角度将来自传感器上面的例子每革命4096蜱虫,然后一小部分的长度12是一个完美的选择。根据所需的FractionLength,其余的可以确定数据类型属性
2 c)
附加的脚本
evenAngleVecCalc.m
显示了如何设置输出数据类型和计算向量。
安迪
6个评论
生活是美好的
生活是美好的 2021年2月2日
编辑:生活是美好的 2021年2月2日
我在路上很好解决这个问题,我有两个选择,
  1. 有一个短的查找表(32位)——在那一刻,我有128大小的查找表
我面临的问题得到正弦函数的输出在Q12.20 > Q15.xx高于16位输出
2。有cordicsin函数
我有10个迭代cordicsin函数添加到延迟/计算复杂性
你能建议是好的选择在工作吗?
——谢谢

登录置评。

更多的答案(2)

图像分析
图像分析 2021年1月28日
不正确的。这段代码运行良好。
也许你需要考虑linspace虽然。或者如果你想使用它作为索引,然后绕着值。
1评论
生活是美好的
生活是美好的 2021年1月28日
编辑:生活是美好的 2021年1月28日
谢谢,请参见上面的细节

登录置评。


史蒂文的主
史蒂文的主 2021年1月28日
编辑:史蒂文的主 2021年1月28日
对我来说似乎工作好。
stepSize =(π/ 512);
thRadDbl = (0: stepSize:(2 *π- stepSize));
thRadDbl (1:5)
ans = 1×5
0 0.0061 0.0123 0.0184 0.0245
没有办法你就能够使用thRadDbl以来的指数作为一个向量数组在MATLAB一个元素一个元素0和π/ 512。
一件事你可以做的就是等待乘以 π 直到你构造向量。
一步= (1/512);
v =π*(0:步骤:(两步);
v (1:5)
ans = 1×5
0 0.0061 0.0123 0.0184 0.0245
或许 sinpi 和/或 cospi 将你感兴趣的功能。
7评论
图像分析
图像分析 2021年1月29日
电话技术支持。万博1manbetx

登录置评。