homechevron_rightУчебаchevron_rightИнформатика

Осциллограмма звукового файла

Калькулятор отображает форму сигнала из входного wav-файла.

Эта страница существует благодаря следующим персонам

Anton

Anton

Этот калькулятор можно использовать для просмотра осциллограммы аудио сигнала. Осциллограмма это форма аудио сигнала, как функция от времени. Калькулятор принимает на вход wav файлы в формате PCM (линейный или закодированный А или Мю правилу) в результате выдается график с осциллограммой. Калькулятор может отображать осциллограммы для многоканальных аудио-файлов (стерео, квадро и т.д.)

PLANETCALC, Осциллограмма аудио файла

Осциллограмма аудио файла

Звуковой файл
  • Drag files here
Знаков после запятой: 3
Формат файла
 
Осциллограмма

Алгоритм отображения осциллограммы

PCM данные хранятся в виде значений амплитуды сигнала, зафиксированного с равными промежутками времени (частота дискретизации). Одна секунда низкокачественного аудио с частотой дискретизации 8кГц содержит 8 тысяч отсчетов амплитуды. Чтобы отобразить осциллограмму этого фрагмента без преобразований потребуется экран шириной 8 тыс. пикселей, но кажется, что такое разрешение в 2020 году еще не столь популярно. Следовательно требуется некий алгоритм для упаковки формы сигнала.
Наш калькулятор использует среднеквадратическое значение для отображения нескольких отсчетов в виде одной линии на графике осциллограммы. Краткое описание алгоритма отрисовки:

  • По разрешению экрана определить число точек P (в калькуляторе этот параметр задается в настройках)
  • Вычислить число отсчетов в одной точке S=T/P, where T - количество отсчетов амплитуды во всем фрагменте
  • Для каждой точки вычислить среднеквадратичное значение по формуле:
    R=\sqrt{\sum_{n=1}^{S} s(n)^2}
    где s(n) - n-ый отсчет амплитуды в заданной точке графика
  • Для каждой точки графика нарисовать вертикальную линию от -R до R

Некоторые особенности форматов PCM аудио

PCM аудио данные могут хранитья либо в виде чисел с плавающей точкой, либо в виде целых чисел различной разрядности. Для отрисовки в едином стиле калькулятор преобразовывает амплитуды в виде целых чисел в значения с плавающей точкой в диапазоне от -1 до 1. Как оказалось существует два способа хранения амплитуды в виде целых чисел. Если разрядность отсчета 8 бит или меньше, то значение амплитуды хранится как беззнаковое целое, в противном случае (разрядность более 8 бит) значение хранится со знаком в дополнительном коде. Калькулятор преобразует 8-битные значения амплитуды в число с плавающей точкой по формуле: (s(n)-128)/128. Более длинные целые разрядностью 16, 24 или 32 бита преобразуются в число с плавающей точкой так: s(n)/|int_min|. |int_min| равняется 32768; 8388608 и 2147483648 для целого длинной 16, 24 и 32 бит соответственно.

Creative Commons Attribution/Share-Alike License 3.0 (Unported) PLANETCALC, Осциллограмма звукового файла

Комментарии