Я пытаюсь отобразить сигнал (я записал себя в микрофон).
Хранить данные в массиве byte.
Кроме того, моя частота дискретизации составляет 44100, а размер выборки 16 бит.
Мой массив содержит только положительные значения, но в некоторых примерах я видел значения от -1,0 до 1,0. Почему это? Кроме того, если мой размер выборки составляет 16 бит и я использую массив байтов, мне нужно выполнить преобразование. Это то, что я пытался сделать до сих пор:
double[] x = new double[Arc.Buffer.Count / 2];
byte[] y = new byte[2];
for (i = 0; i < Arc.Buffer.Count; i++)
{
Array.Copy(Arc.Buffer.ToArray(), 2*i, y, 0, 2);
x[i] = (double)((y[1] << 8) | (y[0] & 0x00FF));
}
Но после этого кода мой массив x содержит огромные значения (а не от -1,0 до 1,0).
Я новичок в этой теме, и я буду признателен за любую помощь! (:
short
s илиshort
без знака, или сжатый вид с плавающей запятой небольшого диапазона или что-то еще. Простое приведение байтовых данных кdouble
может привести или не привести к тому, что вам нужно, в зависимости от того, как выглядят исходные данные. Если бы мне пришлось угадывать, вероятно, нет. Прежде чем вы определитесь с исходным форматом данных, мы не можем дать вам много советов. - person Frank J   schedule 02.10.2015