Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. public static double[] readAmplitudeValues(byte[] buffer, bool isBigEndian = true)
  2. {
  3. int MSB, LSB; // старший и младший байты
  4. double[] data = new double[buffer.Length / 2];
  5.  
  6. for (int i = 0; i < data.Length; i += 2)
  7. {
  8. if (isBigEndian) // задает порядок байтов во входном сигнале
  9. {
  10. // первым байтом будет MSB
  11. MSB = buffer[2 * i];
  12. // вторым байтом будет LSB
  13. LSB = buffer[2 * i + 1];
  14. }
  15. else
  16. {
  17. // наоборот
  18. LSB = buffer[2 * i];
  19. MSB = buffer[2 * i + 1];
  20. }
  21. // склеиваем два байта, чтобы получить 16-битное вещественное число
  22. // все значения делятся на максимально возможное - 2^15
  23. data[i] = ((MSB << 8) | LSB) / 32768.0;
  24. }
  25. return data;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement