Simulink:从1字节十六进制中提取位

时间:2011-01-25 10:31:10

标签: matlab simulink

我对Simulink相对较新,我正在寻找从一个字节中提取1-3个特定位的可能性。 据我所知,常量的输入格式(bin,dec,hex)与以下内容无关!但是我怎么能说常量“1234”是十六进制而不是十进制?

在我的模型中,我使用“常量块”作为我的源(将通过来自m文件的MATLAB变量进行参数化)。 使用“Extract Bits Block”进行进一步处理会导致不兼容的数据类型出错。

有人可以帮我处理这个问题吗?

Greets,poeschlorn

3 个答案:

答案 0 :(得分:2)

您可能应该在.m初始化文件中执行hex-> dec转换,并在Simulink中使用此值。

答案 1 :(得分:1)

也许这不是最优雅的解决方案,但我将输入转换为十进制,然后通过OR和AND逻辑块创建了它的BCD表示以供进一步使用。

答案 2 :(得分:0)

如果你有通讯工具箱/阻止组,那么你可以使用Integer to Bit Converter块转换为二进制数字向量,然后只提取你想要的“位”。 Bit to Integer Converter块将执行反向转换。

如果您没有Communicatins Blockset,那么使用普通的MATLAB功能块对此进行类似的操作并不困难。

enter image description here