ru.knowledgr.com
Интерполяция (также известный, как переигрывается), особенно музыка 20-го века и позже, является резким изменением музыкальных элементов, с (почти немедленный) возобновление главной темы или идеи. Частями, которые процитированы в качестве показа интерполяции среди других методов, является Музыка для Медного Квинтета Гюнтера Шуллера и Погребального пения Жертвам Хиросимы Кшиштофом Пендерецким, оба 1960–61.
В классической музыке
Для музыки Классического периода интерполяция определена в контексте музыкального предложения или периода как, «несвязанный материал вставил между двумя логически последующими функциями».
Это устройство обычно используется, чтобы расширить то, что обычно было бы регулярной фразой в нерегулярную и расширенную фразу. Такое расширение интерполяцией достигнуто добавлением дополнительной музыки посреди фразы (обычно с помощью последовательности). Ясный пример существует во второй попытке Сонаты Фортепьяно Моцарта № 10, K.330.
Раньше, в спетых частях Массы, таких как входная или kyrie, это было допустимо, особенно во время средневекового периода, чтобы усилить литургическую формулу, интерполировав фарс (от Средневекового латинского farsa, фарша), также названный тропом. Это могло бы состоять из объяснительной фразы или стиха, обычно в форме дополнения или пересказа, часто в жаргоне.
В классическом наборе, состоя строго из аллеманды, куранты, сарабанды и gigue, композиторы часто интерполировали гавот, bourrée, менуэт, musette или паспье.
В популярной музыке
Интерполяция использовалась одним художником, чтобы относиться к добавлению нового материала в работе или записи ранее существующей музыкальной пьесы.
В музыке хип-хопа
В музыке хип-хопа интерполяция относится к использованию мелодии – или части мелодии (часто с измененной лирикой) – от ранее зарегистрированной песни, но перезаписи мелодии вместо того, чтобы пробовать его. Часто используемый, когда оригинальный художник или этикетка отказываются лицензировать фактический образец, так как перезаписи (покрытия) подвергаются обязательным лицензиям.
Пример: «Гетто, Supastar» Pras показывает крюк, спетый Mýa, который был первоначально написан в песне «Острова в Потоке» Кенни Роджерсом и Долли Партон.
О музыке. Интерполяция по трём точкам.
В последнее время я послушал довольно много нетипичной для себя — электронной — музыки. И вот что подумалось мне…
Что бы делать хорошую электронику надо обладать колоссальным музыкальным кругозором и очень хорошими мозгами.
Вообще-то, это нужно для любой музыки — от исполнения N-ого концерта для оркестра с балалайкой, до хард-рока. Но для электроники это особенно важно.
Что бы хорошо (не гениально, но хорошо) солировать на балалайке в N-ом концерте (с оркестром) достаточно виртуозного владения инструментом. Голова при этом может быть пустая как барабан. С роком сложнее — там бывают соло. Но зато там можно задавить драйвом. Который тоже не очень зависит от знаний и аналитических способностей (ума). Как раз имитировать драйв “от ума” сложно.
С электроникой же всё сложнее. Это музыка синтетическая, и синтез начинается задолго до включения сэмплера. Что бы синтезировать что-то интересное — нужны интересные исходные компоненты. Из воды много не насентизируешь.
Как результат — действительно интересной электроники мало, очень мало.
Вот сейчас у меня играет не новый (но свежий) альбом Recoil “subHuman”. Что бы сделать такое надо разбираться в блюзе лучше тех, кто этот блюз играет. И не только в блюзе. Но и результат — интересен в каждом звуке, и не только в первом прослушивании.
С другой стороны — украинский проект “Synsun”. Вроде всё то же, что у “Infected mushrooms,” но — скучно. И понятно почему — потому что нет своего понимания, какая бывает музыка и как она устроена. Синтез не удался. И при этом pashky говорит, что эти “Synsun” — вполне выделяются на пси-трансовом поле.
Синтетической музыке нужен очень мощный бэкграунд. иначе всё вырождается в тупо-скучные альфа-бета ритмы.
Различные виды интерполяции. Воссоздание высоких частот
Примечание: сия статья ни в коем случае не является пособием для апконвертщиков (коим в аду специально уготовлено жаркое местечко) и опубликована лишь для общего развития; а также пущего понимания теории цифрового звука.
Виды интерполяции
Как известно, цифровой сигнал представляет собой набор отсчетов (семплов) с разным уровнем, которые следуют один за одним с определенной фиксированной (для привычной нам импульсно-кодовой модуляции) частотой. В определенных случаях частоту следования семплов (частоту дискретизации) может потребоваться изменить, т.е. может потребоваться т.н. ресемплинг. Ресемплинг условно можно разделить на два вида — с повышением частоты (апсемплинг) и понижением (даунсемплинг). И вот тут возникает вопрос: а каким же образом нам изменить количество семплов в потоке? Какие семплы отбросить, или же наоборот — как рассчитать уровень новых, промежуточных семплов?
Давайте для простоты ограничимся апсемплингом. Скажем, пускай нам надо повысить частоту дискретизации в два раза. Для этого надо удвоить количество семплов, т.е в промежутках между семплами вставить один дополнительный.
Рассмотрим вот такой сигнал:
Это три периода синусоидального сигнала с частотой 5000 Гц, оцифрованного с частотой дискретизации 44100 Гц (глубина квантования равна 32 битам, но для нас это не важно). Фактически смысл здесь имеют лишь точки (это и есть те самые семплы), линии между ними рисует программа Sound Forge. Как видим, на один период приходится примерно 9 семплов (441000/5000≈9). Нам надо увеличить это количество вдвое. Где же именно нам разместить промежуточные семплы?
Есть несколько способов расчета уровня промежуточных семплов (то есть интерполяции). Как я уже сказал, программа сама дорисовала линии, соединяющие соседние семплы. Эти линии — прямые, и если мы разместим промежуточный семпл (или семплы, если увеличиваем частоту более, чем в два раза) на этой линии, такой вид интерполяции будет называться линейной. Расчетную формулу для получения уровня промежуточного семпла можно найти из уравнения прямой. Уровень семпла x, находящегося между семплами x0 и x1 будет равен:
Результат преобразования частоты в 88.2 кГц будет следующим:

Собственно, отличий между двумя волнами вы не найдете, кроме количества семплов на период конечно.
Теперь давайте возьмем сигнал с плавающей частотой (частота дискретизации 48 кГц) и сравним спектрограммы исходного и полученного после увеличения частоты дискретизации в два раза:


Мы видим, что в сигнале появились новые частотные составляющие: исходный спектр буквально отразился в высокочастотную область. Это явление называется алиазингом (alias — отражение). Кстати, надо отметить, что с понижением частоты сигнала уровень алиаса уменьшается. Это связано с уменьшением погрешности линейной интерполяции: при уменьшении разницы между уровнями соседних семплов (т.е. при уменьшении скорости нарастания сигнала, которая прямо пропорциональна частоте), ошибка квантования стремится к нулю.
Но есть еще более простой способ интерполяции, называемый интерполяцией нулевого порядка. Он даже не требует никаких расчетов: дополнительный семпл по уровню соответствует предыдущему.

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

Теперь мы получили точную копию исходного сигнала в области расширенного диапазона (отражение идет симметрично относительно исходной частоты Найквиста).
Надо отметить, что подобная картинка получается исключительно при кратном повышении частоты дискретизации (2x, 3x, 4x и т.д.). При дробном множителе мы получим сильные искажения во всем спектре частот.
Этот метод интерполяции активно используется в ЦАП (сигма-дельта ЦАП использует многократный ампсемплинг) — да, на определенном этапе оцифрованный сигнал действительно представляется в виде ступенек. Однако, после преобразования применяется фильтр низких частот, который фактически сглаживает сигнал.
На рисунке вы видите результирующий сигнал, полученный после фильтрации предыдущего, ступенчатого сигнала. Мы видим, что результирующая интерполяция получилась даже лучше линейной. Причиной этому является отсутствие дополнительных частотных составляющих, которые мы вырезали НЧ фильтром. Кстати говоря, убедиться, что в результате ЦА преобразования также не получается никаких ступенек, вы можете посмотрев это видео.
Именно так работают почти все ресемплеры: сначала количество семплов добивается до нужного путем копирования предыдущих, а затем полученный сигнал фильтруется примерно до исходной частоты Найквиста (чтобы отбросить отражение, т.е. алиазинг).
В зависимости от типа используемого НЧ фильтра и различают алгоритмы передискретизации. Наиболее популярным является sinc интерполяция с использованием sinc фильтра.
Более подробно о передискретизации можно почитать в статье Конвертеры частоты дискретизации. Мы же перейдем к одному интересному применению интерполяции нулевого порядка.
Воссоздание высоких частот
Для данного опыта нам понадобятся: foobar2000, ресемплеры, SSRC X, SoX, Secret Rabbit Code, а также SoX Lowpass filter. Всё это можно скачать на странице foobar2000 + плагины.
В качестве подопытного возьмем семпл из трека «Armin van Buuren — Sail». Семпл имеет широкий частотный диапазон:
Теперь урежем частотный диапазон с помощью DSP Lowpass (SoX) до 12.5 кГц. Вот спектр результирующего семпла:
Ну, проблему создали, теперь самое время её решать.
Фишка интерполяции нулевого порядка как раз в том, что она умеет отражать более низкие частоты в область более высоких. Таким образом мы можем восстановить некое подобие высоких частот, которые по уровню будут зависеть от более низких. Для этого надо выполнить следующее:
1. Определить частоту среза. В нашем случае это 12.5 кГц.
2. Выполнить ресемплирование до частоты приблизительно в два (но не более!) раза больше частоты среза. В данном случае нам идеально подойдет частота 24 кГц. Для ресемплирования воспользуемся SSRC X с максимальной полосой пропускания, которую обеспечивает пресет Otachan Ultra:
Это будет первое звено в цепочке DSP.
3. Теперь нам необходимо выполнить повышение частоты дискретизации ровно в два раза с использованием интерполяции нулевого порядка, и тем самым воссоздать частоты в диапазоне 12-24 кГц. Для этого добавим в цепочку Secret Rabbit Code Resampler с соответствующими настройками:
4. Выполнить ресемплирование до нужной частоты дискретизации. Это необходимо, например, если мы восстанавливали диапазон 8-16 кГц и результирующая частота дискретизации вышла 32 кГц, в то время как нам может понадобиться 44.1. Ресемплирования следует производить с помощью SoX Resampler. В нашем случае частота 48 кГц вполне приемлема.
Вот, собственно, и всё. На выходе мы получаем сигнал с полным спектром:
В принципе, можно использовать и линейную интерполяцию. Тогда мы получим более естественную спектрограмму со спадом в области ВЧ:
Таким же образом можно воссоздать ВЧ при срезе на 16-17 кГц. Для этого выполняется даунсемплинг до 32 кГц, затем частота повышается с помощью интерполяции нулевого порядка (или линейной) до 64 кГц, после чего производится ресемплирование с помощью SoX до 44.1 кГц.
На этом всё. Надеюсь, вам было интересно. Удачи!
Информация от спонсора
Inksystem: системы непрерывной подачи чернил (СНПЧ). На этом сайте Вы можете ознакомиться с ассортиментом товаров компании: принтерами, МФУ, плоттерами, комплектующими и многим другим. Склады компании расположены в Минске, Санкт-Петербурге, Москве и Киеве. Постоянным клиентам предоставляются скидки.
Интерполяция
Библиография:
Blass F. W., Hermeneutik und Kritik, русск. перев., Одесса, 1891; Его же, Die Interpolationen in der Odyssee, 1904.
Смотреть что такое «Интерполяция» в других словарях:
ИНТЕРПОЛЯЦИЯ — 1) способ определять по ряду данных величин какого либо математического выражения промежуточные его величины; так напр., по дальности полета ядра при угле возвышения оси пушечного канала в 1°, 2°, 3°, 4° и т. д. можно определить помощью… … Словарь иностранных слов русского языка
интерполяция — вставка, интерполирование, включение, отыскание Словарь русских синонимов. интерполяция см. вставка Словарь синонимов русского языка. Практический справочник. М.: Русский язык. З. Е. Александрова. 2 … Словарь синонимов
интерполяция — Вычисление промежуточных значений между двумя известными точками. Например: linear линейная интерполяция exponential экспоненциальная интерполяция Процесс вывода цветного изображения, когда пикселы, относящиеся к области между двумя цветными… … Справочник технического переводчика
Интерполяция — (interpolation) Оценка значения неизвестной величины, находящейся между двумя точками ряда известных величин. Например, зная показатели населения страны, полученные при проведения переписи населения, проводившейся с интервалом в 10 лет, можно… … Словарь бизнес-терминов
Интерполяция — нахождение промежуточных значений некоторой закономерности (функции) по ряду известных ее значений. По английски: Interpolation См. также: Преобразования данных Финансовый словарь Финам … Финансовый словарь
интерполяция — и, ж. interpolation f. < лат. interpolatio изменение; переделка, искажение. 1. Вставка позднейшего происхождения в каком л. тексте, не принадлежащая оригиналу. БАС 1. В древних рукописях много интерполяций, внесенных переписчиками. Уш. 1934. 2 … Исторический словарь галлицизмов русского языка
ИНТЕРПОЛЯЦИЯ — (interpolatio), пополнение эмпйрич. ряда значений какой либо величины недостающими промежуточными значениями ее. Интерполирование может быть произведено тремя способами: математич., графич. и логическим. В основе их лежит общая им гипотеза о том … Большая медицинская энциклопедия
ИНТЕРПОЛЯЦИЯ — (от латинского interpolatio изменение, переделка), отыскание промежуточных значений величины по некоторым известным ее значениям. Например, отыскание значений функции y = f(x) в точках x, лежащих между точками x0 и xn, x0 … Современная энциклопедия
ИНТЕРПОЛЯЦИЯ — в филологии изменение первоначального текста; вставка переписчиком или переводчиком в текст слов или фраз, отсутствовавших в оригинале … Большой Энциклопедический словарь
Русские Блоги
Python одномерная интерполяция scipy.interpolate.interp1d
Модуль интерполяции SciPy предоставляет множество функций для интерполяции данных, начиная от простой одномерной интерполяции до сложных многомерных интерполяционных решений. Когда изменение данных выборки относится к независимой переменной, используется одномерная интерполяция, в противном случае, когда данные выборки относятся к нескольким независимым переменным, используется многомерная интерполяция.
class scipy.interpolate. interp1d (x, y, kind=’linear’, axis=-1, copy=True, bounds_error=None, fill_value=nan, assume_sorted=False)[source]
Interpolate a 1-D function.
Note that calling interp1d Наличие NaN во входных значениях приводит к неопределенному поведению. Обратите внимание, что вызов interp1d с NaN, присутствующими во входных значениях, приведет к неопределенному поведению.
x(N,) array_like
1-D массив реальных значений. Одномерный массив реальных значений.
y(…,N,…) array_like
A N-D array of real values. The length of y along the interpolation axis must be equal to the length of xВещественный N-D массив. Длина y вдоль оси интерполяции должна быть равна длине x.
kind str or int, optional
| Кандидатская стоимость | эффект |
|---|---|
| ‘zero’ 、’nearest’ | Лестничная интерполяция, эквивалентная 0-градусной кривой B-сплайна |
| ‘slinear’ 、’linear’ | Линейная интерполяция, соединяющая все точки отбора с прямой линией, эквивалентной кривой B-сплайна первого порядка |
| ‘quadratic’ 、’cubic’ | Кривые B-сплайнов второго и третьего порядка, кривые высшего порядка можно указывать напрямую, используя целые значения |
axis int, optional
Specifies the axis of y along which to interpolate. Interpolation defaults to the last axis of yУкажите ось Y, вдоль которой нужно вставить. По умолчанию для интерполяции используется последняя ось y.
copy bool, optional
If True, the class makes internal copies of x and y. If False, references to x and yИспользуются. По умолчанию копировать. Если true, этот класс будет создавать внутренние копии x и y. Если false, используйте ссылки на x и y. По умолчанию это копирование.
bounds_error bool, optional
fill_value array-like or (array-like, array_like) or “extrapolate”, optional
если ndarray (или float), это значение будет использоваться для заполнения запрошенных точек за пределами диапазона данных. Если не предоставлено, то по умолчанию используется значение NaN. Подобный массиву массив должен должным образом передаваться в измерениях без интерполяции. осей. Если это ndarray (или float), это значение будет использоваться для заполнения точек спроса вне диапазона данных. Если не указано иное, значением по умолчанию является NaN. Массив классов должен быть правильно распространен на размерность без интерполяции.
New in version 0.17.0.
Если «экстраполировать», то точки вне диапазона данных будут экстраполированы. Если «экстраполировать», то точки вне диапазона данных будут экстраполированы.
New in version 0.17.0.
assume_sorted bool, optional
If False, values of x can be in any order and they are sorted first. If True, xДолжен быть массивом монотонно увеличивающихся значений. Если false, значения x могут быть в любом порядке и могут быть отсортированы первыми. Если true, x должен быть массивом монотонно увеличивающихся значений.













