Математика для аудио

Как читать формулы с синусами, логарифмами и суммами в статьях о звуке?

Опубликовано Дополнено 30 мин чтения

В треках:Программист, этап 2

Формула x(t)=Asin⁡(2πft)x(t) = A\sin(2\pi ft) задаёт порядок вычисления: взять время, умножить его на частоту (frequency)частота (frequency) — Число полных колебаний за секунду. Обозначается f и измеряется в герцах; 1 Гц означает одно колебание в секунду. и полный угол оборота, вычислить синус (sine)синус (sine) — Вертикальная координата точки на единичной окружности под заданным углом от положительного направления горизонтальной оси. Для острого угла прямоугольного треугольника равен отношению противолежащего катета к гипотенузе. и умножить результат на амплитуду (amplitude)амплитуда (amplitude) — Наибольший модуль отклонения колеблющейся величины от равновесного значения. Для синусоиды обозначается A; единицы совпадают с единицами сигнала.. Чтобы пользоваться этой формулой, нужно понимать обозначения и порядок действий.

Здесь собраны математические приёмы из статей сайта: от дробей и единиц до восстановления через sinc и сглаживания в компрессоре (dynamic range compressor)компрессор (dynamic range compressor) — Устройство или программа, которая ослабляет сигнал, когда его уровень выше порога, и тем сужает динамический диапазон.. Для чтения достаточно арифметики; примеры можно повторять на калькуляторе. К нужному приёму можно возвращаться через оглавление.

Буквы, индексы и порядок действий

Буква в формуле обозначает величину: tt — время, ff — частоту, AA — амплитуду. Значение и единицу задаёт пояснение рядом с формулой. Одна буква может иметь разный смысл в разных статьях: TT бывает периодом (period)период (period) — Время одного полного повторения периодического колебания. Обозначается T, измеряется в секундах и связано с частотой как T = 1/f. в секундах или порогом (threshold)порог (threshold) — Уровень, начиная с которого компрессор или лимитер ослабляет сигнал, а экспандер или гейт — перестаёт ослаблять. компрессора в децибелах (decibel)децибел (decibel) — Логарифмическая единица отношения двух величин: для амплитуд L = 20 lg(A/A₀), для мощностей — 10 lg(P/P₀). Смысл числа задаёт опорная величина..

Нижний индекс уточняет название: fsf_s — частота дискретизации (sample rate)частота дискретизации (sample rate) — Число отсчётов в каждом канале за одну секунду, то же число кадров аудиоданных в секунду. Измеряется в герцах: 44 100 Гц означает 44 100 отсчётов на канал в секунду., ArefA_\text{ref} — опорная амплитуда. Это не умножение на ss или на ref. Напротив, ftft и f⋅tf\cdot t означают произведение. Греческие буквы тоже служат обозначениями: π\pi («пи») — постоянное число примерно 3,14159, φ\varphi («фи») часто означает фазу (phase)фаза (phase) — Положение внутри периода колебания, выраженное углом: полный период соответствует 360°, или 2π радиан. Начальная фаза — её значение в момент t = 0., α\alpha («альфа») — коэффициент. Символ Δ\Delta («дельта») обычно обозначает изменение: Δt\Delta t — интервал времени.

Знак == сообщает точное равенство, ≈\approx — приближённое: 1/3≈0,3331/3 \approx 0{,}333. Знаки << и >> читаются «меньше» и «больше», ≤\leq и ≥\geq включают равенство. Многоточие в n=0,1,2,…n = 0,1,2,\ldots означает продолжение того же ряда целых чисел.

Скобки задают, что вычислять вместе. Дробная черта группирует весь числитель и знаменатель: x−TR\frac{x-T}{R} означает сначала вычесть TT из xx, затем разделить результат на RR. При x=−8x = -8, T=−20T = -20 и R=4R = 4 получается (−8−(−20))/4=12/4=3(-8-(-20))/4 = 12/4 = 3. Вычитание отрицательного числа превращается в прибавление.

В выражении 2+3⋅42 + 3\cdot 4 умножение выполняется раньше сложения, поэтому результат 14. В (2+3)⋅4(2+3)\cdot 4 результат 20. Степени (power)степень (power) — При положительном целом показателе m запись aᵐ означает произведение m одинаковых множителей a. Показатель 0 даёт 1 при ненулевом основании, отрицательный целый показатель — обратную величину соответствующей положительной степени. вычисляют раньше умножения; когда порядок может быть неясен, скобки устраняют неоднозначность.

Отношения, доли и единицы

Для положительных величин отношение a/ba/b показывает масштаб aa относительно bb. При одинаковых единицах они сокращаются: 2 В/1 В=22\,\text{В}/1\,\text{В}=2. Доля 0,25 соответствует 25 %: проценты переводят в доли делением на 100. Поэтому глубина модуляции (modulation depth)глубина модуляции (modulation depth) — Величина изменения управляемого параметра. Её единицы и шкала зависят от параметра: например, глубина может задавать отклонение частоты в герцах или долю ослабления звука. 75 % в формуле записывается как D=0,75D=0{,}75.

Приставки меняют масштаб единицы: 1 кГц = 1000 Гц, 1 мс = 0,001 с, 1 мкс = 0,000001 с. Частота 1 Гц означает одно повторение за секунду. Для расчёта периода частоту подставляют в герцах:

T=1fT = \frac{1}{f}
TT
время одного повторения, с;
ff
число повторений за секунду, Гц; f>0f > 0.

Для f=1000f=1000 Гц формула (1) даёт T=0,001T=0{,}001 с, то есть 1 мс. Удвоение частоты уменьшает период вдвое. Чтобы выразить время в миллисекундах сразу, можно считать 1000/f1000/f: при 48 000 Гц период дискретизации (sampling period)период дискретизации (sampling period) — Интервал времени между соседними отсчётами, обратный частоте дискретизации. Измеряется в секундах. равен примерно 0,02083 мс, или 20,83 мкс.

Единицы помогают проверить расчёт. Время блока из N=480N=480 кадров при fs=48 000f_s=48\,000 кадров в секунду равно N/fs=0,01N/f_s=0{,}01 с: «кадры» сокращаются, секунды остаются. Подробности числа каналов и размера памяти — в статье об аудиоданных.

Перестановку формулы тоже можно проверить: из T=1/fT=1/f умножением обеих сторон на ff получается fT=1fT=1, затем делением на TT — f=1/Tf=1/T. Эти шаги допустимы при ненулевых ff и TT.

Степени, корни и модуль

Степеньстепень (power) — При положительном целом показателе m запись aᵐ означает произведение m одинаковых множителей a. Показатель 0 даёт 1 при ненулевом основании, отрицательный целый показатель — обратную величину соответствующей положительной степени. ama^m при положительном целом mm означает произведение mm одинаковых множителей aa. Например, 23=2⋅2⋅2=82^3=2\cdot2\cdot2=8. Так в АЦП считают число кодов: у каждого бита два варианта, у трёх битов — восемь комбинаций, у 16 битов — 216=65 5362^{16}=65\,536. Ещё один бит удваивает число комбинаций.

При a≠0a\ne0 выполняются a0=1a^0=1 и a−m=1/ama^{-m}=1/a^m. Поэтому 10−3=0,00110^{-3}=0{,}001, а запись 2⋅10−52\cdot10^{-5} означает 0,00002. При умножении степеней одного основания показатели складываются: 23⋅24=272^3\cdot2^4=2^7.

Квадратный корень (square root)квадратный корень (square root) — Неотрицательное число, квадрат которого равен заданному неотрицательному числу. Для вещественных чисел √a определён при a ≥ 0. a\sqrt{a} — неотрицательное число, квадрат которого равен aa. Например, 9=3\sqrt{9}=3; здесь a≥0a\geq0, если работаем с вещественными числами. Дробные степени связаны с корнями: a1/2=aa^{1/2}=\sqrt{a} для a≥0a\geq0. Например, 102,5=10210≈316,210^{2{,}5}=10^2\sqrt{10}\approx316{,}2; произвольный показатель можно вычислить на калькуляторе. Это понадобится для RMS (RMS level)среднеквадратичный уровень (RMS level) — Корень из среднего квадрата значений сигнала на выбранном интервале. Имеет те же единицы, что и сигнал; у синусоиды за целое число периодов равен амплитуде, делённой на √2. и для обратного перевода децибелов в отношение амплитуд.

Модуль числа (absolute value)модуль числа (absolute value) — Расстояние от числа до нуля на числовой прямой. Модуль неотрицателен; например, |−0,8| = |0,8| = 0,8. ∣x∣|x| — расстояние от него до нуля: ∣−0,8∣=0,8|-0{,}8|=0{,}8 и ∣0,8∣=0,8|0{,}8|=0{,}8. Знак исчезает и при возведении в квадрат: (−0,8)2=0,64(-0{,}8)^2=0{,}64. При этом −0,82=−0,64-0{,}8^2=-0{,}64: без скобок минус применяется после возведения в квадрат.

Двоичная и шестнадцатеричная запись

В обычной десятичной записи каждая цифра умножается на степень десяти по своему месту: 345=3⋅102+4⋅101+5⋅100345 = 3\cdot10^2 + 4\cdot10^1 + 5\cdot10^0. Такая запись называется позиционной, а 10 — её основанием. С тем же правилом можно взять другое основание; его указывают нижним индексом: 101121011_2.

Двоичная (binary) запись использует только цифры 0 и 1, их называют битами (bit). Места соответствуют степеням двойки: 10112=1⋅23+0⋅22+1⋅21+1⋅20=8+2+1=111011_2 = 1\cdot2^3 + 0\cdot2^2 + 1\cdot2^1 + 1\cdot2^0 = 8 + 2 + 1 = 11. Восемь бит образуют байт (byte). В байте 28=2562^8 = 256 комбинаций, поэтому как число без знака он принимает значения от 0 до 255.

Шестнадцатеричная (hexadecimal) запись использует 16 цифр: 0–9 и буквы A–F со значениями от 10 до 15. Поскольку 16=2416 = 2^4, одна шестнадцатеричная цифра заменяет ровно четыре бита, а байт записывается двумя цифрами — от 00 до FF. Например, AC16=10⋅16+12=172\text{AC}_{16} = 10\cdot16 + 12 = 172, а FF16=15⋅16+15=255\text{FF}_{16} = 15\cdot16 + 15 = 255. В программах вместо индекса пишут приставку 0x: 0xAC44 =10⋅163+12⋅162+4⋅16+4=44 100= 10\cdot16^3 + 12\cdot16^2 + 4\cdot16 + 4 = 44\,100.

Число из нескольких байтов можно читать как запись по основанию 256: каждый байт — одна «цифра». Если младший байт b0b_0, следующий b1b_1 и так далее, значение равно b0+b1⋅256+b2⋅2562+b3⋅2563b_0 + b_1\cdot256 + b_2\cdot256^2 + b_3\cdot256^3. Число 44 100 состоит из байтов 4416=68\text{44}_{16} = 68 и AC16=172\text{AC}_{16} = 172: 68+172⋅256=44 10068 + 172\cdot256 = 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 выбирает старший бит восьмибитного байта. отмечает нужные позиции единицами. Например, extB616=101101102 ext{B6}_{16}=10110110_2, маска ext8016=100000002 ext{80}_{16}=10000000_2. Выражение 0xB6 & 0x80 оставляет только старший бит и даёт 0x80; 0x36 & 0x80 даёт 0. Чтобы спросить, установлен ли бит, сравнивают результат с нулём: (byte & 0x80) != 0. Скобки фиксируют порядок операций.

Сдвиг влево << k переносит биты на kk позиций к старшим разрядам и заполняет освободившиеся позиции нулями. Для беззнакового числа при достаточной ширине это умножение на 2k2^k: 3u << 8 даёт 3⋅256=7683\cdot256=768. Поэтому из байтов 0x12 и 0x34 число собирают как 0x12u | (0x34u << 8), получая 0x3412. Байты заняли разные позиции, так что OR здесь даёт тот же результат, что сложение.

Беззнаковый сдвиг вправо >> k отбрасывает kk младших позиций и заполняет старшие нулями. 0x3412u >> 8 даёт 0x34; маска & 0xFFu оставляет один младший байт. Число позиций должно быть неотрицательным и меньше ширины типа. Тип выбирают до сдвига, чтобы промежуточные биты поместились. Правый сдвиг отрицательного знакового числа в C++20 заполняет старшие позиции знаком; для переносимого кода C++17 на это правило полагаться нельзя (стандарт C++, Shift operators). В разборе 24-битного PCM показаны варианты расширения знака (sign extension)расширение знака (sign extension) — Заполнение новых старших битов копиями знакового бита при увеличении разрядности целого в дополнительном коде. Сохраняет числовое значение, например 24-битное −1 становится 32-битным −1. с вычитанием и со сдвигами.

Целочисленное деление и остаток

Деление целого a≥0a\geq0 на целое b>0b>0 с остатком даёт неполное частное q=⌊a/b⌋q=\lfloor a/b\rfloor и остаток r=a−qbr=a-qb, где 0≤r<b0\leq r<b. Скобки ⌊⋅⌋\lfloor\cdot\rfloor означают округление (rounding)округление (rounding) — Замена числа ближайшим допустимым значением, например ближайшим целым для round. Выбор при равном расстоянии до двух значений определяется отдельным соглашением. вниз: наибольшее целое, не превосходящее число. Например, 38=4⋅8+638=4\cdot8+6, поэтому ⌊38/8⌋=4\lfloor38/8\rfloor=4, а остаток равен 6. Остаток также записывают как a mod ba\bmod b.

Когда делитель — степень двойки 2k2^k, частное и остаток видны прямо в двоичной записи. 38=100110238=100110_2; при k=3k=3 старшие биты 100 дают частное 4, три младших 110 — остаток 6. В C++ для беззнакового числа это a >> k и a & ((1u << k) - 1): маска из kk единиц оставляет младшие биты. На таком разбиении построен код Райса во 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. задаёт одно выходное значение для каждого допустимого входного значения. В записи y=h(u)y=h(u) имя функции — hh, вход uu называют аргументом (argument), результат — yy. Например, правило h(u)=2u+1h(u)=2u+1 даёт h(3)=7h(3)=7. Скобки здесь передают аргумент функции; h(3)h(3) читается «значение функции hh при трёх».

В аудио запись x(t)x(t) сообщает значение сигнала в момент tt. Если xx — напряжение, входное время измеряется в секундах, результат — в вольтах. Напротив, x[n]x[n] обозначает отсчёт (sample)отсчёт (sample) — Значение сигнала в один момент дискретизации, одно число. В звукозаписи его также называют сэмплом. с целым номером nn: x[0]x[0], x[1]x[1], x[2]x[2]. В статьях сайта круглые скобки используются для непрерывного времени, квадратные — для последовательности отсчётов. Связь x[n]=x(nTs)x[n]=x(nT_s) означает: отсчёт номер nn берётся в момент nTsnT_s, где TsT_s — период дискретизации в секундах.

На графике по горизонтальной оси откладывают аргумент, по вертикальной — значение функции. Чтобы получить точку, подставляют выбранный аргумент в правило. Единицы читают по подписям осей: график сигнала по времени и график уровня по частоте описывают разные зависимости.

Модуль используют при поиске пика: из отсчётов −0,8 и +0,5 больший по величине — первый. Запись max⁡(∣x[0]∣,∣x[1]∣)\max(|x[0]|,|x[1]|) выбирает наибольший из двух модулей. Функция min⁡\min аналогично выбирает наименьшее значение. В треугольном LFO модуль создаёт два симметричных прямолинейных участка.

Угол, окружность и радианы

Угол можно измерять долей полного оборота. В градусах оборот равен 360°. Радиан (radian)радиан (radian) — Единица угла, заданная отношением длины дуги окружности к её радиусу. Дуга длиной в один радиус соответствует 1 рад; полный оборот — 2π рад. определяется через окружность: угол в радианах равен длине дуги ss, поделённой на радиус rr. Если длина дуги равна радиусу, угол равен 1 рад (OpenStax, §5.1).

Длина всей окружности — 2πr2\pi r. Поэтому полный оборот равен 2π2\pi рад, половина — π\pi рад, четверть — π/2\pi/2 рад. Чтобы перевести градусы в радианы, умножают их числовое значение на π/180\pi/180; для обратного перевода — на 180/π180/\pi. Например, 30∘=π/630^\circ=\pi/6 рад, а 1 рад приблизительно равен 57,3°.

При измерении от положительного направления горизонтальной оси положительный угол отсчитывают против часовой стрелки, отрицательный — по часовой. Углы 0 и 2π2\pi приводят к одной точке; угол −π/2-\pi/2 ведёт туда же, куда 3π/23\pi/2.

Отношение двух длин безразмерно, но пометка «рад» помогает отличать радианы от градусов. В математических формулах sin⁡(π/2)\sin(\pi/2) подразумевает радианы. Для калькулятора нужно выбрать режим RAD; режим DEG предназначен для аргумента в градусах.

Синус и косинус

В прямоугольном треугольнике синуссинус (sine) — Вертикальная координата точки на единичной окружности под заданным углом от положительного направления горизонтальной оси. Для острого угла прямоугольного треугольника равен отношению противолежащего катета к гипотенузе. острого угла — отношение длины противолежащего катета к гипотенузе. Косинус (cosine)косинус (cosine) — Горизонтальная координата точки на единичной окружности под заданным углом от положительного направления горизонтальной оси. Для острого угла прямоугольного треугольника равен отношению прилежащего катета к гипотенузе. — отношение прилежащего катета к гипотенузе. Гипотенуза лежит напротив прямого угла; какой катет прилежащий, зависит от выбранного острого угла (OpenStax, §5.4).

Возьмём треугольник с катетами 3 и 4 и гипотенузой 5. Для угла θ\theta («тета») напротив катета 3 получаются sin⁡θ=3/5=0,6\sin\theta=3/5=0{,}6 и cos⁡θ=4/5=0,8\cos\theta=4/5=0{,}8. При увеличении всех сторон вдвое отношения сохранятся: значение зависит от угла.

Чтобы определить синус для любого угла, используют единичную окружность (unit circle), то есть окружность радиуса 1. Точка под углом θ\theta имеет горизонтальную координату cos⁡θ\cos\theta и вертикальную sin⁡θ\sin\theta. В первой четверти радиус и проекции образуют тот же прямоугольный треугольник (рисунок 1; OpenStax, §5.2).

Синус и косинус на единичной окружностиОкружность радиуса один с центром O. В первой четверти точка P с координатами 0,8 и 0,6. Радиус OP образует угол θ с горизонталью. Прямоугольный треугольник имеет горизонтальный катет 0,8 и вертикальный 0,6; это косинус и синус угла.Oθ1Pcos θ = 0,8 · sin θ = 0,6cos θsin θ
Рис. 1. Угол θ отсчитан против часовой стрелки от направления вправо. Сплошной отрезок — радиус 1, пунктирные катеты показывают проекции: по горизонтали cos θ, по вертикали sin θ. Координаты и отношения длин безразмерны.

При полном обороте высота точки проходит через 0, +1, 0, −1 и снова 0. Синус повторяется каждые 2π2\pi и принимает значения от −1 до +1. Косинус имеет тот же диапазон, но начинает оборот со значения +1. Значения для четвертей оборота собраны в таблице 1.

Таблица 1. Синус и косинус в начале и на четвертях оборота; значения безразмерны
ГрадусыРадианыsin θcos θ
0°001
90°π/210
180°π0−1
270°3π/2−10
360°2π01

Из окружности видны полезные свойства: sin⁡(−θ)=−sin⁡θ\sin(-\theta)=-\sin\theta, sin⁡(θ+π)=−sin⁡θ\sin(\theta+\pi)=-\sin\theta, sin⁡(θ+2π)=sin⁡θ\sin(\theta+2\pi)=\sin\theta. Отражение, половина оборота и полный оборот объясняют смену знака и повторение волны. Кроме того, cos⁡θ=sin⁡(θ+π/2)\cos\theta=\sin(\theta+\pi/2): косинус соответствует синусу, опережающему его на четверть оборота.

Чему равны sin(π/2) и sin(−π/2)?

Верхняя точка окружности имеет высоту +1, нижняя −1. Поэтому sin⁡(π/2)=1\sin(\pi/2)=1, sin⁡(−π/2)=−1\sin(-\pi/2)=-1. Если калькулятор даёт другое значение, проверьте режим RAD.

От угла к синусоиде во времени

Если точка движется по окружности равномерно, её вертикальная координата меняется по синусоиде. Частотачастота (frequency) — Число полных колебаний за секунду. Обозначается f и измеряется в герцах; 1 Гц означает одно колебание в секунду. ff задаёт число оборотов за секунду. За время tt проходит ftft оборотов; умножение на 2π2\pi переводит их в радианы. Начальный угол задаёт фазафаза (phase) — Положение внутри периода колебания, выраженное углом: полный период соответствует 360°, или 2π радиан. Начальная фаза — её значение в момент t = 0. φ\varphi. Получается формула (2), используемая в статье о звуковой волне.

x(t)=Asin⁡(2πft+φ)x(t)=A\sin(2\pi ft+\varphi)
x(t)x(t)
значение сигнала в момент tt;
AA
амплитуда в тех же единицах, что и x(t)x(t);
ff
частота, Гц;
tt
время, с;
φ\varphi
начальный угол, рад.

Пусть A=0,5A=0{,}5 В, f=1000f=1000 Гц, φ=0\varphi=0. В момент 0,25 мс сначала переводим время в секунды: t=0,00025t=0{,}00025 с. Затем ft=0,25ft=0{,}25 оборота, 2πft=π/22\pi ft=\pi/2 рад, синус равен 1. Напряжение равно 0,5 В. Через 0,5 мс от начала угол равен π\pi, напряжение нулевое; через 0,75 мс оно равно −0,5 В. Через 1 мс цикл повторяется.

Синус выдаёт безразмерное число, а множитель AA задаёт масштаб и единицу сигнала. Если заменить AA на 1 В, значения удвоятся, время повторения сохранится. Если увеличить ff, обороты будут происходить быстрее. Прибавление φ=π/2\varphi=\pi/2 начинает волну с максимума: тот же рисунок смещается по времени на четверть периода.

Для отсчётов подставляют t=n/fst=n/f_s. При f=1000f=1000 Гц и fs=8000f_s=8000 Гц угол равен πn/4\pi n/4: каждый следующий отсчёт сдвигается на 45°. Эта подстановка разобрана в статье о дискретизации. Как угол превращается в две волны на графике, показывает эксперимент с фазой.

Логарифм: найти показатель степени

Логарифм (logarithm)логарифм (logarithm) — Показатель степени, в которую нужно возвести основание, чтобы получить аргумент. Для вещественного логарифма аргумент и основание положительны, основание отлично от 1. Десятичный логарифм lg использует основание 10. отвечает на вопрос, в какую степень возвести основание, чтобы получить заданное число. Десятичный логарифм обозначают lg⁡a\lg a или log⁡10a\log_{10}a: lg⁡100=2\lg100=2, потому что 102=10010^2=100. Аналогично, lg⁡1=0\lg1=0 и lg⁡0,01=−2\lg0{,}01=-2. Логарифм может быть дробным: lg⁡2≈0,30103\lg2\approx0{,}30103 (OpenStax, §4.3).

Для вещественного логарифма аргумент должен быть положительным, основание — положительным и отличным от 1. Поэтому lg⁡0\lg0 и lg⁡(−1)\lg(-1) не имеют вещественного значения. При приближении положительного аргумента к нулю десятичный логарифм уходит к −∞-\infty. Символ ∞\infty («бесконечность») здесь описывает неограниченное убывание результата.

Децибелы и обратный перевод

В статье об уровне сигнала сравнение положительных амплитуд записано как L=20lg⁡(A/Aref)L=20\lg(A/A_\text{ref}), где LL — уровень в децибелах, Aref>0A_\text{ref}>0 — опорная амплитуда. Сначала нужно вычислить отношение, затем логарифм, затем умножить на 20. Например, 0,1 В относительно 1 В даёт отношение 0,1, логарифм −1 и уровень −20 дБ. Значения напряжения не подставляют в логарифм по отдельности: его аргумент — безразмерное отношение.

Чтобы выполнить обратный перевод, делят уровень на 20 и возводят 10 в полученную степень (формула (3); J. O. Smith, Decibels).

AAref=10L/20\frac{A}{A_\text{ref}}=10^{L/20}
LL
уровень, дБ;
AA, ArefA_\text{ref}
положительная амплитуда и опора в одинаковых единицах.

Уровень −20 дБ даёт 10−1=0,110^{-1}=0{,}1, −6 дБ — 10−0,3≈0,501210^{-0{,}3}\approx0{,}5012. Поэтому «вдвое» и «6 дБ» совпадают лишь приближённо: точное удвоение амплитуды даёт примерно 6,0206 дБ. Для мощности используют множитель 10; обратный перевод её отношения имеет вид 10L/1010^{L/10}. Связь мощности с квадратом амплитуды и условия применения этих формул разобраны в статье об уровне.

Если считают уровень отдельного отсчёта, берут его модуль. Например, −0,5 и +0,5 относительно опоры 1 дают одинаковые −6,02 дБ. Нулевому отсчёту условно приписывают уровень −∞-\infty дБ по пределу; это не конечное значение lg⁡0\lg0.

Амплитуда уменьшилась до 1 % исходной. Сколько это децибелов и какой множитель вернёт её обратно?

1 % — доля 0,01. Из 20lg⁡0,0120\lg0{,}01 получаются −40 дБ. Обратное усиление на 40 дБ означает множитель 1040/20=10010^{40/20}=100.

Свойства логарифма и шкала частот

При положительных aa и bb выполняются lg⁡(ab)=lg⁡a+lg⁡b\lg(ab)=\lg a+\lg b, lg⁡(a/b)=lg⁡a−lg⁡b\lg(a/b)=\lg a-\lg b и lg⁡(am)=mlg⁡a\lg(a^m)=m\lg a. Например, lg⁡(2⋅10)=lg⁡2+1≈1,30103\lg(2\cdot10)=\lg2+1\approx1{,}30103. Этим объясняется сложение децибелов при последовательном применении множителей усиления (OpenStax, §4.5).

На логарифмической шкале (logarithmic scale)логарифмическая шкала (logarithmic scale) — Шкала, на которой равные расстояния соответствуют одинаковым отношениям положительных величин. Например, 100, 1000 и 10 000 Гц расположены на равных расстояниях. равные расстояния соответствуют одинаковым отношениям. Частоты 100, 1000 и 10 000 Гц находятся на равных расстояниях: их десятичные логарифмы — 2, 3 и 4. Между 100 и 1000 Гц середина по такой шкале находится при 102,5≈316,210^{2{,}5}\approx316{,}2 Гц; арифметическая середина 550 Гц относится к линейной шкале.

На кривых равной громкости (equal-loudness contour)кривая равной громкости (equal-loudness contour) — Линия на графике частоты и уровня звукового давления, соединяющая чистые тоны, воспринимаемые одинаково громкими в заданных условиях. горизонтальная шкала частот логарифмическая, вертикальная шкала уровня размечена равными интервалами децибелов. Чтобы читать график, проверяйте обе оси отдельно.

Полутоны и центы

В равномерной темперации октава (octave)октава (octave) — Музыкальный интервал между нотами одного названия в соседних регистрах. Соответствует отношению частот 2:1. с отношением частот 2 делится на 12 одинаковых шагов — полутонов. Двенадцать одинаковых множителей rr должны дать 2, поэтому r12=2r^{12}=2 и r=21/12≈1,059463r=2^{1/12}\approx1{,}059463. Интервал из nn полутонов умножает частоту на 2n/122^{n/12}: для квинты из 7 полутонов это 27/12≈1,4983072^{7/12}\approx1{,}498307. От ля 220 Гц такая квинта ведёт к 220⋅1,498307≈329,63220\cdot1{,}498307\approx329{,}63 Гц.

Цент (cent)цент (cent) — Сотая часть равномерно темперированного полутона; в октаве 1200 центов. Интервал в c центов умножает частоту на 2 в степени c/1200. — сотая часть равномерно темперированного полутона, в октаве 1200 центов (HyperPhysics, Cents). Интервал в cc центов умножает частоту на 2c/12002^{c/1200}: 7 центов дают множитель около 1,004052, а 220 Гц превращаются примерно в 220,89 Гц. Отрицательное cc понижает частоту.

c=1200log⁡2f2f1,log⁡2a=lg⁡alg⁡2c = 1200\log_2\frac{f_2}{f_1}, \qquad \log_2 a = \frac{\lg a}{\lg 2}
cc
интервал от f1f_1 до f2f_2, центы;
f1f_1, f2f_2
положительные частоты, Гц.

Двоичный логарифм log⁡2a\log_2 a отвечает на вопрос, в какую степень возвести 2; на калькуляторе его находят через десятичный, как во второй части формулы. Например, отношение 3/2 даёт 1200⋅lg⁡1,5/lg⁡2≈701,9551200\cdot\lg1{,}5/\lg2\approx701{,}955 цента, а темперированная квинта — ровно 700. Разница около 1,955 цента мала, но при долгом совместном звучании слышна как медленные биения (beats)биения (beats) — Периодическое нарастание и спад громкости суммы двух тонов близких частот. Частота биений равна модулю разности частот.. Так как отношения последовательных интервалов перемножаются, их величины в центах складываются: две темперированные квинты дают 1400 центов. Это прямое следствие свойства lg⁡(ab)=lg⁡a+lg⁡b\lg(ab)=\lg a+\lg b.

Натуральный логарифм и экспонента

Натуральный логарифм (natural logarithm)натуральный логарифм (natural logarithm) — Логарифм с основанием e ≈ 2,71828; обозначается ln. Для положительного аргумента a равен показателю степени, дающему eᵘ = a. ln⁡a\ln a использует основание e≈2,71828e\approx2{,}71828. Экспонента (exponential function)экспонента (exponential function) — Функция eᵘ, также записываемая exp(u), где e ≈ 2,71828. Обратна натуральному логарифму: exp(ln(a)) = a при положительном a. При отрицательном аргументе принимает значения между 0 и 1. eue^u, также записываемая exp⁡(u)\exp(u), выполняет обратное действие: eln⁡a=ae^{\ln a}=a при a>0a>0. На калькуляторе ln соответствует натуральному логарифму, log обычно десятичному; в программных библиотеках обозначения нужно проверять (OpenStax, §4.3).

Для q≥0q\geq0 выражение e−qe^{-q} убывает от 1 к нулю: при q=0q=0 оно равно 1, при q=1q=1 примерно 0,3679. При любом конечном qq значение остаётся положительным. Такой вид зависимости подходит для постепенного затухания (OpenStax, §4.1).

В формуле коэффициента сглаживания α=e−ln⁡9/(fst)\alpha=e^{-\ln9/(f_st)} сначала находят ln⁡9≈2,19722\ln9\approx2{,}19722, затем делят на fstf_st и меняют знак. Здесь fsf_s — частота дискретизации в герцах, t>0t>0 — время атаки (attack time)время атаки (attack time) — Время, за которое компрессор наращивает подавление усиления после превышения порога. Точное определение зависит от устройства. или восстановления в секундах. Их произведение равно числу отсчётов за это время, показатель степени безразмерен.

При fs=48 000f_s=48\,000 Гц и t=0,01t=0{,}01 с получается fst=480f_st=480, показатель примерно −0,004578, а α≈0,995433\alpha\approx0{,}995433. Увеличение tt приближает коэффициент к 1. Как этот коэффициент замедляет изменение усиления, показано ниже; значение времени 10–90 % соответствует модели MathWorks, compressor, принятой в статье о компрессоре.

Затухание часто записывают как e−t/τe^{-t/\tau}. Число τ>0\tau>0 в секундах — постоянная времени (time constant)постоянная времени (time constant) — Время τ, за которое экспоненциальный процесс проходит 1 − 1/e ≈ 63,2 % пути к установившемуся значению; у однополюсного фильтра τ = 1/(2π·fc).: за время τ\tau показатель становится равным −1, и от начального значения остаётся 1/e≈36,81/e\approx36{,}8 %. За 3τ3\tau остаётся e−3≈5,0e^{-3}\approx5{,}0 %, за 5τ5\tau — около 0,7 % (J. O. Smith, Exponentials). Если процесс приближается к цели, то за τ\tau он проходит 1−1/e≈63,21-1/e\approx63{,}2 % пути. В цифровой форме время считают отсчётами: за один отсчёт, 1/fs1/f_s секунды, расстояние умножается на e−1/(fsτ)e^{-1/(f_s\tau)}. При fs=48 000f_s=48\,000 Гц и τ=1\tau=1 мс это e−1/48≈0,9794e^{-1/48}\approx0{,}9794.

Коэффициент компрессора записывается так же: α=e−ln⁡9/(fst)\alpha=e^{-\ln9/(f_st)} соответствует τ=t/ln⁡9≈t/2,2\tau=t/\ln9\approx t/2{,}2. Время атаки 10 мс даёт постоянную времени около 4,55 мс.

Сумма Σ и среднеквадратичное значение

Суммирование (summation)суммирование (summation) — Сложение значений выражения при переборе указанных индексов. Например, сумма x[n] от n = 0 до N−1 включает ровно N отсчётов. обозначают заглавной греческой буквой Σ\Sigma («сигма»). Запись ∑n=0N−1x[n]\sum_{n=0}^{N-1}x[n] означает сложить отсчёты с номерами от 0 до N−1N-1 включительно. Таких отсчётов ровно NN: при N=4N=4 берутся номера 0, 1, 2, 3. Буква nn внутри суммы перебирает номера и не остаётся свободным аргументом результата.

В выражении x[n]2x[n]^2 индекс nn выбирает отсчёт, а степень 2 относится к его значению. В формуле (4) под знаком суммы сначала возводят каждый отсчёт в квадрат, складывают квадраты, делят на число отсчётов и извлекают корень. Это среднеквадратичное значениесреднеквадратичный уровень (RMS level) — Корень из среднего квадрата значений сигнала на выбранном интервале. Имеет те же единицы, что и сигнал; у синусоиды за целое число периодов равен амплитуде, делённой на √2. (J. O. Smith, Signal Metrics).

xRMS=1N∑n=0N−1x[n]2x_\mathrm{RMS}=\sqrt{\frac{1}{N}\sum_{n=0}^{N-1}x[n]^2}
x[n]x[n]
отсчёт номер nn;
NN
положительное целое число отсчётов;
xRMSx_\mathrm{RMS}
результат в тех же единицах, что и отсчёты.

Пусть четыре отсчёта — 00, 0,50{,}5, 00, −0,5-0{,}5. Квадраты равны 00, 0,250{,}25, 00, 0,250{,}25; сумма 0,5, среднее 0,125, корень примерно 0,3536. Обычное среднее исходных отсчётов равно нулю. В RMS положительная и отрицательная части не уничтожают друг друга, потому что суммируются квадраты. При всех нулевых отсчётах RMS тоже нулевой; для пустого набора эта формула неприменима из-за деления на N=0N=0.

С квадратом единицы меняются: для напряжения сумма квадратов имеет единицу В², после корня возвращаются вольты. Само среднее квадратов напряжения не выражает мощность в ваттах без модели электрической нагрузки. В цифровой обработке часто используют безразмерные отсчёты и говорят о мощности сигнала как о среднем квадрате.

Кусочные функции и интервалы

Кусочная функция (piecewise function)кусочная функция (piecewise function) — Функция, заданная разными выражениями на разных частях области допустимых аргументов. Выражение выбирается по условию, записанному рядом с ним. задаётся разными выражениями для разных значений аргумента. В фигурной скобке справа от каждой строки стоит условие выбора. В характеристике компрессора это выглядит так:

y={x,x<T,T+x−TR,x≥T.y=\begin{cases} x,&x<T,\\ T+\dfrac{x-T}{R},&x\geq T. \end{cases}
xx, yy
входной и выходной уровень, dBFS;
TT
порог, dBFS;
RR
степень сжатия, безразмерная; R≥1R\geq1.

При T=−20T=-20 dBFS (decibels relative to full scale)dBFS (decibels relative to full scale) — Уровень цифрового сигнала в децибелах относительно полной шкалы. Для пиковых значений 0 dBFS соответствует её границе; формат с плавающей точкой допускает значения выше неё. Соглашение об опоре RMS указывают отдельно. и R=4R=4 вход −30 dBFS удовлетворяет x<Tx<T, поэтому выбирается первая строка: выход −30 dBFS. Для входа −8 dBFS выбирается вторая: −20+(−8−(−20))/4=−17-20+(-8-(-20))/4=-17 dBFS. При x=Tx=T действует вторая строка и даёт ровно TT. Строки формулы (5) выбираются по условию, их не складывают.

Интервал [a,b][a,b] включает оба конца, (a,b)(a,b) исключает их. В [−π,π)[-\pi,\pi) левая граница включена, правая исключена: −π≤φ<π-\pi\leq\varphi<\pi. Такой диапазон используется для фазы LFO. Углы −π-\pi и π\pi соответствуют одной точке окружности, поэтому достаточно хранить один из них. При переходе через π\pi вычитают 2π2\pi, сохраняя избыток: π+0,01\pi+0{,}01 превращается в −π+0,01-\pi+0{,}01.

В записи R→∞R\to\infty стрелка означает рассмотрение всё больших RR. При фиксированном x−Tx-T дробь (x−T)/R(x-T)/R стремится к нулю, выход выше порога стремится к TT. Так читается переход от компрессора к идеальной статической характеристике лимитера (limiter)лимитер (limiter) — Устройство, которое не пропускает сигнал выше заданного уровня — потолка. По статической характеристике это компрессор с бесконечной степенью сжатия; границу гарантируют пиковый детектор и предварительный анализ..

Округление и частота после наложения

Функция округленияокругление (rounding) — Замена числа ближайшим допустимым значением, например ближайшим целым для round. Выбор при равном расстоянии до двух значений определяется отдельным соглашением. round⁡(u)\operatorname{round}(u) выбирает ближайшее целое: round⁡(1,2)=1\operatorname{round}(1{,}2)=1, round⁡(1,8)=2\operatorname{round}(1{,}8)=2. Ровно посередине между целыми нужно отдельное соглашение. Например, разные библиотеки могут выбирать для 2,5 число 2 или 3; правило проверяют при переносе формулы в код.

В расчёте частоты после наложения используется k=round⁡(f/fs)k=\operatorname{round}(f/f_s), затем f′=f−kfsf'=f-kf_s. Для f=5000f=5000 Гц и fs=8000f_s=8000 Гц отношение равно 0,625, поэтому k=1k=1 и f′=−3000f'=-3000 Гц. У синуса отрицательный аргумент меняет знак, так что sin⁡(2πf′t)=−sin⁡(2π⋅3000t)\sin(2\pi f't)=-\sin(2\pi\cdot3000t). Модуль ∣f′∣=3000|f'|=3000 Гц задаёт частоту тона, знак описывает фазовый переворот.

Если f/fsf/f_s ровно посередине между целыми, варианты округления дают граничные частоты ±fs/2\pm f_s/2. Это особый случай дискретизации (sampling)дискретизация (sampling) — Измерение непрерывного сигнала через равные промежутки времени: вместо функции времени сохраняется последовательность отсчётов. на границе Найквиста; условия восстановления нужно читать отдельно. Значение fs=0f_s=0 недопустимо для этой формулы.

Бесконечная сумма и функция sinc

В идеальном восстановлении встречается сумма от −∞-\infty до ∞\infty. Она охватывает всю последовательность отсчётов в обе стороны по времени. Такая запись описывает предел сумм с растущим числом слагаемых, когда он существует; её нельзя выполнить как конечный перебор всех номеров.

Функция sinc (sinc function)функция sinc (sinc function) — Нормированная функция sinc(u) = sin(πu)/(πu), со значением 1 при u = 0. В идеальном восстановлении непрерывного сигнала её сдвинутые копии взвешивают отсчётами и складывают. здесь нормирована: sinc⁡(u)=sin⁡(πu)/(πu)\operatorname{sinc}(u)=\sin(\pi u)/(\pi u) при u≠0u\ne0, а sinc⁡(0)=1\operatorname{sinc}(0)=1. В нуле прямое деление даёт неопределённость 0/00/0. Значение 1 задают по пределу (limit): при приближении uu к нулю отношение приближается к 1. Например, при u=0,1u=0{,}1 оно примерно 0,9836, при u=0,01u=0{,}01 — 0,99984. При любом ненулевом целом uu синус πu\pi u равен нулю, поэтому sinc тоже нулевая.

y(t)=∑n=−∞∞x[n] sinc⁡(t−nTsTs)y(t)=\sum_{n=-\infty}^{\infty}x[n]\, \operatorname{sinc}\left(\frac{t-nT_s}{T_s}\right)
y(t)y(t)
восстановленный сигнал в единицах x[n]x[n];
TsT_s
период дискретизации, с;
tt
время, с;
nn
целый номер отсчёта.

Для каждого nn в формуле (6) сначала считают время относительно отсчёта t−nTst-nT_s, делят на TsT_s, вычисляют sinc и умножают на x[n]x[n]. Затем складывают вклады. В момент отсчёта t=mTst=mT_s, где mm — целое, аргумент равен m−nm-n: у слагаемого n=mn=m sinc равна 1, у остальных — 0. Поэтому y(mTs)=x[m]y(mT_s)=x[m]. Между отсчётами участвуют многие слагаемые; соединение точек прямыми описывает другой способ интерполяции.

Точное восстановление исходного сигнала требует условий теоремы отсчётов (sampling theorem)теорема отсчётов (sampling theorem) — В принятой низкочастотной модели непрерывный сигнал можно точно восстановить по всем точным равномерным отсчётам, если его спектр лежит строго ниже половины частоты дискретизации. Также известна как теорема Котельникова.: в принятой здесь идеальной модели спектр (spectrum)спектр (spectrum) — Представление сигнала через его частотные составляющие: их частоты, амплитуды и фазы. Ограничение спектра задаёт, какие частоты допускаются в сигнале. целиком лежит строго ниже fs/2f_s/2, отсчёты точные и известны за всё время. Это математическая модель; конечная запись и квантование (quantization)квантование (quantization) — Замена значения отсчёта одним из конечного набора представимых уровней. Разность между выбранным уровнем и исходным значением называется ошибкой квантования. требуют дополнительных оговорок (J. O. Smith, Sampling Theorem).

Предыдущее значение и рекуррентная формула

Рекуррентная формула (recurrence relation)рекуррентная формула (recurrence relation) — Правило вычисления очередного значения последовательности через предыдущие значения. Для начала вычислений нужно задать начальное состояние. вычисляет новое значение через предыдущие. Квадратные скобки gs[n−1]g_s[n-1] обозначают сохранённое значение на предыдущем шаге. Для первого шага нужно задать начальное состояние, например gs[−1]=0g_s[-1]=0 дБ. В формуле (7) новое значение — взвешенное среднее предыдущего и требуемого.

gs[n]=αgs[n−1]+(1−α)gc[n]g_s[n]=\alpha g_s[n-1]+(1-\alpha)g_c[n]
gs[n]g_s[n]
сглаженное подавление усиления, дБ;
gc[n]g_c[n]
требуемое подавление по статической характеристике, дБ;
α\alpha
вес предыдущего значения, безразмерный, 0≤α≤10\leq\alpha\leq1.

Возьмём учебный коэффициент α=0,75\alpha=0{,}75 и постоянную цель gc[n]=−8g_c[n]=-8 дБ. На первом шаге получается 0,75⋅0+0,25⋅(−8)=−20{,}75\cdot0+0{,}25\cdot(-8)=-2 дБ, на втором 0,75⋅(−2)+0,25⋅(−8)=−3,50{,}75\cdot(-2)+0{,}25\cdot(-8)=-3{,}5 дБ, на третьем −4,625 дБ. Значение постепенно приближается к −8 дБ. Чем ближе α\alpha к 1, тем больше вес прошлого и тем медленнее изменение. При α=0\alpha=0 результат сразу равен цели, при α=1\alpha=1 состояние остаётся прежним.

Коэффициент из раздела об экспоненте задаёт скорость этого процесса. Множитель ln⁡9\ln9 относится к соглашению о времени перехода от 10 до 90 % изменения: оставшаяся доля ошибки уменьшается с 0,9 до 0,1, то есть в девять раз. Это соглашение используется в статье о компрессоре; у других реализаций определение времени может отличаться.

Если цель не меняется, значение со временем перестаёт меняться. Такое установившееся значение (steady state) находят, подставив одно и то же число gg вместо текущего и предыдущего значения. Для формулы (7) получается g=αg+(1−α)gcg=\alpha g+(1-\alpha)g_c, то есть (1−α)g=(1−α)gc(1-\alpha)g=(1-\alpha)g_c, и при α<1\alpha<1 выходит g=gcg=g_c: сглаживание приходит точно к цели, в примере выше — к −8 дБ. Если в формуле есть ещё одно слагаемое, установившееся значение может с целью не совпасть. Так происходит у модели аналогового пикового детектора: при равных атаке и восстановлении она показывает половину постоянного уровня (статья о компрессоре).

Предыдущее подавление −2 дБ, цель −10 дБ, α = 0,5. Чему равно новое значение?

Веса прошлого и цели равны: 0,5⋅(−2)+0,5⋅(−10)=−60{,}5\cdot(-2)+0{,}5\cdot(-10)=-6 дБ. Это середина между −2 и −10 дБ. На следующем шаге при той же цели получится −8 дБ.

Скользящее окно: минимум и среднее

Для некоторых расчётов нужны сразу несколько последних значений. Запись min⁡0≤k≤Dg[n−k]\min_{0 \le k \le D} g[n-k] означает наименьшее из D+1D+1 значений g[n],g[n−1],…,g[n−D]g[n], g[n-1], \dots, g[n-D]. Индекс kk под знаком min⁡\min перебирает целые числа от 0 до DD включительно, как индекс суммы Σ\Sigma. Набор этих значений называют окном. С ростом nn окно сдвигается: в него входит новое значение, а самое старое выходит. Среднее по такому окну, 1D+1∑k=0Dg[n−k]\frac{1}{D+1}\sum_{k=0}^{D} g[n-k], называют скользящим средним: все D+1D+1 значений входят в него с одинаковым весом (Smith, Moving Average Filters).

Пусть D=2D = 2, значения до начала равны нулю, а g[0],…,g[5]g[0], \dots, g[5] — это 0, −2, −5, −1, 0, 0 дБ. Минимум по окну из трёх значений даёт 0, −2, −5, −5, −5, −1: число −5 держится, пока остаётся в окне. Скользящее среднее этих минимумов при n=2,3,4,5n = 2, 3, 4, 5 равно (−5−2+0)/3≈−2,33(-5-2+0)/3 \approx -2{,}33, −4-4, −5-5 и ≈−3,67\approx -3{,}67. Каждый результат не больше значения g[n−2]g[n-2]: среднее чисел, каждое из которых не больше некоторого порога, тоже не больше него. На этом свойстве держится предварительный анализ в лимитере.

Разности соседних значений

Разность ∇x[n]=x[n]−x[n−1]\nabla x[n]=x[n]-x[n-1] (backward difference) показывает, на сколько значение изменилось за один шаг. Разность разностей называют второй разностью: ∇2x[n]=∇x[n]−∇x[n−1]=x[n]−2x[n−1]+x[n−2]\nabla^2x[n]=\nabla x[n]-\nabla x[n-1]=x[n]-2x[n-1]+x[n-2]. Третья и следующие разности определяются так же.

Возьмём значения 100, 130, 155, 175, 190, 200. Первые разности: 30, 25, 20, 15, 10. Вторые: −5, −5, −5, −5. Третьи: 0, 0, 0. Значения легли на параболу: у неё постоянна вторая разность. У прямой постоянна первая разность, а вторая равна нулю. В общем случае у многочлена степени dd при равном шаге постоянна dd-я разность, а все следующие равны нулю (Wikipedia, Finite difference: Polynomials).

Отсюда способ предсказать следующее значение: предположить, что pp-я разность равна нулю, и выразить из этого x[n]x[n]. При p=2p=2 из x[n]−2x[n−1]+x[n−2]=0x[n]-2x[n-1]+x[n-2]=0 получается x[n]=2x[n−1]−x[n−2]x[n]=2x[n-1]-x[n-2] — продолжение прямой через два последних значения. Так устроены фиксированные предсказатели FLAC; ошибка такого предсказания равна самой pp-й разности. Шаг между значениями должен быть одинаковым: у отсчётов это период дискретизации.

Разность по-разному действует на медленные и быстрые изменения. У значений 0,10; 0,11; 0,12 разности всего 0,01, а у знакопеременных +0,1; −0,1; +0,1 они равны ±0,2. Для синусоиды с частотой ff первая разность — синусоида той же частоты, амплитуда которой умножена на 2sin⁡(πf/fs)2\sin(\pi f/f_s). При f=fs/2f=f_s/2, когда отсчёты чередуют знак, множитель равен 2; при fs=48f_s=48 кГц и f=1f=1 кГц — около 0,13, а на ещё более низких частотах он близок к нулю. Так дельта-сигма-модулятор уводит шум квантования к высоким частотам.

Значения 2, 5, 8, 11. Чему равны первые и вторые разности и что даст формула x[n] = 2x[n−1] − x[n−2] для следующего значения?

Первые разности: 3, 3, 3; вторые: 0, 0. Значения лежат на прямой, поэтому предсказание 2⋅11−8=142\cdot11-8=14 продолжает её: следующая разность снова равна 3.

Модуль суммы и верхняя граница

Модуль суммы двух действительных чисел не больше суммы их модулей: ∣a+b∣≤∣a∣+∣b∣|a+b| \le |a|+|b|. Это неравенство треугольника (triangle inequality). При одинаковых знаках модули складываются; при разных один вклад частично или полностью компенсирует другой. Для a=0,8a=0{,}8, b=−0,5b=-0{,}5 имеем ∣a+b∣=0,3|a+b|=0{,}3, тогда как ∣a∣+∣b∣=1,3|a|+|b|=1{,}3. Верхняя граница может быть намного больше результата.

Для произведения ∣gx∣=∣g∣∣x∣|gx|=|g||x|. Если два входа удовлетворяют ∣x1[n]∣≤1|x_1[n]|\le1 и ∣x2[n]∣≤1|x_2[n]|\le1, то ∣g1x1[n]+g2x2[n]∣≤∣g1∣+∣g2∣|g_1x_1[n]+g_2x_2[n]|\le|g_1|+|g_2|. Например, коэффициенты 0,4 и 0,3 ограничивают модуль суммы сверху значением 0,7 при любых сочетаниях таких входов. Условие ∣g1∣+∣g2∣≤1|g_1|+|g_2|\le1 даёт достаточную гарантию для идеальной арифметики, но его нарушение не доказывает перегрузку: результат может быть меньше из-за компенсации. Оценка применяется в микшировании.

Амплитуда суммы синусоид

Пусть y(t)=asin⁡θ+bsin⁡(θ+φ)y(t)=a\sin\theta+b\sin(\theta+\varphi), где θ=2πft\theta=2\pi ft, ff — общая частота в Гц, tt — время в секундах, φ\varphi — разность фаз в радианах, aa и bb — амплитудные коэффициенты. Формула сложения sin⁡(θ+φ)=sin⁡θcos⁡φ+cos⁡θsin⁡φ\sin(\theta+\varphi)=\sin\theta\cos\varphi+\cos\theta\sin\varphi позволяет собрать члены: y(t)=(a+bcos⁡φ)sin⁡θ+(bsin⁡φ)cos⁡θy(t)=(a+b\cos\varphi)\sin\theta+(b\sin\varphi)\cos\theta (OpenStax, §7.2).

Обозначим коэффициенты при синусе и косинусе как u=a+bcos⁡φu=a+b\cos\varphi и v=bsin⁡φv=b\sin\varphi. Это две перпендикулярные составляющие: по теореме Пифагора длина соответствующего вектора R=u2+v2R=\sqrt{u^2+v^2}. Его вращение даёт синусоиду с амплитудой RR. Такое представление суммы разобрано у Julius O. Smith.

При a=b=0,5a=b=0{,}5 и φ=π/2\varphi=\pi/2 получаем u=v=0,5u=v=0{,}5, поэтому R=0,25+0,25≈0,7071R=\sqrt{0{,}25+0{,}25}\approx0{,}7071. При нулевой фазе R=1R=1, при π\pi — 0. Формула относится к синусоидам одной частоты с постоянными коэффициентами; она даёт амплитуду всей волны. Максимум конечного набора отсчётов может быть ниже. Визуализация суммы источников использует именно RR.

Сумма синусоид близких частот

Если частоты различаются, разность фаз между синусоидами растёт со временем. Формула суммы синусов превращает сумму в произведение: sin⁡α+sin⁡β=2sin⁡α+β2cos⁡α−β2\sin\alpha+\sin\beta=2\sin\frac{\alpha+\beta}{2}\cos\frac{\alpha-\beta}{2} (OpenStax, §7.4). Подставим α=2πf1t\alpha=2\pi f_1t и β=2πf2t\beta=2\pi f_2t:

sin⁡(2πf1t)+sin⁡(2πf2t)=2cos⁡(π(f1−f2)t) sin⁡(π(f1+f2)t)\sin(2\pi f_1t)+\sin(2\pi f_2t)=2\cos\bigl(\pi(f_1-f_2)t\bigr)\,\sin\bigl(\pi(f_1+f_2)t\bigr)
f1f_1, f2f_2
частоты двух синусоид с амплитудой 1, Гц;
tt
время, с.

При близких частотах второй множитель — быстрое колебание со средней частотой (f1+f2)/2(f_1+f_2)/2. Первый множитель меняется медленно и задаёт его размах. Модуль ∣2cos⁡(π(f1−f2)t)∣|2\cos(\pi(f_1-f_2)t)| доходит до 2 и опускается до нуля дважды за период косинуса, поэтому громкость (loudness)громкость (loudness) — Ощущение того, насколько сильным кажется звук. Зависит от звукового давления, частотного состава и условий восприятия. нарастает и спадает с частотой ∣f1−f2∣|f_1-f_2|. Такие биениябиения (beats) — Периодическое нарастание и спад громкости суммы двух тонов близких частот. Частота биений равна модулю разности частот. слышны как пульсация. Для 220 и 221 Гц получается одна пульсация в секунду (HyperPhysics, Beats).

Формула записана для равных амплитуд. При амплитудах aa и bb размах суммы колеблется между ∣a−b∣|a-b| и a+ba+b, до нуля он опускается только при a=ba=b. Если разность частот велика, отдельные колебания громкости перестают различаться; как меняется ощущение, разобрано в психоакустике. Расстройку (detune)расстройка (detune) — Небольшое отклонение частоты одного генератора от другого или от точного интервала, обычно в центах. При одновременном звучании даёт биения. осцилляторов (oscillator)осциллятор (oscillator) — Генератор повторяющегося колебания. Частота задаёт число повторений за секунду, а форма волны — изменение значения внутри одного периода. синтезатора и биения их гармоник показывает статья об осцилляторах.

Вероятность, распределение и ожидаемое среднее

Вероятность (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) — Среднее значение, заданное вероятностной моделью. Для конечного набора возможных значений вычисляется как их сумма с весами-вероятностями. E[X]E[X] — среднее, заданное распределением случайной величины XX. Квадратные скобки здесь означают аргумент ожидания, а не номер отсчёта. Для конечного числа возможных значений это сумма значений с весами-вероятностями: E[X]=∑ipixiE[X]=\sum_i p_i x_i, где pi≥0p_i\geq0 и ∑ipi=1\sum_i p_i=1 (OpenStax, Mean or Expected Value).

Пусть источник выдаёт −1 и +1 с вероятностями 0,5 и 0,5. Тогда E[X]=0,5⋅(−1)+0,5⋅1=0E[X]=0{,}5\cdot(-1)+0{,}5\cdot1=0. Но четыре фактически полученных значения могут быть −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)некоррелированность (uncorrelatedness) — Отсутствие линейной статистической связи между случайными величинами. Само по себе не исключает другие виды зависимости. — более слабое условие: отсутствует линейная статистическая связь, хотя другая зависимость может сохраниться. В модели белого шума с неизменными статистическими свойствами достаточно некоррелированности разных отсчётов для постоянной PSD (power spectral density, PSD)спектральная плотность мощности (power spectral density, PSD) — Распределение мощности сигнала на единицу частоты. Для безразмерных отсчётов измеряется в 1/Гц; мощность полосы соответствует площади под графиком PSD.; независимость обычно выбирают как более сильное удобное предположение (Julius O. Smith, White Noise).

Среднее значение фрагмента (sample mean)среднее значение фрагмента (sample mean) — Сумма значений отсчётов конечного фрагмента, делённая на их число. Может отличаться от математического ожидания порождающего процесса. обозначим xˉ\bar{x} («икс с чертой»):

xˉ=1N∑n=0N−1x[n].\bar{x}=\frac{1}{N}\sum_{n=0}^{N-1}x[n].
x[n]x[n]
отсчёт с номером nn;
NN
положительное число отсчётов во фрагменте;
xˉ\bar{x}
среднее, в тех же единицах, что отсчёты.

В формуле RMS усредняют квадраты, а затем берут корень. Поэтому нулевое среднее не означает нулевой RMS. При симметричном равномерном распределении от −AA до +AA средний квадрат модели равен A2/3A^2/3, и RMS длинного шума приближается к A/3A/\sqrt{3}. При A=0,3A=0{,}3 это примерно 0,1732. Это свойство равномерной модели; для другого распределения с теми же границами ответ может отличаться (Smith, Digital Noise Generation).

Обратная пропорциональность

Запись y∝1/xy\propto1/x читается «yy обратно пропорционально xx»: при фиксированной константе CC получаем y=C/xy=C/x, для положительных xx. Например, при C=100C=100 значения x=10x=10, 20 и 40 дают y=10y=10, 5 и 2,5. При удвоении аргумента результат уменьшается вдвое.

Так читают закон S(f)∝1/fS(f)\propto1/f для розового шума (pink noise)розовый шум (pink noise) — Шум, PSD которого приблизительно обратно пропорциональна частоте в рабочей полосе: спад около 3 дБ на октаву и примерно одинаковая мощность октав.. Отношение PSD на частотах 2f2f и ff равно 1/2, что соответствует 10lg⁡(1/2)≈−3,0110\lg(1/2)\approx-3{,}01 дБ. При сравнении амплитуд используют множитель 20, при сравнении мощностей — 10; подробности есть в разделе о децибелах.

Плотность и мощность частотной полосы

Спектральная плотность мощностиспектральная плотность мощности (power spectral density, PSD) — Распределение мощности сигнала на единицу частоты. Для безразмерных отсчётов измеряется в 1/Гц; мощность полосы соответствует площади под графиком PSD. показывает мощность на герц. Если отсчёты безразмерны, её единица — 1/Гц1/\text{Гц}. При постоянной PSD S=0,000001/ГцS=0{,}000001/\text{Гц} полоса шириной 100 Гц содержит мощность S⋅100 Гц=0,0001S\cdot100\,\text{Гц}=0{,}0001. Полоса 200 Гц содержит 0,0002. Мощность в этом цифровом расчёте — средний квадрат, безразмерная величина.

Если PSD меняется по частоте, полосу можно разбить на узкие ячейки, умножить PSD каждой ячейки на её ширину и сложить. Это приближённая площадь под графиком PSD. Для двух ячеек шириной 10 Гц с PSD 2⋅10−6/Гц2\cdot10^{-6}/\text{Гц} и 1⋅10−6/Гц1\cdot10^{-6}/\text{Гц} получается 10⋅2⋅10−6+10⋅1⋅10−6=0,0000310\cdot2\cdot10^{-6}+10\cdot1\cdot10^{-6}=0{,}00003. Точность зависит от ширины ячеек и того, как меняется плотность внутри них (SciPy, Welch: density и spectrum).

Для сравнения мощности октав используем полосы [f,2f][f,2f]. При переходе к [2f,4f][2f,4f] каждая соответствующая частотная ячейка вдвое шире. У розового закона 1/f1/f её PSD вдвое меньше, поэтому произведение плотности на ширину сохраняется. У белого шума PSD постоянна, и мощность следующей октавы удваивается (Whittle, характеристики розового шума).

Математика в статьях сайта

  • Звуковая волна: обратная величина 1/f1/f, единицы, синус и перевод углов в сдвиг по времени.
  • Дискретизация: x(t)x(t) и x[n]x[n], неравенство для полосы частот, округление, sinc и сумма по отсчётам.
  • АЦП и ЦАП: степени двойки, деление диапазона на число кодов, модуль ошибки, приближённая формула сигнал/шум, логарифм выигрыша от передискретизации и разность ошибок в дельта-сигма-модуляторе.
  • Аудиоданные в программах: целые индексы от 0 до N−1N-1, произведения для числа отсчётов и байтов, деление для длительности.
  • Устройство WAV-файла: шестнадцатеричная запись байтов, сборка числа из байтов по основанию 256, остаток от деления на 2 для байта выравнивания.
  • Уровень сигнала и кривые равной громкости: логарифм отношения, сумма квадратов, корень и шкалы графика.
  • LFO: доли, перенос угла в полуоткрытый интервал, модуль и кусочные функции. Например, (l[n]+1)/2(l[n]+1)/2 переводит диапазон [−1,1][-1,1] в [0,1][0,1]: сначала сдвигает его в [0,2][0,2], затем уменьшает вдвое.
  • Форматы сжатия звука: произведение частоты, разрядности (bit depth)разрядность (bit depth) — Число бит для представления одного квантованного отсчёта. B бит дают 2ᴮ кодов; при равномерном квантовании шаг зависит также от полного диапазона сигнала. и числа каналов для битрейта (bit rate)битрейт (bit rate) — Число бит на секунду звучания. У несжатого PCM равен произведению частоты дискретизации, разрядности и числа каналов: для CD 1 411 200 бит/с., разности соседних отсчётов для предсказания, деление на степень двойки с остатком в кодах Райса.
  • Компрессор: вычитание отрицательных уровней, кусочная характеристика, экспонента, использование предыдущего состояния и установившееся значение рекуррентной формулы.
  • Лимитер: минимум и среднее по скользящему окну, логарифм модуля отсчёта, косинус в оценке пика между отсчётами.
  • Осцилляторы синтезатора: дробные степени двойки для нот, интервалов и центов, остаток от деления при отражении частот, биения и верхняя граница суммы.
  • Однополюсный фильтр нижних частот: рекуррентная формула для звуковых отсчётов, экспонента и постоянная времени, степень (1−a)N(1-a)^N в реакции на скачок.

Источники

Связи

Связи списком

Ссылается на

Ссылаются сюда

Открыть в общем графе

Поиск

Ищем по названиям, тексту статей и английским терминам. Например: «частота дискретизации», «Nyquist», «аналоговый сигнал».