iscola

Определите, является ли комбинацией перекрытия окна совместимый COLA

Описание

пример

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

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

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

пример

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

Примеры

свернуть все

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

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

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

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

Создайте периодическое Окно Хэмминга длины 256. Установите метод Перекрытия - Добавляют как '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

Входные параметры

свернуть все

Окно Analysis в виде вектора.

Пример: 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.

Примечание

Можно завершить сильную податливость КОЛЫ если m = 1 и maxDeviation близко к числовой ошибке точности.

Больше о

свернуть все

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

Обратное кратковременное преобразование Фурье вычисляется путем взятия ОБПФ каждого вектора ДПФ из 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 подразумевает, что преобразование Фурье аналитического окна имеет нули в гармониках частоты кадров, таким образом что

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

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

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

    G(f)=0,f12R.

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

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

В общем случае окно синтеза совпадает с аналитическим окном. Можно создать полезные окна ВОЛИ путем пущения квадратного корня из сильного окна OLA. Можно использовать этот метод для всех неотрицательных окон OLA. Например, корневое-Hann окно является хорошим примером окна ВОЛИ.

Совершенная реконструкция

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

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

  • Податливость 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/, онлайновая книга, 2 011 выпусков, получил доступ к ноябрю 2018.

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

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

Смотрите также

Функции

Введенный в R2019a