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-Add как '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' - Взвешенное Наложение - Добавить.

  • 'ola' - Перекрытие-Добавить.

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

свернуть все

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

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

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

Примечание

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

Подробнее о

свернуть все

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

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

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

где R - размер скачка между последовательными ДПФ, Xm - ДПФ оконных данных с центром во времени mR и xm(n)=x(n)g(nmR). Обратный STFT является идеальной реконструкцией исходного сигнала, пока m=ga+1(nmR)=cn где analysis window g(n) использовался для окна исходного сигнала и c является константой. Следующий рисунок изображает шаги, следующие при восстановлении исходного сигнала.

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

Чтобы гарантировать успешную реконструкцию немодифицированных спектров, окно анализа должно удовлетворять ограничению COLA. В целом, если окно анализа удовлетворяет условию m=ga+1(nmR)=cnокно считается совместимым с COLA. Кроме того, податливость COLA может быть описано как слабое или сильное.

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

    G(fk)=0,k=1,2,,R1,fkkR.

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

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

    G(f)=0,f12R.

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

Вы можете использовать iscola функция для проверки на слабую податливость COLA. Количество суммаций, используемых для проверки податливости COLA, определяется длиной окна и размером скачка. В целом, обычно использовать a=1 в m=ga+1(nmR)=cn для взвешенного наложения-сложения (WOLA), и a=0 для наложения-добавления (OLA). По умолчанию, istft использует метод WOLA, применяя synthesis window перед выполнением метода перекрытия-суммы.

В целом окно синтеза совпадает с окном анализа. Можно создать полезные окна WOLA, взяв квадратный корень сильного окна OLA. Можно использовать этот метод для всех неотрицательных окон OLA. Например, окно root-Hann является хорошим примером окна WOLA.

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

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

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

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

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

Ссылки

[1] Аллен, Дж. Б. «Краткосрочный спектральный анализ, синтез и модификация дискретным преобразованием Фурье». Транзакции 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, доступ к Nov 2018.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Функции

Введенный в R2019a