Почему в старом оборудовании использовались прямоугольные волны вместо синусоидальных?
В этом ответе постулируется, что для генерации прямоугольной волны (или любой другой абстрактной формы волны) вам нужно наложить несколько синусоидальных волн друг на друга. Однако старое оборудование (Commodore, NES и т. Д.) Не имело каналов синусоидальной волны и вместо этого в значительной степени полагалось на прямоугольные импульсные волны, треугольные волны, шум и пилообразные волны. Я всегда предполагал, что это было сделано, потому что эти волны легче сгенерировать, чем простую синусоидальную волну. Итак, не будет ли создание этих волновых форм более затратным в вычислительном отношении ? Почему все-таки это было сделано?
3 ответа
В этом ответе постулируется, что для генерации прямоугольной волны […] вы должны наложить несколько синусоидальных волн друг на друга.
Не совсем, он просто описывает, как можно проанализировать прямоугольную волну, чтобы доказать определенные факты о ее звучании - сколько энергии содержится в каждой полосе частот и тому подобное. Это в некоторой степени похоже на то, как каждое целое число можно разложить на один или несколько меньших простых множителей (15=3×5), что полезно при анализе алгоритмов, но все же не меняет того, как мы пришли к исходному числу (возможно, считая 15 овец. ).
Разделение «сложной» волны на синусоидальные компоненты очень полезно с математической точки зрения, но не раскрывает нам механизм, лежащий в основе ее первоначального создания.
Я всегда предполагал, что это было сделано, потому что эти волны легче генерировать, чем простую синусоидальную волну.
Ваше предположение здесь правильное. Начиная с цифровой схемы, прямоугольная волна является самой простой и дешевой формой волны для создания 1. Просто включите и выключите напряжение с помощью одного транзистора. Это также дешевле в контексте массового производства, потому что генератор синусоидальных волн (и даже пилообразный), сделанный из аналоговой электроники, потребует много дополнительных компонентов, чтобы не зависеть от температуры, возраста и влажности.
Это также, возможно, более полезно в контексте синтезатора, чем одна синусоидальная волна, потому что в нем много гармоник, которые вы можете изменить с помощью фильтра, как в SID.
Следующая ступенька лестницы сложности - пандус любой формы, например, треугольник или пила. Хотя вы можете сделать их с помощью аналоговой электроники, даже в начале восьмидесятых они обычно реализовывались с помощью простого ЦАП, управляемого цифровым счетчиком. Скорость счетчика определяет, насколько быстро форма волны переходит от 0 до MAX, и, таким образом, определяет высоту тона.
Если у вас есть ЦАП в вашем компьютере, вы можете использовать его для генерации синусоидальной волны, но это требует либо невероятно дорогих вычислений в реальном времени, либо большой таблицы предварительно рассчитанных значений синусоиды, поэтому это редко (никогда?) Выполнялось. Когда компьютеры получили некоторый полезный объем оперативной памяти и пропускную способность, они быстро переключились на простые произвольные образцы и никогда не оглядывались назад.
1) На самом деле все остальное настолько сложнее, что сегодня мы просто делаем все, используя простые цифровые импульсы, и просто фильтруем результат различными способами (PDM, PWM, Delta-sigma)
Насколько я помню, один из членов нашей команды понял, что мы можем генерировать звуки, быстро включая и выключая что-то . Это было в начале 80-х, и я, к сожалению, не помню подробностей. Но я думаю, что ключевым моментом было то, что мы щелкали выключателем, а не вычисляли данные для этих волн. Возникшие волны были результатом «импульсного» воздействия. Возможно, это объясняет некоторые из ранних звуков, но я думаю, что это тоже спекулятивно. Я не участвовал напрямую, и теоретически это в лучшем случае объясняет только прямоугольные и пульсовые волны, а не треугольные или пилообразные волны. Будет интересно, что придумают другие.
Связанное утверждение, что «Каждая волна является суперпозицией нескольких синусоидальных волн» не означает, что волна должна быть сгенерирована путем сложения нескольких синусоидальных волн вместе, это просто означает, что она может быть разбита на несколько синусоидальных волн.
Тот факт, что прямоугольная волна представляет собой суперпозицию бесконечного количества синусоидальных волн, не затрудняет ее создание.