我该如何转换std :: vector <short>&amp; samples2到kiss_fft_scalar * samples?</short>

时间:2013-06-05 04:54:57

标签: c++ real-time kissfft

目前我对输入数据进行了kissFFT ..

我在std :: vector&amp;中输入了数据。 samples2我想转换成KissFFT所需的格式..

我正在使用以下代码进行转换,

但最后我得到差异值请帮助..

这是我的代码

 ShortBuffer *pBuffer1 = pData->AsShortBufferN();

    std::vector<short> input(pBuffer1->GetPointer(),
            pBuffer1->GetPointer() + BUFFER_SIZE);

    kiss_fft_scalar* samples = (kiss_fft_scalar*) &input[0]; // Here my input data  is change 

请帮助

2 个答案:

答案 0 :(得分:1)

'kiss_fft_scalar'的difault值是float。 但它可以是短型或浮动型。

http://www.reproducibility.org/RSF/book/rsf/manual/manual_html/node11.html

答案 1 :(得分:0)

kiss_fft_scalar 的类型可以是float,short,int32或__m128。它取决于相同的预处理器 FIXED_POINT和USE_SIMD的定义。检查 kiss_fft_scalar 的类型是否简短。

您的编译器可以帮助您 - 不要使用 C 强制转换:

 kiss_fft_scalar* samples = &input[0];  // type of &input[0] must be kiss_fft_scalar* !!!