Формула задаёт порядок вычисления: взять время, умножить его на частоту (frequency)частота (frequency) — Число полных колебаний за секунду. Обозначается f и измеряется в герцах; 1 Гц означает одно колебание в секунду. и полный угол оборота, вычислить синус (sine)синус (sine) — Вертикальная координата точки на единичной окружности под заданным углом от положительного направления горизонтальной оси. Для острого угла прямоугольного треугольника равен отношению противолежащего катета к гипотенузе. и умножить результат на амплитуду (amplitude)амплитуда (amplitude) — Наибольший модуль отклонения колеблющейся величины от равновесного значения. Для синусоиды обозначается A; единицы совпадают с единицами сигнала.. Чтобы пользоваться этой формулой, нужно понимать обозначения и порядок действий.
Здесь собраны математические приёмы из статей сайта: от дробей и единиц до восстановления через sinc и сглаживания в компрессоре (dynamic range compressor)компрессор (dynamic range compressor) — Устройство или программа, которая ослабляет сигнал, когда его уровень выше порога, и тем сужает динамический диапазон.. Для чтения достаточно арифметики; примеры можно повторять на калькуляторе. К нужному приёму можно возвращаться через оглавление.
Буквы, индексы и порядок действий
Буква в формуле обозначает величину: — время, — частоту, — амплитуду. Значение и единицу задаёт пояснение рядом с формулой. Одна буква может иметь разный смысл в разных статьях: бывает периодом (period)период (period) — Время одного полного повторения периодического колебания. Обозначается T, измеряется в секундах и связано с частотой как T = 1/f. в секундах или порогом (threshold)порог (threshold) — Уровень, начиная с которого компрессор или лимитер ослабляет сигнал, а экспандер или гейт — перестаёт ослаблять. компрессора в децибелах (decibel)децибел (decibel) — Логарифмическая единица отношения двух величин: для амплитуд L = 20 lg(A/A₀), для мощностей — 10 lg(P/P₀). Смысл числа задаёт опорная величина..
Нижний индекс уточняет название: — частота дискретизации (sample rate)частота дискретизации (sample rate) — Число отсчётов в каждом канале за одну секунду, то же число кадров аудиоданных в секунду. Измеряется в герцах: 44 100 Гц означает 44 100 отсчётов на канал в секунду., — опорная амплитуда. Это не умножение на или на ref. Напротив, и означают произведение. Греческие буквы тоже служат обозначениями: («пи») — постоянное число примерно 3,14159, («фи») часто означает фазу (phase)фаза (phase) — Положение внутри периода колебания, выраженное углом: полный период соответствует 360°, или 2π радиан. Начальная фаза — её значение в момент t = 0., («альфа») — коэффициент. Символ («дельта») обычно обозначает изменение: — интервал времени.
Знак сообщает точное равенство, — приближённое: . Знаки и читаются «меньше» и «больше», и включают равенство. Многоточие в означает продолжение того же ряда целых чисел.
Скобки задают, что вычислять вместе. Дробная черта группирует весь числитель и знаменатель: означает сначала вычесть из , затем разделить результат на . При , и получается . Вычитание отрицательного числа превращается в прибавление.
В выражении умножение выполняется раньше сложения, поэтому результат 14. В результат 20. Степени (power)степень (power) — При положительном целом показателе m запись aᵐ означает произведение m одинаковых множителей a. Показатель 0 даёт 1 при ненулевом основании, отрицательный целый показатель — обратную величину соответствующей положительной степени. вычисляют раньше умножения; когда порядок может быть неясен, скобки устраняют неоднозначность.
Отношения, доли и единицы
Для положительных величин отношение показывает масштаб относительно . При одинаковых единицах они сокращаются: . Доля 0,25 соответствует 25 %: проценты переводят в доли делением на 100. Поэтому глубина модуляции (modulation depth)глубина модуляции (modulation depth) — Величина изменения управляемого параметра. Её единицы и шкала зависят от параметра: например, глубина может задавать отклонение частоты в герцах или долю ослабления звука. 75 % в формуле записывается как .
Приставки меняют масштаб единицы: 1 кГц = 1000 Гц, 1 мс = 0,001 с, 1 мкс = 0,000001 с. Частота 1 Гц означает одно повторение за секунду. Для расчёта периода частоту подставляют в герцах:
- время одного повторения, с;
- число повторений за секунду, Гц; .
Для Гц формула (1) даёт с, то есть 1 мс. Удвоение частоты уменьшает период вдвое. Чтобы выразить время в миллисекундах сразу, можно считать : при 48 000 Гц период дискретизации (sampling period)период дискретизации (sampling period) — Интервал времени между соседними отсчётами, обратный частоте дискретизации. Измеряется в секундах. равен примерно 0,02083 мс, или 20,83 мкс.
Единицы помогают проверить расчёт. Время блока из кадров при кадров в секунду равно с: «кадры» сокращаются, секунды остаются. Подробности числа каналов и размера памяти — в статье об аудиоданных.
Перестановку формулы тоже можно проверить: из умножением обеих сторон на получается , затем делением на — . Эти шаги допустимы при ненулевых и .
Степени, корни и модуль
Степеньстепень (power) — При положительном целом показателе m запись aᵐ означает произведение m одинаковых множителей a. Показатель 0 даёт 1 при ненулевом основании, отрицательный целый показатель — обратную величину соответствующей положительной степени. при положительном целом означает произведение одинаковых множителей . Например, . Так в АЦП считают число кодов: у каждого бита два варианта, у трёх битов — восемь комбинаций, у 16 битов — . Ещё один бит удваивает число комбинаций.
При выполняются и . Поэтому , а запись означает 0,00002. При умножении степеней одного основания показатели складываются: .
Квадратный корень (square root)квадратный корень (square root) — Неотрицательное число, квадрат которого равен заданному неотрицательному числу. Для вещественных чисел √a определён при a ≥ 0. — неотрицательное число, квадрат которого равен . Например, ; здесь , если работаем с вещественными числами. Дробные степени связаны с корнями: для . Например, ; произвольный показатель можно вычислить на калькуляторе. Это понадобится для RMS (RMS level)среднеквадратичный уровень (RMS level) — Корень из среднего квадрата значений сигнала на выбранном интервале. Имеет те же единицы, что и сигнал; у синусоиды за целое число периодов равен амплитуде, делённой на √2. и для обратного перевода децибелов в отношение амплитуд.
Модуль числа (absolute value)модуль числа (absolute value) — Расстояние от числа до нуля на числовой прямой. Модуль неотрицателен; например, |−0,8| = |0,8| = 0,8. — расстояние от него до нуля: и . Знак исчезает и при возведении в квадрат: . При этом : без скобок минус применяется после возведения в квадрат.
Двоичная и шестнадцатеричная запись
В обычной десятичной записи каждая цифра умножается на степень десяти по своему месту: . Такая запись называется позиционной, а 10 — её основанием. С тем же правилом можно взять другое основание; его указывают нижним индексом: .
Двоичная (binary) запись использует только цифры 0 и 1, их называют битами (bit). Места соответствуют степеням двойки: . Восемь бит образуют байт (byte). В байте комбинаций, поэтому как число без знака он принимает значения от 0 до 255.
Шестнадцатеричная (hexadecimal) запись использует 16 цифр: 0–9 и буквы A–F со значениями от 10 до 15. Поскольку , одна шестнадцатеричная цифра заменяет ровно четыре бита, а байт записывается двумя цифрами — от 00 до FF. Например, , а . В программах вместо индекса пишут приставку 0x: 0xAC44 .
Число из нескольких байтов можно читать как запись по основанию 256: каждый байт — одна «цифра». Если младший байт , следующий и так далее, значение равно . Число 44 100 состоит из байтов и : . В каком порядке байты лежат в файле, определяет формат: в WAV-файле младший байт идёт первым.
Эти правила описывают целые числа без знака. Отрицательные целые обычно хранят в дополнительном коде (two’s complement)дополнительный код (two’s complement) — Представление знакового целого в N битах: при установленном старшем бите беззнаковое значение этих битов уменьшают на 2ᴺ. Диапазон — от −2ᴺ⁻¹ до 2ᴺ⁻¹−1; у нуля одна запись.: тот же набор битов читается по особому правилу, и, например, 16-битное 0xFF00 означает −256.
Побитовые операции и маска
Побитовая операция (bitwise operation) работает с отдельными позициями двоичной записи целых. В C++ & даёт 1 в позиции, только если оба входных бита равны 1; | — если хотя бы один равен 1; ~ меняет каждый бит на противоположный. Эти операции отличаются от логических &&, || и !, которые работают с истинностью условий (рабочий текст стандарта C++, AND, OR, унарные операторы).
Битовая маска (bit mask)битовая маска (bit mask) — Целое число, в котором единицами отмечены позиции битов для выбора или изменения побитовой операцией. Маска 0x80 выбирает старший бит восьмибитного байта. отмечает нужные позиции единицами. Например, , маска . Выражение 0xB6 & 0x80 оставляет только старший бит и даёт 0x80; 0x36 & 0x80 даёт 0. Чтобы спросить, установлен ли бит, сравнивают результат с нулём: (byte & 0x80) != 0. Скобки фиксируют порядок операций.
Сдвиг влево << k переносит биты на позиций к старшим разрядам и заполняет освободившиеся позиции нулями. Для беззнакового числа при достаточной ширине это умножение на : 3u << 8 даёт . Поэтому из байтов 0x12 и 0x34 число собирают как 0x12u | (0x34u << 8), получая 0x3412. Байты заняли разные позиции, так что OR здесь даёт тот же результат, что сложение.
Беззнаковый сдвиг вправо >> k отбрасывает младших позиций и заполняет старшие нулями. 0x3412u >> 8 даёт 0x34; маска & 0xFFu оставляет один младший байт. Число позиций должно быть неотрицательным и меньше ширины типа. Тип выбирают до сдвига, чтобы промежуточные биты поместились. Правый сдвиг отрицательного знакового числа в C++20 заполняет старшие позиции знаком; для переносимого кода C++17 на это правило полагаться нельзя (стандарт C++, Shift operators). В разборе 24-битного PCM показаны варианты расширения знака (sign extension)расширение знака (sign extension) — Заполнение новых старших битов копиями знакового бита при увеличении разрядности целого в дополнительном коде. Сохраняет числовое значение, например 24-битное −1 становится 32-битным −1. с вычитанием и со сдвигами.
Целочисленное деление и остаток
Деление целого на целое с остатком даёт неполное частное и остаток , где . Скобки означают округление (rounding)округление (rounding) — Замена числа ближайшим допустимым значением, например ближайшим целым для round. Выбор при равном расстоянии до двух значений определяется отдельным соглашением. вниз: наибольшее целое, не превосходящее число. Например, , поэтому , а остаток равен 6. Остаток также записывают как .
Когда делитель — степень двойки , частное и остаток видны прямо в двоичной записи. ; при старшие биты 100 дают частное 4, три младших 110 — остаток 6. В C++ для беззнакового числа это a >> k и a & ((1u << k) - 1): маска из единиц оставляет младшие биты. На таком разбиении построен код Райса во FLAC.
Для отрицательных чисел соглашения расходятся. Операция / в C++ отбрасывает дробную часть, то есть округляет частное к нулю: -7 / 2 равно −3, -7 % 2 равно −1, и (a / b) * b + a % b снова даёт a (стандарт C++, Multiplicative operators). Округление вниз дало бы частное −4 и остаток 1. Поэтому перед делением со знаком выясняют, какое правило нужно. В кодах Райса (Rice code)код Райса (Rice code) — Код переменной длины для неотрицательных целых: частное от деления на 2^k записывается унарно, остаток — k битами. Короток для чисел около нуля. знак убирают заранее и делят только неотрицательные числа.
Функция, аргумент и график
Функция (function)функция (function) — Правило, сопоставляющее каждому допустимому значению аргумента ровно одно выходное значение. Запись h(u) обозначает результат функции h при аргументе u. задаёт одно выходное значение для каждого допустимого входного значения. В записи имя функции — , вход называют аргументом (argument), результат — . Например, правило даёт . Скобки здесь передают аргумент функции; читается «значение функции при трёх».
В аудио запись сообщает значение сигнала в момент . Если — напряжение, входное время измеряется в секундах, результат — в вольтах. Напротив, обозначает отсчёт (sample)отсчёт (sample) — Значение сигнала в один момент дискретизации, одно число. В звукозаписи его также называют сэмплом. с целым номером : , , . В статьях сайта круглые скобки используются для непрерывного времени, квадратные — для последовательности отсчётов. Связь означает: отсчёт номер берётся в момент , где — период дискретизации в секундах.
На графике по горизонтальной оси откладывают аргумент, по вертикальной — значение функции. Чтобы получить точку, подставляют выбранный аргумент в правило. Единицы читают по подписям осей: график сигнала по времени и график уровня по частоте описывают разные зависимости.
Модуль используют при поиске пика: из отсчётов −0,8 и +0,5 больший по величине — первый. Запись выбирает наибольший из двух модулей. Функция аналогично выбирает наименьшее значение. В треугольном LFO модуль создаёт два симметричных прямолинейных участка.
Угол, окружность и радианы
Угол можно измерять долей полного оборота. В градусах оборот равен 360°. Радиан (radian)радиан (radian) — Единица угла, заданная отношением длины дуги окружности к её радиусу. Дуга длиной в один радиус соответствует 1 рад; полный оборот — 2π рад. определяется через окружность: угол в радианах равен длине дуги , поделённой на радиус . Если длина дуги равна радиусу, угол равен 1 рад (OpenStax, §5.1).
Длина всей окружности — . Поэтому полный оборот равен рад, половина — рад, четверть — рад. Чтобы перевести градусы в радианы, умножают их числовое значение на ; для обратного перевода — на . Например, рад, а 1 рад приблизительно равен 57,3°.
При измерении от положительного направления горизонтальной оси положительный угол отсчитывают против часовой стрелки, отрицательный — по часовой. Углы 0 и приводят к одной точке; угол ведёт туда же, куда .
Отношение двух длин безразмерно, но пометка «рад» помогает отличать радианы от градусов. В математических формулах подразумевает радианы. Для калькулятора нужно выбрать режим RAD; режим DEG предназначен для аргумента в градусах.
Синус и косинус
В прямоугольном треугольнике синуссинус (sine) — Вертикальная координата точки на единичной окружности под заданным углом от положительного направления горизонтальной оси. Для острого угла прямоугольного треугольника равен отношению противолежащего катета к гипотенузе. острого угла — отношение длины противолежащего катета к гипотенузе. Косинус (cosine)косинус (cosine) — Горизонтальная координата точки на единичной окружности под заданным углом от положительного направления горизонтальной оси. Для острого угла прямоугольного треугольника равен отношению прилежащего катета к гипотенузе. — отношение прилежащего катета к гипотенузе. Гипотенуза лежит напротив прямого угла; какой катет прилежащий, зависит от выбранного острого угла (OpenStax, §5.4).
Возьмём треугольник с катетами 3 и 4 и гипотенузой 5. Для угла («тета») напротив катета 3 получаются и . При увеличении всех сторон вдвое отношения сохранятся: значение зависит от угла.
Чтобы определить синус для любого угла, используют единичную окружность (unit circle), то есть окружность радиуса 1. Точка под углом имеет горизонтальную координату и вертикальную . В первой четверти радиус и проекции образуют тот же прямоугольный треугольник (рисунок 1; OpenStax, §5.2).
При полном обороте высота точки проходит через 0, +1, 0, −1 и снова 0. Синус повторяется каждые и принимает значения от −1 до +1. Косинус имеет тот же диапазон, но начинает оборот со значения +1. Значения для четвертей оборота собраны в таблице 1.
| Градусы | Радианы | sin θ | cos θ |
|---|---|---|---|
| 0° | 0 | 0 | 1 |
| 90° | π/2 | 1 | 0 |
| 180° | π | 0 | −1 |
| 270° | 3π/2 | −1 | 0 |
| 360° | 2π | 0 | 1 |
Из окружности видны полезные свойства: , , . Отражение, половина оборота и полный оборот объясняют смену знака и повторение волны. Кроме того, : косинус соответствует синусу, опережающему его на четверть оборота.
Чему равны sin(π/2) и sin(−π/2)?
Верхняя точка окружности имеет высоту +1, нижняя −1. Поэтому , . Если калькулятор даёт другое значение, проверьте режим RAD.
От угла к синусоиде во времени
Если точка движется по окружности равномерно, её вертикальная координата меняется по синусоиде. Частотачастота (frequency) — Число полных колебаний за секунду. Обозначается f и измеряется в герцах; 1 Гц означает одно колебание в секунду. задаёт число оборотов за секунду. За время проходит оборотов; умножение на переводит их в радианы. Начальный угол задаёт фазафаза (phase) — Положение внутри периода колебания, выраженное углом: полный период соответствует 360°, или 2π радиан. Начальная фаза — её значение в момент t = 0. . Получается формула (2), используемая в статье о звуковой волне.
- значение сигнала в момент ;
- амплитуда в тех же единицах, что и ;
- частота, Гц;
- время, с;
- начальный угол, рад.
Пусть В, Гц, . В момент 0,25 мс сначала переводим время в секунды: с. Затем оборота, рад, синус равен 1. Напряжение равно 0,5 В. Через 0,5 мс от начала угол равен , напряжение нулевое; через 0,75 мс оно равно −0,5 В. Через 1 мс цикл повторяется.
Синус выдаёт безразмерное число, а множитель задаёт масштаб и единицу сигнала. Если заменить на 1 В, значения удвоятся, время повторения сохранится. Если увеличить , обороты будут происходить быстрее. Прибавление начинает волну с максимума: тот же рисунок смещается по времени на четверть периода.
Для отсчётов подставляют . При Гц и Гц угол равен : каждый следующий отсчёт сдвигается на 45°. Эта подстановка разобрана в статье о дискретизации. Как угол превращается в две волны на графике, показывает эксперимент с фазой.
Логарифм: найти показатель степени
Логарифм (logarithm)логарифм (logarithm) — Показатель степени, в которую нужно возвести основание, чтобы получить аргумент. Для вещественного логарифма аргумент и основание положительны, основание отлично от 1. Десятичный логарифм lg использует основание 10. отвечает на вопрос, в какую степень возвести основание, чтобы получить заданное число. Десятичный логарифм обозначают или : , потому что . Аналогично, и . Логарифм может быть дробным: (OpenStax, §4.3).
Для вещественного логарифма аргумент должен быть положительным, основание — положительным и отличным от 1. Поэтому и не имеют вещественного значения. При приближении положительного аргумента к нулю десятичный логарифм уходит к . Символ («бесконечность») здесь описывает неограниченное убывание результата.
Децибелы и обратный перевод
В статье об уровне сигнала сравнение положительных амплитуд записано как , где — уровень в децибелах, — опорная амплитуда. Сначала нужно вычислить отношение, затем логарифм, затем умножить на 20. Например, 0,1 В относительно 1 В даёт отношение 0,1, логарифм −1 и уровень −20 дБ. Значения напряжения не подставляют в логарифм по отдельности: его аргумент — безразмерное отношение.
Чтобы выполнить обратный перевод, делят уровень на 20 и возводят 10 в полученную степень (формула (3); J. O. Smith, Decibels).
- уровень, дБ;
- ,
- положительная амплитуда и опора в одинаковых единицах.
Уровень −20 дБ даёт , −6 дБ — . Поэтому «вдвое» и «6 дБ» совпадают лишь приближённо: точное удвоение амплитуды даёт примерно 6,0206 дБ. Для мощности используют множитель 10; обратный перевод её отношения имеет вид . Связь мощности с квадратом амплитуды и условия применения этих формул разобраны в статье об уровне.
Если считают уровень отдельного отсчёта, берут его модуль. Например, −0,5 и +0,5 относительно опоры 1 дают одинаковые −6,02 дБ. Нулевому отсчёту условно приписывают уровень дБ по пределу; это не конечное значение .
Амплитуда уменьшилась до 1 % исходной. Сколько это децибелов и какой множитель вернёт её обратно?
1 % — доля 0,01. Из получаются −40 дБ. Обратное усиление на 40 дБ означает множитель .
Свойства логарифма и шкала частот
При положительных и выполняются , и . Например, . Этим объясняется сложение децибелов при последовательном применении множителей усиления (OpenStax, §4.5).
На логарифмической шкале (logarithmic scale)логарифмическая шкала (logarithmic scale) — Шкала, на которой равные расстояния соответствуют одинаковым отношениям положительных величин. Например, 100, 1000 и 10 000 Гц расположены на равных расстояниях. равные расстояния соответствуют одинаковым отношениям. Частоты 100, 1000 и 10 000 Гц находятся на равных расстояниях: их десятичные логарифмы — 2, 3 и 4. Между 100 и 1000 Гц середина по такой шкале находится при Гц; арифметическая середина 550 Гц относится к линейной шкале.
На кривых равной громкости (equal-loudness contour)кривая равной громкости (equal-loudness contour) — Линия на графике частоты и уровня звукового давления, соединяющая чистые тоны, воспринимаемые одинаково громкими в заданных условиях. горизонтальная шкала частот логарифмическая, вертикальная шкала уровня размечена равными интервалами децибелов. Чтобы читать график, проверяйте обе оси отдельно.
Полутоны и центы
В равномерной темперации октава (octave)октава (octave) — Музыкальный интервал между нотами одного названия в соседних регистрах. Соответствует отношению частот 2:1. с отношением частот 2 делится на 12 одинаковых шагов — полутонов. Двенадцать одинаковых множителей должны дать 2, поэтому и . Интервал из полутонов умножает частоту на : для квинты из 7 полутонов это . От ля 220 Гц такая квинта ведёт к Гц.
Цент (cent)цент (cent) — Сотая часть равномерно темперированного полутона; в октаве 1200 центов. Интервал в c центов умножает частоту на 2 в степени c/1200. — сотая часть равномерно темперированного полутона, в октаве 1200 центов (HyperPhysics, Cents). Интервал в центов умножает частоту на : 7 центов дают множитель около 1,004052, а 220 Гц превращаются примерно в 220,89 Гц. Отрицательное понижает частоту.
- интервал от до , центы;
- ,
- положительные частоты, Гц.
Двоичный логарифм отвечает на вопрос, в какую степень возвести 2; на калькуляторе его находят через десятичный, как во второй части формулы. Например, отношение 3/2 даёт цента, а темперированная квинта — ровно 700. Разница около 1,955 цента мала, но при долгом совместном звучании слышна как медленные биения (beats)биения (beats) — Периодическое нарастание и спад громкости суммы двух тонов близких частот. Частота биений равна модулю разности частот.. Так как отношения последовательных интервалов перемножаются, их величины в центах складываются: две темперированные квинты дают 1400 центов. Это прямое следствие свойства .
Натуральный логарифм и экспонента
Натуральный логарифм (natural logarithm)натуральный логарифм (natural logarithm) — Логарифм с основанием e ≈ 2,71828; обозначается ln. Для положительного аргумента a равен показателю степени, дающему eᵘ = a. использует основание . Экспонента (exponential function)экспонента (exponential function) — Функция eᵘ, также записываемая exp(u), где e ≈ 2,71828. Обратна натуральному логарифму: exp(ln(a)) = a при положительном a. При отрицательном аргументе принимает значения между 0 и 1. , также записываемая , выполняет обратное действие: при . На калькуляторе ln соответствует натуральному логарифму, log обычно десятичному; в программных библиотеках обозначения нужно проверять (OpenStax, §4.3).
Для выражение убывает от 1 к нулю: при оно равно 1, при примерно 0,3679. При любом конечном значение остаётся положительным. Такой вид зависимости подходит для постепенного затухания (OpenStax, §4.1).
В формуле коэффициента сглаживания сначала находят , затем делят на и меняют знак. Здесь — частота дискретизации в герцах, — время атаки (attack time)время атаки (attack time) — Время, за которое компрессор наращивает подавление усиления после превышения порога. Точное определение зависит от устройства. или восстановления в секундах. Их произведение равно числу отсчётов за это время, показатель степени безразмерен.
При Гц и с получается , показатель примерно −0,004578, а . Увеличение приближает коэффициент к 1. Как этот коэффициент замедляет изменение усиления, показано ниже; значение времени 10–90 % соответствует модели MathWorks, compressor, принятой в статье о компрессоре.
Затухание часто записывают как . Число в секундах — постоянная времени (time constant)постоянная времени (time constant) — Время τ, за которое экспоненциальный процесс проходит 1 − 1/e ≈ 63,2 % пути к установившемуся значению; у однополюсного фильтра τ = 1/(2π·fc).: за время показатель становится равным −1, и от начального значения остаётся %. За остаётся %, за — около 0,7 % (J. O. Smith, Exponentials). Если процесс приближается к цели, то за он проходит % пути. В цифровой форме время считают отсчётами: за один отсчёт, секунды, расстояние умножается на . При Гц и мс это .
Коэффициент компрессора записывается так же: соответствует . Время атаки 10 мс даёт постоянную времени около 4,55 мс.
Гиперболический тангенс и арктангенс
Гиперболический тангенс (hyperbolic tangent, tanh)гиперболический тангенс (hyperbolic tangent, tanh) — Функция tanh u = (eᵘ − e⁻ᵘ)/(eᵘ + e⁻ᵘ). Около нуля почти совпадает с u, при росте |u| плавно приближается к ±1, не достигая их. выражается через экспоненту (OpenStax Calculus, §1.5):
- аргумент, безразмерный.
При больших положительных слагаемое становится ничтожным, и дробь приближается к 1; при больших отрицательных — к −1. При любом конечном значение лежит строго между −1 и 1. Около нуля : , , , , . Замена на меняет местами и и знак числителя, поэтому функция нечётная. В C++ она называется std::tanh и объявлена в <cmath>.
Арктангенс — угол в радианах из интервала , тангенс которого равен (OpenStax, §6.3). Он тоже нечётный, в нуле имеет наклон 1 и при росте приближается к медленнее гиперболического тангенса: , . Функция сохраняет наклон 1 в нуле и приближается к ±1. В C++ арктангенс — std::atan; функция atan2 из раздела о модуле и аргументе принимает две координаты и различает четверти.
Обе функции плавно ограничивают значение: малый аргумент проходит почти без изменений, большой прижимается к пределу. Так их используют как передаточные кривые сатурации.
Сумма Σ и среднеквадратичное значение
Суммирование (summation)суммирование (summation) — Сложение значений выражения при переборе указанных индексов. Например, сумма x[n] от n = 0 до N−1 включает ровно N отсчётов. обозначают заглавной греческой буквой («сигма»). Запись означает сложить отсчёты с номерами от 0 до включительно. Таких отсчётов ровно : при берутся номера 0, 1, 2, 3. Буква внутри суммы перебирает номера и не остаётся свободным аргументом результата.
В выражении индекс выбирает отсчёт, а степень 2 относится к его значению. В формуле (4) под знаком суммы сначала возводят каждый отсчёт в квадрат, складывают квадраты, делят на число отсчётов и извлекают корень. Это среднеквадратичное значениесреднеквадратичный уровень (RMS level) — Корень из среднего квадрата значений сигнала на выбранном интервале. Имеет те же единицы, что и сигнал; у синусоиды за целое число периодов равен амплитуде, делённой на √2. (J. O. Smith, Signal Metrics).
- отсчёт номер ;
- положительное целое число отсчётов;
- результат в тех же единицах, что и отсчёты.
Пусть четыре отсчёта — , , , . Квадраты равны , , , ; сумма 0,5, среднее 0,125, корень примерно 0,3536. Обычное среднее исходных отсчётов равно нулю. В RMS положительная и отрицательная части не уничтожают друг друга, потому что суммируются квадраты. При всех нулевых отсчётах RMS тоже нулевой; для пустого набора эта формула неприменима из-за деления на .
С квадратом единицы меняются: для напряжения сумма квадратов имеет единицу В², после корня возвращаются вольты. Само среднее квадратов напряжения не выражает мощность в ваттах без модели электрической нагрузки. В цифровой обработке часто используют безразмерные отсчёты и говорят о мощности сигнала как о среднем квадрате.
Кусочные функции и интервалы
Кусочная функция (piecewise function)кусочная функция (piecewise function) — Функция, заданная разными выражениями на разных частях области допустимых аргументов. Выражение выбирается по условию, записанному рядом с ним. задаётся разными выражениями для разных значений аргумента. В фигурной скобке справа от каждой строки стоит условие выбора. В характеристике компрессора это выглядит так:
- ,
- входной и выходной уровень, dBFS;
- порог, dBFS;
- степень сжатия, безразмерная; .
При dBFS (decibels relative to full scale)dBFS (decibels relative to full scale) — Уровень цифрового сигнала в децибелах относительно полной шкалы. Для пиковых значений 0 dBFS соответствует её границе; формат с плавающей точкой допускает значения выше неё. Соглашение об опоре RMS указывают отдельно. и вход −30 dBFS удовлетворяет , поэтому выбирается первая строка: выход −30 dBFS. Для входа −8 dBFS выбирается вторая: dBFS. При действует вторая строка и даёт ровно . Строки формулы (5) выбираются по условию, их не складывают.
Интервал включает оба конца, исключает их. В левая граница включена, правая исключена: . Такой диапазон используется для фазы LFO. Углы и соответствуют одной точке окружности, поэтому достаточно хранить один из них. При переходе через вычитают , сохраняя избыток: превращается в .
В записи стрелка означает рассмотрение всё больших . При фиксированном дробь стремится к нулю, выход выше порога стремится к . Так читается переход от компрессора к идеальной статической характеристике лимитера (limiter)лимитер (limiter) — Устройство, которое не пропускает сигнал выше заданного уровня — потолка. По статической характеристике это компрессор с бесконечной степенью сжатия; границу гарантируют пиковый детектор и предварительный анализ..
Чётные и нечётные функции
Чётная функция (even function)чётная функция (even function) — Функция, для которой f(−u) = f(u) при любом u. Её график симметричен относительно вертикальной оси; примеры — косинус и модуль. не меняется при смене знака аргумента: при любом , её график симметричен относительно вертикальной оси. Нечётная функция (odd function)нечётная функция (odd function) — Функция, для которой f(−u) = −f(u) при любом u. Её график симметричен относительно начала координат; пример — синус. меняет знак вместе с аргументом: , её график симметричен относительно начала координат (OpenStax, §1.5). Косинус и модуль чётные, синус и нечётные. Подстановка в даёт , то есть : нечётная функция проходит через начало координат.
Для получаем и : функция нечётная. Для значения и не равны и не противоположны: функция ни чётная, ни нечётная. Любую функцию можно разложить на чётную часть и нечётную ; для это и .
Свойство сохраняется, если подставить в функцию синусоиду. Через полпериода синус меняет знак, , и для нечётной выход тоже меняет знак: . Из этого в статье о дисторшне следует, что симметричная передаточная кривая не создаёт чётных гармоник.
Округление и частота после наложения
Функция округленияокругление (rounding) — Замена числа ближайшим допустимым значением, например ближайшим целым для round. Выбор при равном расстоянии до двух значений определяется отдельным соглашением. выбирает ближайшее целое: , . Ровно посередине между целыми нужно отдельное соглашение. Например, разные библиотеки могут выбирать для 2,5 число 2 или 3; правило проверяют при переносе формулы в код.
В расчёте частоты после наложения используется , затем . Для Гц и Гц отношение равно 0,625, поэтому и Гц. У синуса отрицательный аргумент меняет знак, так что . Модуль Гц задаёт частоту тона, знак описывает фазовый переворот.
Если ровно посередине между целыми, варианты округления дают граничные частоты . Это особый случай дискретизации (sampling)дискретизация (sampling) — Измерение непрерывного сигнала через равные промежутки времени: вместо функции времени сохраняется последовательность отсчётов. на границе Найквиста; условия восстановления нужно читать отдельно. Значение недопустимо для этой формулы.
Бесконечная сумма и функция sinc
В идеальном восстановлении встречается сумма от до . Она охватывает всю последовательность отсчётов в обе стороны по времени. Такая запись описывает предел сумм с растущим числом слагаемых, когда он существует; её нельзя выполнить как конечный перебор всех номеров.
Функция sinc (sinc function)функция sinc (sinc function) — Нормированная функция sinc(u) = sin(πu)/(πu), со значением 1 при u = 0. В идеальном восстановлении непрерывного сигнала её сдвинутые копии взвешивают отсчётами и складывают. здесь нормирована: при , а . В нуле прямое деление даёт неопределённость . Значение 1 задают по пределу (limit): при приближении к нулю отношение приближается к 1. Например, при оно примерно 0,9836, при — 0,99984. При любом ненулевом целом синус равен нулю, поэтому sinc тоже нулевая.
- восстановленный сигнал в единицах ;
- период дискретизации, с;
- время, с;
- целый номер отсчёта.
Для каждого в формуле (6) сначала считают время относительно отсчёта , делят на , вычисляют sinc и умножают на . Затем складывают вклады. В момент отсчёта , где — целое, аргумент равен : у слагаемого sinc равна 1, у остальных — 0. Поэтому . Между отсчётами участвуют многие слагаемые; соединение точек прямыми описывает другой способ интерполяции.
Точное восстановление исходного сигнала требует условий теоремы отсчётов (sampling theorem)теорема отсчётов (sampling theorem) — В принятой низкочастотной модели непрерывный сигнал можно точно восстановить по всем точным равномерным отсчётам, если его спектр лежит строго ниже половины частоты дискретизации. Также известна как теорема Котельникова.: в принятой здесь идеальной модели спектр (spectrum)спектр (spectrum) — Представление сигнала через его частотные составляющие: их частоты, амплитуды и фазы. Для отсчётов спектр вычисляют дискретным преобразованием Фурье. целиком лежит строго ниже , отсчёты точные и известны за всё время. Это математическая модель; конечная запись и квантование (quantization)квантование (quantization) — Замена значения отсчёта одним из конечного набора представимых уровней. Разность между выбранным уровнем и исходным значением называется ошибкой квантования. требуют дополнительных оговорок (J. O. Smith, Sampling Theorem).
Предыдущее значение и рекуррентная формула
Рекуррентная формула (recurrence relation)рекуррентная формула (recurrence relation) — Правило вычисления очередного значения последовательности через предыдущие значения. Для начала вычислений нужно задать начальное состояние. вычисляет новое значение через предыдущие. Квадратные скобки обозначают сохранённое значение на предыдущем шаге. Для первого шага нужно задать начальное состояние, например дБ. В формуле (7) новое значение — взвешенное среднее предыдущего и требуемого.
- сглаженное подавление усиления, дБ;
- требуемое подавление по статической характеристике, дБ;
- вес предыдущего значения, безразмерный, .
Возьмём учебный коэффициент и постоянную цель дБ. На первом шаге получается дБ, на втором дБ, на третьем −4,625 дБ. Значение постепенно приближается к −8 дБ. Чем ближе к 1, тем больше вес прошлого и тем медленнее изменение. При результат сразу равен цели, при состояние остаётся прежним.
Коэффициент из раздела об экспоненте задаёт скорость этого процесса. Множитель относится к соглашению о времени перехода от 10 до 90 % изменения: оставшаяся доля ошибки уменьшается с 0,9 до 0,1, то есть в девять раз. Это соглашение используется в статье о компрессоре; у других реализаций определение времени может отличаться.
Если цель не меняется, значение со временем перестаёт меняться. Такое установившееся значение (steady state) находят, подставив одно и то же число вместо текущего и предыдущего значения. Для формулы (7) получается , то есть , и при выходит : сглаживание приходит точно к цели, в примере выше — к −8 дБ. Если в формуле есть ещё одно слагаемое, установившееся значение может с целью не совпасть. Так происходит у модели аналогового пикового детектора: при равных атаке и восстановлении она показывает половину постоянного уровня (статья о компрессоре).
Предыдущее подавление −2 дБ, цель −10 дБ, α = 0,5. Чему равно новое значение?
Веса прошлого и цели равны: дБ. Это середина между −2 и −10 дБ. На следующем шаге при той же цели получится −8 дБ.
Геометрическая прогрессия
Геометрическая прогрессия (geometric progression)геометрическая прогрессия (geometric progression) — Последовательность a, ar, ar², …, в которой каждое число в r раз больше предыдущего. Если |r| меньше 1, сумма всех членов равна a/(1 − r). — последовательность, в которой каждое следующее число получается из предыдущего умножением на одно и то же число : Член с номером , считая от нуля, равен . При и это 1; 0,5; 0,25; 0,125. При члены убывают по модулю, при отрицательном меняют знак через один, при растут.
Сумма первых членов при равна . Чтобы это проверить, достаточно умножить сумму на и вычесть из исходной: средние члены сократятся, останется . При степень с ростом стремится к нулю, и сумма всех членов равна ; при конечной суммы нет (Wikipedia, Geometric series). При и сумма равна 2, при — 10, при — .
Номер члена, который впервые станет меньше доли от первого, находят логарифмом: из получается . Для , то есть −60 дБ по амплитуде, и : , значит, десятый член уже меньше. Так считают затухание повторов в эхе с обратной связью, а сумма даёт высоту пиков гребенчатого фильтра.
Скользящее окно: минимум и среднее
Для некоторых расчётов нужны сразу несколько последних значений. Запись означает наименьшее из значений . Индекс под знаком перебирает целые числа от 0 до включительно, как индекс суммы . Набор этих значений называют окном. С ростом окно сдвигается: в него входит новое значение, а самое старое выходит. Среднее по такому окну, , называют скользящим средним: все значений входят в него с одинаковым весом (Smith, Moving Average Filters).
Пусть , значения до начала равны нулю, а — это 0, −2, −5, −1, 0, 0 дБ. Минимум по окну из трёх значений даёт 0, −2, −5, −5, −5, −1: число −5 держится, пока остаётся в окне. Скользящее среднее этих минимумов при равно , , и . Каждый результат не больше значения : среднее чисел, каждое из которых не больше некоторого порога, тоже не больше него. На этом свойстве держится предварительный анализ в лимитере.
Разности соседних значений
Разность (backward difference) показывает, на сколько значение изменилось за один шаг. Разность разностей называют второй разностью: . Третья и следующие разности определяются так же.
Возьмём значения 100, 130, 155, 175, 190, 200. Первые разности: 30, 25, 20, 15, 10. Вторые: −5, −5, −5, −5. Третьи: 0, 0, 0. Значения легли на параболу: у неё постоянна вторая разность. У прямой постоянна первая разность, а вторая равна нулю. В общем случае у многочлена степени при равном шаге постоянна -я разность, а все следующие равны нулю (Wikipedia, Finite difference: Polynomials).
Отсюда способ предсказать следующее значение: предположить, что -я разность равна нулю, и выразить из этого . При из получается — продолжение прямой через два последних значения. Так устроены фиксированные предсказатели FLAC; ошибка такого предсказания равна самой -й разности. Шаг между значениями должен быть одинаковым: у отсчётов это период дискретизации.
Разность по-разному действует на медленные и быстрые изменения. У значений 0,10; 0,11; 0,12 разности всего 0,01, а у знакопеременных +0,1; −0,1; +0,1 они равны ±0,2. Для синусоиды с частотой первая разность — синусоида той же частоты, амплитуда которой умножена на . При , когда отсчёты чередуют знак, множитель равен 2; при кГц и кГц — около 0,13, а на ещё более низких частотах он близок к нулю. Так дельта-сигма-модулятор уводит шум квантования к высоким частотам.
Значения 2, 5, 8, 11. Чему равны первые и вторые разности и что даст формула x[n] = 2x[n−1] − x[n−2] для следующего значения?
Первые разности: 3, 3, 3; вторые: 0, 0. Значения лежат на прямой, поэтому предсказание продолжает её: следующая разность снова равна 3.
Скорость изменения: производная
Если функция при переходе от к меняется на , отношение — средняя скорость изменения на этом отрезке, наклон прямой через две точки графика. Если шаг уменьшать к нулю, отношение приближается к числу, которое называют производной (derivative) функции в точке и обозначают или . На графике это наклон касательной, а по смыслу — мгновенная скорость изменения (OpenStax, Calculus Volume 1, §3.1).
У прямой отношение при любом шаге равно , и производная постоянна: . У в точке средний наклон при шаге равен , при шаге — , а в пределе — 6; в общем виде . Буква в записи напоминает о малых разностях: это отношение малого изменения к вызвавшему его малому изменению .
Без формулы производную оценивают численно: берут два близких значения аргумента по обе стороны точки, . Это та же идея, что у разностей соседних отсчётов, только шаг выбирают малым по сравнению с тем, как быстро меняется функция. В статье о цифровых фильтрах производная фазы по частоте даёт групповую задержку: если фаза убывает с частотой по прямой, все частоты задерживаются одинаково.
Площадь и среднее: интеграл и первообразная
Запись читается как интеграл функции от до . Это площадь между графиком и осью на отрезке от до , причём площадь над осью берётся со знаком плюс, а под осью — со знаком минус (OpenStax, Calculus Volume 1, §5.2). Если разделить её на длину отрезка , получится среднее значение функции на отрезке: высота прямоугольника той же ширины и той же площади. У постоянной функции среднее равно ей самой. У на отрезке от 0 до 2 под графиком треугольник площадью , и среднее равно .
Площадь удобно считать через первообразную (antiderivative): функцию , производная которой равна , то есть (OpenStax, §4.10). У одной функции много первообразных, они отличаются на постоянную: у подходят , и любая . Основная теорема анализа связывает площадь с первообразной: интеграл от до равен , и постоянная при вычитании пропадает (OpenStax, §5.3). Отсюда среднее значение:
- среднее значение на отрезке от до ;
- первообразная : .
Для и формула даёт : среднее прямой на отрезке — полусумма значений на концах. Для изогнутой функции это уже не так. Первообразная гиперболического тангенса — , где — гиперболический косинус (OpenStax, §6.9). Среднее на отрезке от 0 до 1 равно , тогда как полусумма значений на концах , а значение в середине .
При больших число растёт как и выходит за пределы чисел с плавающей точкой, хотя сам логарифм остаётся умеренным. Вынесем за скобку: , поэтому . Здесь экспонента не больше 1, и формула работает при любом ; в C++ второе слагаемое вычисляет std::log1p. Средние значения кривой на отрезках между отсчётами использует метод антипроизводной, который ослабляет отражения в цифровой нелинейной обработке.
Чему равно среднее значение функции f(x) = x² на отрезке от 0 до 3?
Первообразная , потому что . Среднее . Полусумма значений на концах, , больше: парабола выпукла вниз, и внутри отрезка её значения ниже прямой, соединяющей концы.
Модуль суммы и верхняя граница
Модуль суммы двух действительных чисел не больше суммы их модулей: . Это неравенство треугольника (triangle inequality). При одинаковых знаках модули складываются; при разных один вклад частично или полностью компенсирует другой. Для , имеем , тогда как . Верхняя граница может быть намного больше результата.
Для произведения . Если два входа удовлетворяют и , то . Например, коэффициенты 0,4 и 0,3 ограничивают модуль суммы сверху значением 0,7 при любых сочетаниях таких входов. Условие даёт достаточную гарантию для идеальной арифметики, но его нарушение не доказывает перегрузку: результат может быть меньше из-за компенсации. Оценка применяется в микшировании.
Линейная интерполяция
Линейная интерполяция (linear interpolation)линейная интерполяция (linear interpolation) — Оценка значения между двумя известными точками по соединяющей их прямой: a + η·(b − a) при доле η от 0 до 1. оценивает значение между двумя известными точками по прямой, которая их соединяет. Если в точке 0 известно значение , а в точке 1 — значение , то в точке , , оценка равна (J. O. Smith, Linear Interpolation). Это взвешенное среднее: веса и неотрицательны и в сумме дают 1, поэтому результат лежит между и . Например, при , и получается . Вторая запись требует одного умножения вместо двух.
Оценка точна, только если сама функция между точками — прямая. У синусоиды при получается полусумма двух соседних отсчётов. По формуле амплитуды суммы синусоид при и разности фаз амплитуда полусуммы равна . При кГц для 1 кГц это 0,998, для 10 кГц — 0,793, около −2,0 дБ, а на — ноль. Чем выше частота, тем сильнее линейная интерполяция её ослабляет; это важно для дробной задержки.
Амплитуда суммы синусоид
Пусть , где , — общая частота в Гц, — время в секундах, — разность фаз в радианах, и — амплитудные коэффициенты. Формула сложения позволяет собрать члены: (OpenStax, §7.2).
Обозначим коэффициенты при синусе и косинусе как и . Это две перпендикулярные составляющие: по теореме Пифагора длина соответствующего вектора . Его вращение даёт синусоиду с амплитудой . Такое представление суммы разобрано у Julius O. Smith.
При и получаем , поэтому . При нулевой фазе , при — 0. Формула относится к синусоидам одной частоты с постоянными коэффициентами; она даёт амплитуду всей волны. Максимум конечного набора отсчётов может быть ниже. Визуализация суммы источников использует именно .
Сумма синусоид близких частот
Если частоты различаются, разность фаз между синусоидами растёт со временем. Формула суммы синусов превращает сумму в произведение: (OpenStax, §7.4). Подставим и :
- ,
- частоты двух синусоид с амплитудой 1, Гц;
- время, с.
При близких частотах второй множитель — быстрое колебание со средней частотой . Первый множитель меняется медленно и задаёт его размах. Модуль доходит до 2 и опускается до нуля дважды за период косинуса, поэтому громкость (loudness)громкость (loudness) — Ощущение того, насколько сильным кажется звук. Зависит от звукового давления, частотного состава и условий восприятия. нарастает и спадает с частотой . Такие биениябиения (beats) — Периодическое нарастание и спад громкости суммы двух тонов близких частот. Частота биений равна модулю разности частот. слышны как пульсация. Для 220 и 221 Гц получается одна пульсация в секунду (HyperPhysics, Beats).
Формула записана для равных амплитуд. При амплитудах и размах суммы колеблется между и , до нуля он опускается только при . Если разность частот велика, отдельные колебания громкости перестают различаться; как меняется ощущение, разобрано в психоакустике. Расстройку (detune)расстройка (detune) — Небольшое отклонение частоты одного генератора от другого или от точного интервала, обычно в центах. При одновременном звучании даёт биения. осцилляторов (oscillator)осциллятор (oscillator) — Генератор повторяющегося колебания. Частота задаёт число повторений за секунду, а форма волны — изменение значения внутри одного периода. синтезатора и биения их гармоник показывает статья об осцилляторах.
Степени синуса
Квадрат и куб синусоиды раскладываются на синусоиды кратных частот. Для квадрата есть формула понижения степени (OpenStax, §7.3). Куб записывают как , а произведение раскрывают формулой (OpenStax, §7.4): . Получается:
- угол, рад.
Проверка при : слева , справа . Если , то квадрат даёт постоянную составляющую 1/2 и колебание с частотой , а куб — колебания с частотами и . Частот, не кратных , не появляется. Так же раскладываются и высшие степени: содержит частоты не выше ; при чётном — только чётные кратные и постоянную составляющую, при нечётном — только нечётные кратные. Этим объясняются гармоники после передаточной кривой.
Комплексные числа
Синусоиду одной частоты описывают два числа — амплитуда и фаза, а сумма синусоид потребовала двух перпендикулярных составляющих. Комплексное число хранит такую пару как одно число, которое можно складывать и умножать. Через комплексные числа описывают спектр и фильтры.
Комплексное число (complex number)комплексное число (complex number) — Число вида a + jb, где a и b вещественные, а мнимая единица j удовлетворяет j² = −1. Изображается точкой или вектором на плоскости; модуль и аргумент хранят длину и угол, например амплитуду и фазу синусоиды. записывают как , где и — вещественные числа, а — мнимая единица (imaginary unit): число, квадрат которого равен −1, . Среди вещественных чисел такого нет, потому что квадрат вещественного числа неотрицателен. Число называют вещественной частью (real part) и обозначают , число — мнимой частью (imaginary part), . Обе части — обычные вещественные числа: у вещественная часть 3, мнимая −2. При получается вещественное число, так что вещественные числа входят в комплексные.
В математике и физике мнимую единицу обозначают , в электротехнике и цифровой обработке сигналов — , потому что буквой там обозначают ток (J. O. Smith, Complex Basics). На сайте используется .
Число изображают точкой с координатами на комплексной плоскости (complex plane): по горизонтальной оси откладывают вещественную часть, по вертикальной — мнимую (J. O. Smith, The Complex Plane). Число лежит на 3 вправо и на 4 вверх от нуля, — на 1 вниз. Точку удобно считать концом вектора, проведённого из начала координат.
Складывают части по отдельности: . Например, . На плоскости это сложение векторов: второй вектор откладывают от конца первого.
При умножении раскрывают скобки как обычно и заменяют на −1. Получается формула (8).
- , , ,
- вещественные и мнимые части множителей, вещественные числа.
Умножим на : . Точка перешла в , то есть повернулась на четверть оборота против часовой стрелки, а расстояние до нуля осталось равным 5. Причину объясняет умножение в полярной форме.
Модуль и аргумент
Модуль (modulus) комплексного числа — длина его вектора, по теореме Пифагора . Для это . При получается , то есть обычный модуль вещественного числа.
Аргумент (argument) — угол вектора, отсчитанный от положительного направления вещественной оси против часовой стрелки, как на единичной окружности. Его выражают в радианах и обычно берут в диапазоне от до (J. O. Smith, More Notation and Terminology). У аргумент примерно 0,9273 рад, или 53,1°. У нуля направления нет, и его аргумент не определён.
Угол находят функцией atan2(b, a): она учитывает знаки обеих частей и выбирает нужную четверть. Обычный арктангенс отношения для этого не годится: у и отношение одинаковое, и он даст для обоих , хотя у второго числа угол .
Зная модуль и аргумент , части восстанавливают так: , . Это те же проекции, что на рисунке 1, только радиус равен . Запись называют полярной (тригонометрической) формой, а — алгебраической.
В C++ комплексное число хранит шаблон std::complex<T> из заголовка <complex>; для звука обычно выбирают float. Арифметические операторы работают по правилам выше. std::abs возвращает модуль, std::arg — аргумент: он равен std::atan2(imag, real) и лежит в . std::norm возвращает квадрат модуля без извлечения корня, а std::polar(r, theta) строит число по модулю и углу; модуль должен быть неотрицательным (cppreference, std::arg, std::polar).
#include <complex>
const std::complex<float> z { 3.0f, 4.0f }; // 3 + j4
const std::complex<float> w { 1.0f, -2.0f }; // 1 − j2
const std::complex<float> j { 0.0f, 1.0f };
const auto sum = z + w; // (4, 2)
const auto turned = j * z; // (−4, 3): поворот на π/2
const float r = std::abs (z); // 5
const float theta = std::arg (z); // ≈ 0.9273 рад
const float power = std::norm (z); // 25 = 3² + 4², без корня
const auto back = std::polar (r, theta); // снова ≈ (3, 4)Формула Эйлера
Формула Эйлера (Euler’s formula) связывает экспоненту мнимого аргумента с косинусом и синусом (J. O. Smith, Euler’s Identity):
- угол, рад, любое вещественное число.
Возвести в мнимую степень повторным умножением нельзя, поэтому формулу (9) здесь принимаем без вывода; доказательство через степенные ряды приведено у J. O. Smith. Из неё следует, что модуль равен , а угол равен : число — точка единичной окружности. Например, , , , . Поэтому полярную форму записывают короче: .
Для мнимых показателей действует знакомое правило степеней: при умножении показатели складываются, . Отсюда правило умножения в полярной форме:
- ,
- модули множителей, ;
- ,
- их аргументы, рад.
Модули перемножаются, углы складываются. Умножение на число с модулем 1 только поворачивает вектор, умножение на положительное вещественное число только меняет его длину. Число поворачивает на четверть оборота, как в примере с . Множитель укорачивает вектор вдвое и поворачивает его на 45° по часовой стрелке. Если сумма углов вышла за , вычитают , как при переносе фазы: точка окружности от этого не меняется.
Чему равны модуль и аргумент произведения (1 + j) · j? Найдите их двумя способами.
В полярной форме и , у модуль 1 и аргумент . Произведение имеет модуль и аргумент . Алгебраически : модуль , угол .
Сопряжённое число
Сопряжённое (complex conjugate) к числу — число : вещественная часть та же, знак мнимой меняется на противоположный. Его обозначают также . На плоскости сопряжение отражает точку относительно вещественной оси (J. O. Smith, More Notation and Terminology). Модуль при этом не меняется, а аргумент меняет знак: у сопряжённое , модуль 5 и угол −53,1°. В полярной форме : сопряжённое к вектору, вращающемуся против часовой стрелки, вращается по часовой.
Произведение числа на сопряжённое по формуле (8) вещественно: . Для это . Сумма тоже вещественна, поэтому ; на этом держится запись косинуса через две экспоненты в разделе об отрицательных частотах. В C++ сопряжённое возвращает std::conj. У спектра вещественного сигнала верхняя половина бинов сопряжена нижней.
Комплексные корни квадратного уравнения
Уравнение имеет два корня . Это та же формула , записанная для , , (OpenStax, Precalculus 2e, §3.2). Если , под корнем отрицательное число, и вещественных корней нет. С мнимой единицей корень из отрицательного числа записывается как , и корни получаются парой сопряжённых чисел: . У уравнения с вещественными коэффициентами комплексные корни всегда идут такими парами (там же, §3.1).
Пример: . Здесь , и . Модуль обоих корней , аргумент ±45°. Проверка подстановкой: , , и вместе с сумма равна нулю.
Обратный переход тоже нужен. Если корни — пара , то . После раскрытия скобок и : сумма числа с сопряжённым равна удвоенной вещественной части, а произведение — квадрату модуля. В примере и . Так по положению пары точек на плоскости находят коэффициенты уравнения и наоборот; на этом построены нули и полюсы цифровых фильтров.
Вращающийся вектор
Если угол растёт со временем, точка движется по окружности. Подставим угол из формулы синусоиды (2):
- комплексное значение в момент , безразмерное;
- частота, Гц: число оборотов вектора за секунду, может быть отрицательной.
Модуль всегда равен 1, а угол за секунду увеличивается на радиан: вектор делает оборотов в секунду. Такую функцию называют комплексной синусоидой (complex sinusoid). Её мнимая часть совпадает с синусоидой формулы (2) при : обычная синусоида — вертикальная проекция точки, бегущей по окружности (J. O. Smith, Projection of Circular Motion). Вещественная часть даёт косинусоиду той же частоты, опережающую синус на четверть периода.
Для отсчётов подставляют и получают , где — угол поворота за один отсчёт, рад. При Гц и Гц : каждый отсчёт поворачивает вектор на 45°. По формуле (10) следующий отсчёт получается из предыдущего умножением на одно и то же число: . Это геометрическая прогрессия со знаменателем, модуль которого равен 1, поэтому её члены не растут и не затухают.
- Вещественная частьRe z = cos θ ≈ 0,71
- Мнимая частьIm z = sin θ ≈ 0,71
Мнимая часть вектора во времени Мнимая часть sin θ от 0 до 2 с при f = 0,5 Гц и φ = 45° (0,785 рад). В момент 0,00 с значение 0,71.
θ = 2π·0,5·0,00 + 0,785 ≈ 0,785 рад
- вектор z и момент t
- вещественная часть Re z
- мнимая часть Im z
z ≈ 0,71 + j0,71. Положительная частота: вектор вращается против часовой стрелки, 0,5 оборота в секунду, период 2 с. Мнимая часть — синусоида, вещественная — косинусоида той же частоты.
В визуализации 2 вектор вращается в реальном времени. При Гц он делает оборот за 2 с, и на графиках помещается один период каждой проекции. Ползунок фазы поворачивает вектор в начальный момент и сдвигает обе кривые по времени. Отрицательная частота меняет направление вращения.
Отрицательные частоты
При угол убывает, и вектор вращается по часовой стрелке. По вещественной синусоиде направление вращения не различить: косинус чётный, , поэтому . Возьмём два вектора с частотами и и нулевой фазой. Их мнимые части и взаимно уничтожаются, вещественные совпадают. Отсюда формула (12) (J. O. Smith, Positive and Negative Frequencies).
- угол, рад.
Вещественная косинусоида с амплитудой 1 — сумма двух векторов длиной 1/2, вращающихся с одинаковой скоростью в противоположные стороны. В каждый момент их мнимые части противоположны, и сумма остаётся на вещественной оси. Так устроена любая вещественная синусоида: в ней поровну составляющих на частотах и . Поэтому у вещественного сигнала модули спектра на частотах и совпадают, и для его описания достаточно неотрицательных частот.
Отрицательная частота уже встречалась при расчёте частоты после наложения: Гц у вещественной синусоиды означает тон 3000 Гц с перевёрнутой фазой. Для одного вектора знак частоты задаёт направление вращения и проверяется по мнимой части.
Амплитуда и фаза одним числом
Синусоиду с амплитудой и начальной фазой можно получить из вращающегося вектора, умножив его на постоянное комплексное число:
- комплексная амплитуда: модуль в единицах сигнала, аргумент в радианах.
По формуле (10) произведение — вектор длиной под углом , а его вещественная часть — нужная косинусоида. Множитель одинаков для всех синусоид частоты . Отличаются они только числом : его модуль — амплитуда, аргумент — начальная фаза. Число называют комплексной амплитудой (complex amplitude), в англоязычной литературе — phasor (J. O. Smith, Phasor). Например, при и получается . Для синуса берут мнимую часть того же произведения: .
Вещественная часть суммы равна сумме вещественных частей, а общий множитель выносится за скобки. Поэтому сумма синусоид одной частоты — синусоида той же частоты с комплексной амплитудой : её амплитуда , фаза . Вернёмся к примеру из раздела о сумме синусоид: при и . Комплексные амплитуды слагаемых и , сумма . Её модуль совпадает с , а аргумент даёт фазу суммы. В общем случае : вещественная и мнимая части — это составляющие и того раздела.
Так же разбирают обработку, которая складывает задержанные копии сигнала. Полусумма двух соседних отсчётов синусоиды, как в линейной интерполяции при , умножает комплексную амплитуду на , где . Вынесем : по формуле (12). Модуль — тот же множитель амплитуды, что получен в разделе об интерполяции, а угол означает сдвиг на половину отсчёта.
Запишите сумму 0,6 sin θ + 0,8 cos θ одной синусоидой через комплексные амплитуды.
Косинус — синус, опережающий его на четверть оборота: . Комплексные амплитуды слагаемых и , сумма . Её модуль , аргумент рад. Получается .
Вероятность, распределение и ожидаемое среднее
Вероятность (probability)вероятность (probability) — Число от 0 до 1, описывающее возможность события в заданной модели. Не обещает точную долю события в короткой серии опытов. описывает, насколько возможно событие в заданной модели: 0 означает невозможное, 1 — достоверное. Значение 0,25, или 25 %, не обещает ровно одно событие в каждой четвёрке опытов. Оно задаёт ожидаемую долю при большом числе повторений в одинаковых условиях.
Равномерное распределение (uniform distribution)равномерное распределение (uniform distribution) — Распределение, в котором интервалы значений одинаковой ширины имеют одинаковую вероятность. Не определяет временные связи между отсчётами. на отрезке означает, что интервалы одинаковой ширины имеют одинаковую вероятность. В непрерывной модели от −1 до +1 интервал шириной 0,2 занимает десятую часть диапазона: вероятность попадания в него 0,1. Гистограмма (histogram)гистограмма (histogram) — График числа наблюдений в интервалах значений. Показывает распределение значений, но не сохраняет их порядок во времени. конечного набора отсчётов будет неровной. Распределение не задаёт порядок значений во времени; для белого шума (white noise)белый шум (white noise) — Шум с постоянной спектральной плотностью мощности в рассматриваемой полосе. Полосы одинаковой ширины в герцах содержат одинаковую ожидаемую мощность. этот порядок тоже важен (Smith, Histogram, Pmf and Pdf).
Математическое ожидание (expected value)математическое ожидание (expected value) — Среднее значение, заданное вероятностной моделью. Для конечного набора возможных значений вычисляется как их сумма с весами-вероятностями. — среднее, заданное распределением случайной величины . Квадратные скобки здесь означают аргумент ожидания, а не номер отсчёта. Для конечного числа возможных значений это сумма значений с весами-вероятностями: , где и (OpenStax, Mean or Expected Value).
Пусть источник выдаёт −1 и +1 с вероятностями 0,5 и 0,5. Тогда . Но четыре фактически полученных значения могут быть −1, +1, +1, +1: их измеренное среднее равно 0,5. Модель и отдельное измерение не обязаны совпасть. Для симметричного непрерывного равномерного распределения от −1 до +1 ожидание также равно нулю (Smith, Signal vs. Underlying Process).
Гистограммагистограмма (histogram) — График числа наблюдений в интервалах значений. Показывает распределение значений, но не сохраняет их порядок во времени. делит диапазон значений на интервалы и показывает, сколько отсчётов попало в каждый. Она помогает оценить распределение, но теряет сведения о порядке отсчётов. Статистическая независимость (statistical independence)статистическая независимость (statistical independence) — Знание значения одной случайной величины не меняет вероятностей значений другой. Это более сильное условие, чем отсутствие линейной корреляции. означает, что знание одного значения не меняет вероятности другого. У независимых отсчётов со значениями −1 и +1 с равными вероятностями знание предыдущего +1 не меняет вероятность следующего +1: она остаётся 0,5 (OpenStax, независимые события). Некоррелированность (uncorrelatedness) — более слабое условие: отсутствует линейная статистическая связь, хотя другая зависимость может сохраниться. В модели белого шума с неизменными статистическими свойствами достаточно некоррелированности разных отсчётов для постоянной PSD (power spectral density, PSD)спектральная плотность мощности (power spectral density, PSD) — Распределение мощности сигнала на единицу частоты. Для безразмерных отсчётов измеряется в 1/Гц; мощность полосы соответствует площади под графиком PSD.; независимость обычно выбирают как более сильное удобное предположение (Julius O. Smith, White Noise).
Среднее значение фрагмента (sample mean)среднее значение фрагмента (sample mean) — Сумма значений отсчётов конечного фрагмента, делённая на их число. Может отличаться от математического ожидания порождающего процесса. обозначим («икс с чертой»):
- отсчёт с номером ;
- положительное число отсчётов во фрагменте;
- среднее, в тех же единицах, что отсчёты.
В формуле RMS усредняют квадраты, а затем берут корень. Поэтому нулевое среднее не означает нулевой RMS. При симметричном равномерном распределении от − до + средний квадрат модели равен , и RMS длинного шума приближается к . При это примерно 0,1732. Это свойство равномерной модели; для другого распределения с теми же границами ответ может отличаться (Smith, Digital Noise Generation).
Сумма случайных величин
Пусть и — некоррелированные случайные величины с нулевыми ожиданиями. Средний квадрат их суммы раскрывается как , а средний член для таких величин равен нулю. Остаётся : средние квадраты, то есть мощности, складываются, а RMS — нет. При сложении независимых шумов складываются их мощности (Smith, Digital Noise Generation).
Возьмём два независимых равномерных числа от −0,5 до +0,5. По формуле при средний квадрат каждого равен , RMS — около 0,289. Средний квадрат суммы , RMS около 0,408, а не .
Распределение суммы уже не равномерное. Значения около нуля получаются многими сочетаниями слагаемых, а крайние ±1 — только когда оба слагаемых у одного края. Плотность растёт линейно от −1 до 0 и так же убывает до +1: распределение треугольное. Сумма многих независимых слагаемых приближается к нормальному распределению (Smith, Digital Noise Generation). Треугольное распределение используют в TPDF-дизеринге.
Обратная пропорциональность
Запись читается « обратно пропорционально »: при фиксированной константе получаем , для положительных . Например, при значения , 20 и 40 дают , 5 и 2,5. При удвоении аргумента результат уменьшается вдвое.
Так читают закон для розового шума (pink noise)розовый шум (pink noise) — Шум, PSD которого приблизительно обратно пропорциональна частоте в рабочей полосе: спад около 3 дБ на октаву и примерно одинаковая мощность октав.. Отношение PSD на частотах и равно 1/2, что соответствует дБ. При сравнении амплитуд используют множитель 20, при сравнении мощностей — 10; подробности есть в разделе о децибелах.
Плотность и мощность частотной полосы
Спектральная плотность мощностиспектральная плотность мощности (power spectral density, PSD) — Распределение мощности сигнала на единицу частоты. Для безразмерных отсчётов измеряется в 1/Гц; мощность полосы соответствует площади под графиком PSD. показывает мощность на герц. Если отсчёты безразмерны, её единица — . При постоянной PSD полоса шириной 100 Гц содержит мощность . Полоса 200 Гц содержит 0,0002. Мощность в этом цифровом расчёте — средний квадрат, безразмерная величина.
Если PSD меняется по частоте, полосу можно разбить на узкие ячейки, умножить PSD каждой ячейки на её ширину и сложить. Это приближённая площадь под графиком PSD. Для двух ячеек шириной 10 Гц с PSD и получается . Точность зависит от ширины ячеек и того, как меняется плотность внутри них (SciPy, Welch: density и spectrum).
Для сравнения мощности октав используем полосы . При переходе к каждая соответствующая частотная ячейка вдвое шире. У розового закона её PSD вдвое меньше, поэтому произведение плотности на ширину сохраняется. У белого шума PSD постоянна, и мощность следующей октавы удваивается (Whittle, характеристики розового шума).
Порядок роста: запись O
Алгоритмы сравнивают по тому, как число операций растёт с размером входа . Точное число зависит от деталей реализации, поэтому записывают только порядок роста: , читается «O большое от », если начиная с некоторого выполняется с постоянной , которая от не зависит (Wikipedia, Big O notation). В оставляют самое быстрорастущее слагаемое без постоянного множителя: и — оба , — .
Сумма квадратов отсчётов для RMS требует умножений и сложений — : при удвоении работа удваивается. Два вложенных цикла по значений дают действий — : при удвоении работа учетверяется. Если на каждом шаге задача делится пополам, шагов — столько раз можно разделить на 2 до единицы (логарифм). При это 10 шагов. Если на каждом из шагов обрабатываются все значений, получается ; основание логарифма в такой записи не указывают, потому что оно меняет только постоянный множитель.
Числа для : , , в 102 раза больше. При — 106 496 и 67 108 864, разница уже в 630 раз. Запись O не говорит, какой алгоритм быстрее при малых : постоянные множители в ней отброшены. Она показывает, как растёт работа при больших ; так сравнивают ДПФ и БПФ — и .
Математика в статьях сайта
- Звуковая волна: обратная величина , единицы, синус и перевод углов в сдвиг по времени.
- Дискретизация: и , неравенство для полосы частот, округление, sinc и сумма по отсчётам; знак частоты после наложения объясняет раздел об отрицательных частотах.
- АЦП и ЦАП: степени двойки, деление диапазона на число кодов, модуль ошибки, приближённая формула сигнал/шум, логарифм выигрыша от передискретизации и разность ошибок в дельта-сигма-модуляторе.
- Аудиоданные в программах: целые индексы от 0 до , произведения для числа отсчётов и байтов, деление для длительности.
- Устройство WAV-файла: шестнадцатеричная запись байтов, сборка числа из байтов по основанию 256, остаток от деления на 2 для байта выравнивания.
- Уровень сигнала и кривые равной громкости: логарифм отношения, сумма квадратов, корень и шкалы графика.
- LFO: доли, перенос угла в полуоткрытый интервал, модуль и кусочные функции. Например, переводит диапазон в : сначала сдвигает его в , затем уменьшает вдвое.
- Форматы сжатия звука: произведение частоты, разрядности (bit depth)разрядность (bit depth) — Число бит для представления одного квантованного отсчёта. B бит дают 2ᴮ кодов; при равномерном квантовании шаг зависит также от полного диапазона сигнала. и числа каналов для битрейта (bit rate)битрейт (bit rate) — Число бит на секунду звучания. У несжатого PCM равен произведению частоты дискретизации, разрядности и числа каналов: для CD 1 411 200 бит/с., разности соседних отсчётов для предсказания, деление на степень двойки с остатком в кодах Райса.
- Компрессор: вычитание отрицательных уровней, кусочная характеристика, экспонента, использование предыдущего состояния и установившееся значение рекуррентной формулы.
- Лимитер: минимум и среднее по скользящему окну, логарифм модуля отсчёта, косинус в оценке пика между отсчётами.
- Осцилляторы синтезатора: дробные степени двойки для нот, интервалов и центов, остаток от деления при отражении частот, биения и верхняя граница суммы.
- Однополюсный фильтр нижних частот: рекуррентная формула для звуковых отсчётов, экспонента и постоянная времени, степень в реакции на скачок.
- Дизеринг и формирование шума: средние квадраты равномерного и треугольного шума и их сумма, логарифм отношения ширины полос для шума в узкой полосе, разности ошибок в обратной связи формирования шума.
- Линия задержки: остаток от деления и маска для индекса кольцевого буфера, геометрическая прогрессия и логарифм для повторов эха, амплитуда суммы синусоид в гребенчатом фильтре, линейная интерполяция дробной задержки; её множитель выводится через комплексные амплитуды.
- Микширование сигналов: верхняя граница модуля суммы и амплитуда суммы синусоид одной частоты; ту же амплитуду даёт сумма комплексных амплитуд.
- Спектр сигнала: сумма с комплексной экспонентой, модуль и аргумент, сопряжённые числа для симметрии спектра, частота бина как обратная пропорциональность длительности кадра, логарифм для децибел и шкалы частот, порядок роста и .
- Цифровые фильтры: сумма с комплексной экспонентой для частотной характеристики, модуль и аргумент для АЧХ и ФЧХ, комплексные корни квадратного уравнения для полюсов биквада, производная фазы для групповой задержки.
- Дисторшн и сатурация: степени синуса для гармоник после кривой, чётные и нечётные функции для симметричной кривой, гиперболический тангенс и арктангенс как мягкие кривые, логарифм для уровней гармоник в децибелах, экспонента в коэффициенте фильтра постоянной составляющей.
- Алиасинг в нелинейной обработке: первообразная и среднее значение в методе антипроизводной, как первообразная , множитель полусуммы соседних отсчётов, частота после наложения для сочетаний тонов.
Источники
-
Smith J. O. III. Spectral Audio Signal Processing. White Noise. в списке литературы → — некоррелированные отсчёты, постоянная PSD и независимость цвета шума от распределения амплитуд.
-
Illowsky B., Dean S. Introductory Statistics 2e. §3.2: Independent and Mutually Exclusive Events. в списке литературы → — смысл независимости.
-
Illowsky B., Dean S. Introductory Statistics 2e. §4.2: Mean or Expected Value and Standard Deviation. в списке литературы → — среднее по вероятностям и отличие от результатов короткого опыта.
-
Smith S. W. The Scientist and Engineer’s Guide to Digital Signal Processing. Гл. 2.3: Signal vs. Underlying Process, 2.4: Histogram, Pmf and Pdf и 2.6: Digital Noise Generation. в списке литературы → — распределение, измеренные статистики, равномерные случайные числа.
-
Whittle R. DSP Generation of Pink Noise. в списке литературы → — PSD, закон и сравнение мощности октав.
-
SciPy. Welch — смысл плотности мощности и нормирование спектральных оценок.
-
Wikipedia. Geometric series — члены и частичная сумма геометрической прогрессии, сумма при .
-
Smith J. O. III. Physical Audio Signal Processing for Virtual Musical Instruments and Audio Effects. Linear Interpolation. в списке литературы → — линейная интерполяция между двумя соседними отсчётами.
-
Рабочий текст стандарта C++: побитовый AND, OR, унарные операторы, сдвиги, умножение и деление — операции с битами целых, ограничения типов, частное и остаток при делении целых.
-
Wikipedia. Finite difference — разности назад, разности высших порядков и постоянная разность многочлена (раздел Polynomials).
-
Wikipedia. Big O notation — определение через постоянную и порог, отбрасывание постоянных множителей и младших слагаемых, для БПФ.
-
Abramson J. и др. Precalculus 2e. §3.1: Complex Numbers и §3.2: Quadratic Functions. в списке литературы → — формула корней квадратного уравнения, комплексные корни при отрицательном числе под корнем (пример 9), сопряжённые пары решений.
-
Strang G., Herman E. Calculus Volume 1. §3.1: Defining the Derivative. в списке литературы → — производная как предел отношения разностей, наклон касательной и мгновенная скорость изменения.
-
Strang G., Herman E. Calculus Volume 1. §4.10: Antiderivatives, §5.2: The Definite Integral, §5.3: The Fundamental Theorem of Calculus и §6.9: Calculus of the Hyperbolic Functions. в списке литературы → — первообразная и её постоянная, интеграл как площадь со знаком, среднее значение функции на отрезке, основная теорема анализа (теорема 5.5), гиперболический косинус и интеграл как .
-
Abramson J. и др. Precalculus 2e. §1.1: Functions and Function Notation. в списке литературы → — функция и её аргумент.
-
Abramson J. и др. Precalculus 2e. §5.1: Angles. в списке литературы → — радианы, дуга и перевод градусов.
-
Abramson J. и др. Precalculus 2e. §5.4: Right Triangle Trigonometry и §5.2: Unit Circle, Sine and Cosine Functions. в списке литературы → — отношения сторон и координаты на окружности.
-
Abramson J. и др. Precalculus 2e. §4.3: Logarithmic Functions, §4.5: Logarithmic Properties и §4.1: Exponential Functions. в списке литературы → — основания логарифмов, обратная операция и экспонента.
-
Davies S. A Cool Brisk Walk Through Discrete Mathematics. §7.3: Hexadecimal (base 16) и §7.4: Binary (base 2). в списке литературы → — позиционная запись, биты, байт из 8 бит, шестнадцатеричная цифра как 4 бита, дополнительный код.
-
Smith J. O. III. Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications. Decibels, Signal Metrics, Sampling Theorem и Exponentials. в списке литературы → — децибелы, RMS, идеальная интерполяция через sinc и постоянная времени экспоненты.
-
MathWorks. compressor, Algorithms — статическая характеристика и коэффициенты сглаживания атаки и восстановления.
-
Abramson J. и др. Precalculus 2e. §7.2: Sum and Difference Identities. в списке литературы → — формулы сложения углов.
-
Abramson J. и др. Precalculus 2e. §7.4: Sum-to-Product and Product-to-Sum Formulas. в списке литературы → — сумма синусов как произведение.
-
Nave C. R. HyperPhysics. Cents и Beats. в списке литературы → — цент как сотая доля темперированного полутона и частота биений как разность частот.
-
Smith J. O. III. Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications. Sinusoids at the Same Frequency. в списке литературы → — сумма синусоид через две перпендикулярные составляющие.
-
Smith J. O. III. Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications. Complex Basics, The Complex Plane, More Notation and Terminology, Euler’s Identity и Proof of Euler’s Identity. в списке литературы → — обозначение , сложение и умножение, модуль и угол через atan2, полярная форма и умножение в ней, сопряжённое число как отражение относительно вещественной оси, формула Эйлера.
-
Smith J. O. III. Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications. Complex Sinusoids, Projection of Circular Motion, Positive and Negative Frequencies и Phasor. в списке литературы → — комплексная синусоида и её проекции, косинус и синус через две экспоненты, комплексная амплитуда.
-
cppreference. std::complex, std::arg и std::polar — шаблон комплексного числа,
abs,norm, диапазонargи условияpolar. -
Smith S. W. The Scientist and Engineer’s Guide to Digital Signal Processing. Гл. 15.1: Implementation by Convolution. в списке литературы → — скользящее среднее как среднее последних отсчётов с одинаковыми весами.
Связи
Связи списком
Ссылается на
- Алиасинг в нелинейной обработке: интермодуляция и передискретизация
- Аудиоданные в программах: представление отсчётов, каналы, кадры и буферы
- АЦП и ЦАП
- Дизеринг и формирование шума: как понизить разрядность без искажений
- Дискретизация: отсчёты, период и частота дискретизации
- Дисторшн и сатурация: передаточная кривая и гармоники
- Звуковая волна и аналоговый аудиосигнал
- Кривые равной громкости: как частота и уровень звука влияют на восприятие
- Линия задержки: кольцевой буфер, эхо и обратная связь
- Микширование сигналов: усиление, фаза и запас уровня
- Однополюсный фильтр нижних частот
- Осцилляторы синтезатора: формы, расстройка и саб-осциллятор
- Принцип работы компрессора
- Принцип работы лимитера
- Психоакустика: как слух воспринимает звук
- Спектр сигнала: ДПФ и БПФ
- Теория музыки: ноты, ритм и гармония
- Уровень сигнала: децибелы, dBFS, пик, RMS и LUFS
- Устройство WAV-файла: RIFF, чанки, fmt и data
- Форматы сжатия звука: AIFF, FLAC и MP3
- Целочисленный PCM: байты, знак и перевод во float
- Цифровые фильтры: импульсная характеристика, КИХ и БИХ
- LFO: низкочастотный генератор и модуляция
Ссылаются сюда
- Алиасинг в нелинейной обработке: интермодуляция и передискретизация
- Аудиоданные в программах: представление отсчётов, каналы, кадры и буферы
- АЦП и ЦАП
- Белый и розовый шум: спектр и генерация
- Дизеринг и формирование шума: как понизить разрядность без искажений
- Дискретизация: отсчёты, период и частота дискретизации
- Дисторшн и сатурация: передаточная кривая и гармоники
- Звук в пространстве: панорама, задержка, реверберация и мид-сайд
- Звуковая волна и аналоговый аудиосигнал
- Как устроен звук: первый обзор
- Кривые равной громкости: как частота и уровень звука влияют на восприятие
- Линия задержки: кольцевой буфер, эхо и обратная связь
- Микширование сигналов: усиление, фаза и запас уровня
- Огибающая ADSR и VCA: как нота начинается и затихает
- Однополюсный фильтр нижних частот
- Осцилляторы синтезатора: формы, расстройка и саб-осциллятор
- Принцип работы компрессора
- Принцип работы лимитера
- Психоакустика: как слух воспринимает звук
- Рост разрядности: от 16 бит CD к 24 битам и float в DAW
- Спектр сигнала: ДПФ и БПФ
- Теория музыки: ноты, ритм и гармония
- Тремоло: глубина модуляции и усиление
- Уровень сигнала: децибелы, dBFS, пик, RMS и LUFS
- Устройство WAV-файла: RIFF, чанки, fmt и data
- Форматы сжатия звука: AIFF, FLAC и MP3
- Целочисленный PCM: байты, знак и перевод во float
- Цифровые фильтры: импульсная характеристика, КИХ и БИХ
- Dry/wet и bypass: исходный и обработанный сигнал в плагине
- LFO: низкочастотный генератор и модуляция