exponenta event banner

iscola

Определение совместимости комбинации «окно-перекрытие» с COLA

Описание

пример

tf = iscola(window,noverlap) проверяет, удовлетворяют ли указанное окно и перекрытие ограничению Constant Overlap-Add (COLA), чтобы гарантировать, что обратное кратковременное преобразование Фурье приводит к идеальной реконструкции для немодифицированных спектров.

tf = iscola(window,noverlap,method) задает используемый метод инверсии.

[tf,m] = iscola(___) также возвращает медиану суммирования COLA. Эти выходные аргументы можно использовать с любым из предыдущих входных синтаксисов.

пример

[tf,m,maxDeviation] = iscola(___) возвращает максимальное отклонение от медианы m.

Примеры

свернуть все

Создайте периодическое корневое окно Ганна длиной 120. Проверьте, совместимо ли окно с COLA с 50% перекрытием.

win = sqrt(hann(120,'periodic'));
noverlap = 60;

Проверьте, совместимо ли окно с COLA с 50% перекрытием.

tf = iscola(win,noverlap)
tf = logical
   1

Создайте периодическое окно Хэмминга длиной 256. Задать метод наложения (Overlap) - добавить как 'ola'.

window = hamming(256,'periodic');
method = 'ola';
noverlap = 128;

Проверьте, совместимо ли окно с COLA с 50% перекрытием. Также рассчитайте медиану суммирования COLA и максимальное отклонение от этого суммирования.

[tf,m,maxDeviation] =  iscola(window,noverlap,method)
tf = logical
   1

m = 1.0800
maxDeviation = 2.2204e-16

Входные аргументы

свернуть все

Окно анализа, указанное как вектор.

Пример: win = bartlett(120) - окно Бартлетта длиной 120.

Типы данных: double | single

Число перекрывающихся выборок, указанное как положительное целое число, меньшее длины window.

Типы данных: double | single

Метод наложения-добавления, указанный как:

  • 'wola' - Взвешенное перекрытие (Weighted Overlap) - добавление.

  • 'ola' - Перекрытие (Overlap) - добавление.

Выходные аргументы

свернуть все

Соответствие COLA, возвращенное как логический скаляр. Если функция возвращает 1 (true), то окно и длина перекрытия удовлетворяют ограничению COLA.

Медиана суммирования COLA, возвращаемая как действительный скаляр. Если входы совместимы с COLA, то m равен константе суммирования COLA.

Максимальное отклонение от медианы m. Если window и noverlap совместимы с COLA, maxDeviation близка к ожидаемой цифровой погрешности точности суммирования COLA.

Примечание

Вы можете заключить сильное соблюдение COLA, если m = 1 и maxDeviation близок к ошибке числовой точности.

Подробнее

свернуть все

Обратное короткое преобразование Фурье

Обратное кратковременное преобразование Фурье вычисляется путем взятия IFFT каждого вектора DFT STFT и наложения-сложения инвертированных сигналов. ISTFT рассчитывается следующим образом:

x (n) =∫−1/21/2∑m=−∞∞Xm (f) ej2πfndf=∑m=−∞∞∫−1/21/2Xm (f) ej2πfndf=∑m=−∞∞xm (n)

где R - размер транзитного участка между последовательными DFT, Xm - DFT оконных данных, центрированных относительно времени mR и xm (n) = x (n) g (n − mR). Обратная STFT является совершенной реконструкцией исходного сигнала до тех пор, пока ∑m=−∞∞ga+1 (n mR) = c ∀n∈ℤ где окно g (n) анализа использовалось для окнивания исходного сигнала, а c является константой. На следующем рисунке показаны шаги, выполняемые при восстановлении исходного сигнала.

Ограничение «Постоянное перекрытие - добавление» (COLA)

Для обеспечения успешной реконструкции немодифицированных спектров окно анализа должно удовлетворять ограничению COLA. В общем случае, если окно анализа удовлетворяет условию ∑m=−∞∞ga+1 (n mR) = c ∀n∈ℤ, окно считается совместимым с COLA. Кроме того, соответствие COLA может быть охарактеризовано как слабое или сильное.

  • Слабое соответствие COLA подразумевает, что преобразование Фурье окна анализа имеет нули на гармониках частоты кадров, так что

    G (fk) = 0, k = 1,2,..., R 1, fk≜kR.

    Подавление псевдонима нарушается спектральными модификациями. Слабый COLA полагается на отмену псевдонима в частотной области. Следовательно, идеальная реконструкция возможна с использованием слабо совместимых с COLA окон до тех пор, пока сигнал не претерпел никаких спектральных модификаций.

  • Для строгого соответствия COLA преобразование Фурье окна должно быть ограничено полосой пропускания последовательно с понижением дискретизации на частоту кадров, так что

    G (f) = 0, f≥12R.

    Это уравнение показывает, что строгое ограничение COLA не допускает наложения псевдонимов. Кроме того, для сильного соответствия COLA значение константы c должно быть равно 1. В общем случае, если короткий временной спектр каким-либо образом модифицирован, предпочтительнее более сильное окно, совместимое с COLA.

Вы можете использовать iscola функция для проверки на слабое соответствие COLA. Количество сумм, используемых для проверки соответствия COLA, определяется длиной окна и размером транзитного участка. В общем, обычно используется a = 1 в ∑m=−∞∞ga+1 (n mR) = c ∀n∈ℤ для взвешенного наложения-сложения (WOLA) и a = 0 для наложения-сложения (OLA). По умолчаниюistft использует метод WOLA, применяя окно синтеза перед выполнением метода наложения-добавления.

Как правило, окно синтеза совпадает с окном анализа. Можно создать полезные окна WOLA, взяв квадратный корень сильного окна OLA. Этот метод можно использовать для всех неотрицательных окон OLA. Например, корневое окно Ханна является хорошим примером окна WOLA.

Идеальная реконструкция

В общем, вычисление STFT входного сигнала и инвертирование его не приводит к идеальной реконструкции. Если выход ISTFT должен максимально соответствовать исходному входному сигналу, сигнал и окно должны удовлетворять следующим условиям:

  • Размер ввода - если инвертировать вывод stft использование istft и хотите, чтобы результат был той же длины, что и входной сигнал x, значение k = (length (x) -noverlap) (length (window) -noverlap) должно быть целым числом.

  • Соответствие COLA - используйте окна, совместимые с COLA, предполагая, что вы не изменили кратковременное преобразование Фурье сигнала.

  • Заполнение - Если длина входного сигнала такова, что значение k не является целым числом, то перед вычислением кратковременного преобразования Фурье сигнал заполняется нулем. Удалите дополнительные нули после инвертирования сигнала.

Ссылки

[1] Аллен, J. B. «Краткосрочный спектральный анализ, синтез и модификация дискретным преобразованием Фурье». Транзакции IEEE по акустике, обработке речи и сигналов. Том 25, номер 3, июнь 1977, стр. 235-238.

[2] Гриффин, Дэниел У. и Чжэ С. Лим. «Оценка сигнала из модифицированного кратковременного преобразования Фурье». Транзакции IEEE по акустике, обработке речи и сигналов. Том 32, номер 2, апрель 1984, стр. 236-243.

[3] Шарп, Брюс. Обратимость наложения - добавление обработки. https://gauss256.github.io/blog/cola.html, получил доступ в июле 2019 года.

[4] Смит, Джулиус Орион. Обработка спектрального аудиосигнала. https://ccrma.stanford.edu/~jos/sasp/, интернет-книга, издание 2011 года, доступ к ноябрю 2018 года.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Функции

Представлен в R2019a