我们接着前面的讲,前一节讲了对查表取地址的大概理解,接下来会讲一下为什么用floor而不是用round。(floor为向负无穷取整,round为向邻取整)
实际上如果采样率是数据速率的整数倍,那么用round也无可厚非,但是实际仿真当中,采样率一般不是数据速率的整数倍,所以我们一般用floor来避免溢出问题,下面举一个例子。
假设我们的数据速率为4.1kbps,而采样率为20kHz,那么一个数据位会有20/4.1≈4.88个采样点,如果我们用round,那么我们的仿真会认为一个数据位有5个采样点,当数据长度够长时会造成错位现象,我画个图说明一下。
所以如果使用round会造成最后索引的值超出数据位的长度,导致仿真报错,而使用floor时会认为一个数据位有4个采样点,仿真不会报错,当要求的精度并没有那么高时,可以满足要求。
文章评论(0条评论)
登录后参与讨论