我正在使用GNU科学库来定义和使用复数。复数定义为
typedef struct{
double dat[2];
} gsl_complex;它只是将实部和虚部表示为双精度浮点(每个部分消耗8个字节)。我需要将这些值的数组传递给一个D/A转换器,它以SC16Q11 (符号复杂,16位Q11)格式工作。
据我所知,使用Q11格式的16位处理器对整数部分使用16-(11+1)=4位,留下一个符号位和11位小数portion.Is,对吗?如何在这两种数据类型之间进行转换?
文档指出,每个IQ样本都是交错的IQ对,其中的每一个值都是一个int16_t。
发布于 2014-08-20 13:08:27
是的,Q11格式是Q4.11 (如果将符号位数到int位,则为Q5.11 )。
你可以在format%29上找到更多的信息
您可以使用以下方法进行转换:
int16_t number[2];
number[0] = round(dat[0] * 2048);
number[1] = round(dat[1] * 2048);2048来自2^11,它也写在链接中。
https://stackoverflow.com/questions/25404813
复制相似问题