我正在努力在 DSP 处理器上实现 BFSK 算法,并且需要使用预定义的 DSP 基础文件在 LINUX 上模拟实现。以浮点数组的形式传入的输入数据。从输入中逐一提取各个位。调制输出在 typdef 结构的 fprm 中生成,该结构由两个浮点变量组成(实部和虚部,因为调制数据是复数基带信号)。但是 DSP 模拟需要将输出保存到一个空指针数组中。这不能更改,因为 DSP API 需要以 void 指针的形式。结构的定义如下:
typedef struct {
float re;
float im;
}complex_float;
我可以使用 memcpy 将数据复制到 void 指针中:
sigbuf=(float *)malloc(bitsPerBlk*sigLen*sizeof(complex_float));
memcpy(sigbuf, comSig, (bitsPerBlk*sigLen*sizeof(complex_float)));
sigbuf 是保存输出的空指针数组,comSig 是保存调制输出的 complex_float 数组。问题是我无法访问 sigbuf 数组的各个值。我也试过这个
sigbuf=(complex_float *)malloc(bitsPerBlk*sigLen*sizeof(complex_float));
但它仍然不起作用。
如果有人可以帮助我,那将对我非常有帮助。
谢谢,安舒