Как интерпретировать 32-битные данные wat-float? Я читаю данные wav как I32, а затем разделяю его на 2^31, но не получаю правильный результат.Как интерпретировать 32-битные данные wat-float
ответ
Значения плавают. Вы должны назначить их значениям float и использовать их как таковые. Если вы читаете значения float в значениях int32, вы делаете эквивалент reinterpret_cast.
float f1 = 1.0e5;
int i1 = *reinterpret_cast<int*>(&f1);
// i1 = 1203982336, not 100000
, если вы не можете избежать неправильного значения, то, чтобы получить «правильное» значение обратно, вам нужно обратить Реинтерпретация
float f2 = *reinterpret_cast<float*>(&i1);
// f2 = 1.0e5
порядок байт данных может все еще должны быть скорректированы.
Посмотрите на ваш RIFF header. Это скажет вам утверждение файла Wav.
Используйте этот конец, чтобы правильно читать ваши 32-битные поплавки. Например: если ваша система немногочисленна (скажем, на основе процессора x86), а ваш wav-файл является большим endian (скажем, созданным на старом PPC mac), вам нужно будет сделать 32-bit endian swap после того, как вы прочитаете данные. что ваша переменная float фактически содержит данные, которые имеют смысл (обычно это значение между -1.0f и 1.0f)
Спасибо всем! Чтение данных как поплавок решило проблему. Данные были сохранены как 32-битное float, поэтому чтение его как int действительно не имело смысла. –
- 1. Как интерпретировать данные Perfmon?
- 2. Как интерпретировать выходные данные gdb?
- 3. Как интерпретировать данные iOS Instruments?
- 4. Интерпретировать данные пикселя PNG
- 5. Интерпретировать данные в гнездо
- 6. Как интерпретировать двоичные данные как целое число?
- 7. Как интерпретировать статистику Rails выводит данные таблицы?
- 8. Как интерпретировать (прочитать) подписал 24бят данные 32bits
- 9. Как интерпретировать данные, прочитанные impt matplotlib?
- 10. Как интерпретировать двоичные данные в C++?
- 11. Как читать или интерпретировать шестнадцатеричные данные?
- 12. Как интерпретировать данные кеша Chrome Chrome?
- 13. Как интерпретировать данные времени в Twitter DM
- 14. Как интерпретировать двоичные данные, закодированные аудио?
- 15. Как интерпретировать данные пользовательской среды посетителей
- 16. как интерпретировать данные IRStatisticsImpl в погонщик
- 17. Не знаю, как интерпретировать данные GTFS-realtime
- 18. Интерпретировать данные текстуры как данные вершин в вершинном шейдере
- 19. Интерпретировать символ как знак
- 20. как интерпретировать интерпретировать timeit команду в Python
- 21. Как интерпретировать факт сплава
- 22. Как интерпретировать вывод Papi
- 23. Как интерпретировать коды MPMediaItemCollection
- 24. Как интерпретировать значение si_status
- 25. интерпретировать байтовый массив, чтобы определить данные внутри
- 26. Интерпретировать данные из Modbus ASCII в C
- 27. Как интерпретировать двоичные данные как integer в mysql
- 28. Как интерпретировать вывод pprof?
- 29. Как интерпретировать усилия SonarQube
- 30. Как интерпретировать вывод AddressSanitizer?
Являются ли данные в файлах фактически 32-битными поплавками? Если это так, чтение его как int32 явно не сработает. –
Данные wav могут быть закодированы как большие эндианты или малоконечные. Возможно, вам придется сначала поменять байты. – 2013-02-14 22:46:06
Сначала определите правильный результат. –