在 Simulink 中转换双正弦函数 uint8 - 意外结果

Converting a double sine function uint8 in Simulink - unexpected results

我想知道为什么通过 uint8 传递正弦信号(幅度:1,频率 = 1·1 赫兹,采样率:0.01 秒)会产生方波。虽然我知道如果正弦波的值高于 256,它应该被截断为 255,但正弦波的幅度只有 1。为什么方波是 0 到 255?

您看到的是整数溢出时饱和发生的函数。 (请注意,您的方波中的 255 对应于符号波的负部分,而不是 正部分,这就是您的问题似乎表明您在想什么。正部分正弦波向下舍入为零。)

根据 Data Type Conversion 块的文档,特别是 Saturate on integer overflow 部分,默认情况下正弦波的负部分(可以' t 在 uint8) 中精确表示为 255。如果您尝试舍入的方式以及饱和度的处理方式,您应该对发生的事情有更好的感觉。