это первый раз, когда я работаю с волновыми файлами. Проблема в том, что я не совсем понимаю, как правильно читать сохраненные данные. Мой код для чтения:Прочитайте данные из файла wav перед применением FFT
uint8_t* buffer = new uint8_t[BUFFER_SIZE];
std::cout << "Buffering data... " << std::endl;
while ((bytesRead = fread(buffer, sizeof buffer[0], BUFFER_SIZE/(sizeof buffer[0]), wavFile)) > 0)
{
//do sth with buffer data
}
заголовка Пример файла дает мне информацию, что данные PCM (1 канал) с 8 битами на выборку и частоты дискретизации 11025Hz.
Выходные данные дают мне (после обновлений) значения от 0 до 255, поэтому значения являются правильными значениями PCM для 8-битной модуляции. Но, любая идея, что BUFFER_SIZE было бы желательно правильно прочитать эти значения?
WAV файлов я использую: http://www.wavsource.com/movies/2001.htm (daisy.wav)
TXT выход: https://paste.ee/p/pXGvm
Вы имели в виду от -128 до 127 (вместо 172)? И причина, по которой вы видите подписанные значения, заключается в том, что вы сохраняете их в int8, который подписан. uint8 is unsigned – Borgleader
true, я виноват, я изменил свой код. Теперь он дает мне четыре разных значения: 128, 127, 87, 0. Тем не менее я точно не знаю, как это правильно? – user3038744
У нас нет данных, поэтому я не вижу, как мы можем знать, правильны ли эти значения или нет. – Borgleader