2

Я не уверен, отправил ли я это в правильное место или это должно быть в StackOverflow, так как я хочу использовать эти знания для программирования.

Итак, я не знаю много об акустике ...

Я знаю, что с несжатыми изображениями, такими как растровые изображения, каждый пиксель имеет 3 байта: 1 для красного, 1 для зеленого и 1 для синего

Но как работает звук? Я использовал программу для генерации всех чисел от 0 до 255 и снова до 0, вставил их в файл, используя HxD, сохранил их без расширения, а затем импортировал raw в Audacity, и это выглядит так:

изображение в Audacity

Теперь мои вопросы:

  1. Почему одни ниже горизонтальной линии 0, а другие выше? Что означает эта линия?
  2. Почему картинка не выглядит как треугольник, поскольку она идет от 0 до 255 до 0? Почему это выглядит так странно?

Подумав, думаю, я кое-что выяснил: место, где пересекаются горизонтальные и вертикальные линии, является серединой графика / файла и, следовательно, должно быть 255. Кроме того, эти пики между 0,001 и 0,002 и между 0,004 и 0,005 выглядят как разрыв на графике, как будто он продолжается на соответствующих пиках ниже горизонтальной линии. Я рядом?

Кроме того, мне интересно, каковы эти нарушения в конце и начале, после и до вышеупомянутых пиков соответственно. Я подозреваю, что Audacity использует некоторую математическую функцию, чтобы получить точки в их правильном месте для звука, и эта функция имеет синусы или другие тригонометрические операции. Я где-то читал, что синусы и косинусы как-то связаны со звуком.

У меня также есть некоторые сомнения по поводу ключей (E, F, C и т.д.). Они как-то связаны с подачей? Что именно они?

РЕДАКТИРОВАТЬ: я понял, что сделал очень глупую ошибку при создании точек для графика. В основном я забыл добавить 0 перед каждым числом ниже 16, и поэтому, когда мои входные данные в файл были байтами, например, 1,2,3 и 4, и в конечном итоге запись в файл была бы 2 байтами 12 и 34. В любом случае я исправил это, и эти "помехи" в начале и в конце исчезли. Вот для сравнения графики 0-255-0, 0-255 и 255-0: http://postimg.org/image/nmoq9mmdp/

1 ответ1

2

Во-первых, следует отметить, что некоторые типы контейнеров изображений (например, bmp) имеют 3-байтовые значения для представления значений красного, зеленого и синего, другие могут иметь 4-байтовые значения для красного, зеленого, синего и альфа-канала. Другие могут иметь больше.

Именно так мы используем компьютеры для представления визуальной информации; это потому, что если бы вы сделали снимок и перевели его "необработанные" значения в байты, фактическое количество байтов было бы весьма существенным (в диапазоне GB+ для изображения 5 "x7", если используется полный спектр). Таким образом, мы используем алгоритмы и аппаратные технологии, чтобы заставить наш мозг думать, что мы видим полноцветное представление изображения при его цифровом представлении.

Я где-то читал, что синусы и косинусы как-то связаны со звуком.

Аудио отличается, потому что для аудио существенно меньше физической информации. Звук (как свет) - это волна (которая может быть легко представлена функцией синуса / косинуса). Там, где свет - это электрическая волна, звук - это физическая волна. Свет производится на атомном уровне, а прохождение электронов высвобождает фотоны; световые волны немного сложнее превратить в необработанную цифровую информацию, чем звук. Звук возникает, когда молекулы и атомы сталкиваются друг с другом. Это физическое давление относительно легко превратить из физической волны в электрическую волну с магнитами и катушками (так же, как работает микрофон). Принимая это электрический сигнал +/- V можно затем превратить его в цифровой сигнал 1 , чтобы представить физическую звуковую волну. Необработанный звук занимает гораздо меньше места, чем визуальный, но все же намного больше, чем у нас на нынешнем жестком диске (моя коллекция MP3 объемом 50k+ заняла бы на несколько порядков больше места, если бы это был необработанный звук).

Этот цифровой сигнал, представляющий звуковую форму волны, теперь должен каким-то образом воспроизводиться, чтобы его можно было использовать или воспроизводить, поскольку, если вы просто возьмете необработанные аудиобайты и "воспроизведете" их со скоростью вашего ЦП, это будет более чем вероятно звучать как громкий всплеск или какой-то другой случайный звук. Для этого форма сигнала должна быть дискретизирована через равные интервалы времени, представляющие каждый интервал в виде числа. Эти числа являются байтами, 0-255, которые вы изменяете, они представляют собой звуковую форму волны и представляют такие вещи, как частота и громкость (при условии формата необработанного звука, а не контейнера, такого как mp3 или aac).

Как отмечалось в одном комментарии, этот конкретный ответ может быть несколько сложным (учитывая то, что вы спрашиваете и что необходимо объяснить для достаточного понимания), поэтому, будь то вопрос здесь или в SO, я бы рекомендовал взглянуть на Digital Audio Fundamentals от Руководство Audacity. В нем есть хороший пример того, о чем вы спрашиваете, и он может дать вам дальнейшие результаты, чем можно было бы разумно объяснить на одном из этих форумов.

Я был бы рад расширить (здесь или на SO), если у вас есть вопросы после изучения некоторых из их документации. Надеюсь, что это может помочь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .