3

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

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

问题是,对于发生这种情况的每个实例,我都会从命令控制台中得到溢出警告:

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

我只想禁用一组特定块的溢出警告(有意进行这种移位行为的块),而不是一般的所有块甚至所有 Shift Arithmetic 块。我怎样才能做到这一点?

4

1 回答 1

1

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

编辑:我尝试使用“Matlab 函数”

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

我的结果与输入 255 和类型 uint8 但没有警告的左 2 位移位块相同。

于 2012-12-06T09:23:10.817 回答