首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C语言将双(GNU科学图书馆)转换为SC16Q11

用C语言将双(GNU科学图书馆)转换为SC16Q11
EN

Stack Overflow用户
提问于 2014-08-20 12:32:24
回答 1查看 1.2K关注 0票数 0

我正在使用GNU科学库来定义和使用复数。复数定义为

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-20 13:08:27

是的,Q11格式是Q4.11 (如果将符号位数到int位,则为Q5.11 )。

你可以在format%29上找到更多的信息

您可以使用以下方法进行转换:

代码语言:javascript
复制
int16_t number[2];
number[0] = round(dat[0] * 2048);
number[1] = round(dat[1] * 2048);

2048来自2^11,它也写在链接中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25404813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档