使用Simulink“Shift Arithmetic”块抑制溢出警告

时间:2012-12-05 23:32:49

标签: matlab overflow simulink

我正在使用Simulink R2012a Shift Arithmetic块来计算x << 2,其中x是类型fixdt(1,16,15)的16位定点Q15数。

在这种特殊情况下,溢出不是错误。 (我希望值0,16384 = 0.5,-16384 = -0.5和-32768 = -1.0全部映射到值0。)

问题是我在命令控制台中发出溢出警告,因为发生了这种情况:

 Warning: Overflow occurred. This originated from 'foo/bar/baz/Shift Arithmetic'.

我想仅针对特定的一组块禁用溢出警告(这种移位行为是故意的),而不是一般的所有块或甚至所有Shift算术块。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

由于它是一个简单的块,解决方案可能是构建自己的块,不会触发警告。

编辑: 我试过'Matlab Function'

function y = fcn(u)
y = bitshift(u, 2, 8);

我得到的结果与输入255的2位移位块相同,并且输入uint8但没有警告。