Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static double[] readAmplitudeValues(byte[] buffer, bool isBigEndian = true)
- {
- int MSB, LSB; // старший и младший байты
- double[] data = new double[buffer.Length / 2];
- for (int i = 0; i < data.Length; i += 2)
- {
- if (isBigEndian) // задает порядок байтов во входном сигнале
- {
- // первым байтом будет MSB
- MSB = buffer[2 * i];
- // вторым байтом будет LSB
- LSB = buffer[2 * i + 1];
- }
- else
- {
- // наоборот
- LSB = buffer[2 * i];
- MSB = buffer[2 * i + 1];
- }
- // склеиваем два байта, чтобы получить 16-битное вещественное число
- // все значения делятся на максимально возможное - 2^15
- data[i] = ((MSB << 8) | LSB) / 32768.0;
- }
- return data;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement