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

时间:2017-11-20 22:31:28

标签: matlab simulink

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

1 个答案:

答案 0 :(得分:1)

您所看到的是整数溢出饱和度的函数。 (注意,方波中的255对应于符号波的负部分,正部分,这是你的问题似乎表明你正在思考。正弦波的正面部分正在向下舍入为零。)

根据Data Type Conversion Block的文档,特别是 Saturate on integer overflow 部分,默认情况下是正弦波的负部分(无法表示)完全在uint8)包裹到255.如果您玩四舍五入的方式,以及如何处理饱和度,您应该更好地了解正在发生的事情。