我正在使用DSP处理器实现BFSK算法,并需要使用预定义的DSP Infra文件模拟LINUX上的实现。输入数据以浮点数组的形式出现。各个位是从输入中逐一提取的。经调制的输出在typdef结构的fprm中生成,该结构由两个浮点变量(实数部分和虚数部分组成,因为调制数据是复数基带信号)组成。但是DSP仿真需要将输出保存到一个void指针数组中。这个不能被改变,因为DSP API需要它以void指针的形式。该结构的定义如下:将结构数据保存为void *变量
typedef struct {
float re;
float im;
}complex_float;
我能够使用的memcpy将数据复制到空指针:
sigbuf=(float *)malloc(bitsPerBlk*sigLen*sizeof(complex_float));
memcpy(sigbuf, comSig, (bitsPerBlk*sigLen*sizeof(complex_float)));
sigbuf是void指针数组,其中输出中会被保存, comSig是保存调制输出的complex_float数组。事情是我无法访问sigbuf数组的各个值。我也试过这个
sigbuf=(complex_float *)malloc(bitsPerBlk*sigLen*sizeof(complex_float));
但它仍然没有工作。
如果有人能帮助我,那对我来说会很有帮助。
感谢, 安舒
目前还不清楚你的意思是“不起作用”。什么,具体而言,不起作用? –
'sigbuf是void指针数组,其中输出将被保存,comSig是complex_float数组'请将您的声明和定义放在源代码中,而不是文本中。文本用于评论和解释。 – wildplasser
向我们展示如何访问sigbuf数组的各个值的代码 – MYMNeo