как я могу преобразовать std::vector‹short›&les2 в образцы kiss_fft_scalar*?

В настоящее время я использую kissFFT для входных данных.

У меня были входные данные в std::vector&les2, которые я хочу преобразовать в формат, требуемый KissFFT..

Я использую следующий код для преобразования этого,

но в конце я получаю значение diff, пожалуйста, помогите ..

вот мой код

 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 

пожалуйста помоги


person Sunny Shah    schedule 05.06.2013    source источник
comment
Тип по умолчанию для kiss_fft_scalarfloat. Преобразование массива типа short в тип float не сработает. Измените kiss_fft_scalar, чтобы он был определен как тип short, используйте std::vector<kiss_fft_scalar> или выделите массив kiss_fft_scalar и скопируйте значения. Это ваши варианты.   -  person Captain Obvlious    schedule 05.06.2013
comment
Спасибо, теперь это работает для меня ... но я столкнулся с другой проблемой, когда я применяю эти входные данные к БПФ. Выход БПФ возвращает выход nan. у вас есть идея муравья?   -  person Sunny Shah    schedule 05.06.2013
comment
Да, читай инструкцию, чтобы знать, что делаешь.   -  person Captain Obvlious    schedule 05.06.2013
comment
myCode в выводе БПФ я получаю вывод nan   -  person Sunny Shah    schedule 05.06.2013
comment
можете ли вы сказать мне, что я делаю неправильно?   -  person Sunny Shah    schedule 05.06.2013


Ответы (2)


тип 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* !!!
person SergV    schedule 05.06.2013
comment
Есть ли у вас какие-либо идеи о KissFFT .. на самом деле я столкнулся с некоторой проблемой с этим ... - person Sunny Shah; 05.06.2013
comment
@Sunnyshah kissFFT работает для меня. Прочтите руководство. В файле README есть небольшой пример. Есть тестовые и инструментальные каталоги. - person SergV; 05.06.2013
comment
@Саннишах. По какой причине вы повторно приняли мои ответы? Как вы думаете, это неправильный ответ? - person SergV; 05.06.2013
comment
@Саннишах. Теперь вы повторно приняли ответы Мисок Канга. Как вы думаете, эти ответы неверны? Знаете ли вы о концепции полезного ответа и о том, за что голосуют? (См. stackoverflow.com/about) - person SergV; 05.06.2013
comment
@Саннишах. Я думаю, вы прочитали stackoverflow.com/about? Пожалуйста, проголосуйте за ответ Mis-seok Kang, если он вам полезен. - person SergV; 05.06.2013

По умолчанию значение 'kiss_fft_scalar' равно float. но он может быть типа short или float.

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

person Mis-seok Kang    schedule 05.06.2013
comment
Спасибо .. У вас есть какие-нибудь идеи о KissFFT .. на самом деле я столкнулся с некоторыми проблемами с этим ... - person Sunny Shah; 05.06.2013